Created
April 3, 2023 13:37
-
-
Save lelouvincx/a88fa6caf59d7ff76086ab485ecc69bd to your computer and use it in GitHub Desktop.
Goodreads ELT pipeline
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "cells": [ | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "cell_id": "1f486f38a7d04cbabb801f6074342c22", | |
| "deepnote_cell_type": "markdown" | |
| }, | |
| "source": [ | |
| "## Exploratory Data Analysis\n", | |
| ">This notebook shows some basic Exploratory Data Analysis about the dataset" | |
| ] | |
| }, | |
| { | |
| "attachments": {}, | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "cell_id": "e9b2b0bf3a0f4dd78b5431231023549d", | |
| "deepnote_cell_type": "markdown" | |
| }, | |
| "source": [ | |
| "### Objectives\n", | |
| "0. Clean data\n", | |
| "1. Which book is the most popular?\n", | |
| "2. Which author is the most popular?\n", | |
| "3. Which number wrote the biggest number of books?\n", | |
| "4. Is number of pages correlated with ratings or number of reviews?\n", | |
| "5. Which years had the biggest number of books written?\n", | |
| "6. Is there tendency to reduce number of pages in nowaday books?" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "cell_id": "4a25e36d5e36457ea1f5bde9a681fde5", | |
| "deepnote_cell_type": "markdown" | |
| }, | |
| "source": [ | |
| "### Import libraries" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 1, | |
| "metadata": { | |
| "cell_id": "f72e8b9493684ad380189e2189ed15f2", | |
| "deepnote_cell_type": "code", | |
| "deepnote_to_be_reexecuted": false, | |
| "execution_millis": 2399, | |
| "execution_start": 1680448757297, | |
| "source_hash": "e47d8573" | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "import pandas as pd \n", | |
| "import polars as pl \n", | |
| "import numpy as np \n", | |
| "import matplotlib.pyplot as plt \n", | |
| "import seaborn as sns \n", | |
| "%matplotlib inline\n", | |
| "sns.set_style('whitegrid')" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "cell_id": "54150d807a0d4a9d984b95d6605db3d5", | |
| "deepnote_cell_type": "markdown" | |
| }, | |
| "source": [ | |
| "### Load the data" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 2, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/html": [ | |
| "<div><style>\n", | |
| ".dataframe > thead > tr > th,\n", | |
| ".dataframe > tbody > tr > td {\n", | |
| " text-align: right;\n", | |
| "}\n", | |
| "</style>\n", | |
| "<small>shape: (0, 20)</small><table border=\"1\" class=\"dataframe\"><thead><tr><th>Id</th><th>Name</th><th>Authors</th><th>ISBN</th><th>Rating</th><th>PublishYear</th><th>PublishMonth</th><th>PublishDay</th><th>Publisher</th><th>RatingDist5</th><th>RatingDist4</th><th>RatingDist3</th><th>RatingDist2</th><th>RatingDist1</th><th>RatingDistTotal</th><th>CountsOfReview</th><th>Language</th><th>pagesNumber</th><th>Description</th><th>Count of text reviews</th></tr><tr><td>i64</td><td>str</td><td>str</td><td>str</td><td>f64</td><td>i64</td><td>i64</td><td>i64</td><td>str</td><td>str</td><td>str</td><td>str</td><td>str</td><td>str</td><td>str</td><td>i64</td><td>str</td><td>i64</td><td>str</td><td>i64</td></tr></thead><tbody></tbody></table></div>" | |
| ], | |
| "text/plain": [ | |
| "shape: (0, 20)\n", | |
| "┌─────┬──────┬─────────┬──────┬───┬──────────┬─────────────┬─────────────┬───────────────────────┐\n", | |
| "│ Id ┆ Name ┆ Authors ┆ ISBN ┆ … ┆ Language ┆ pagesNumber ┆ Description ┆ Count of text reviews │\n", | |
| "│ --- ┆ --- ┆ --- ┆ --- ┆ ┆ --- ┆ --- ┆ --- ┆ --- │\n", | |
| "│ i64 ┆ str ┆ str ┆ str ┆ ┆ str ┆ i64 ┆ str ┆ i64 │\n", | |
| "╞═════╪══════╪═════════╪══════╪═══╪══════════╪═════════════╪═════════════╪═══════════════════════╡\n", | |
| "└─────┴──────┴─────────┴──────┴───┴──────────┴─────────────┴─────────────┴───────────────────────┘" | |
| ] | |
| }, | |
| "execution_count": 2, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "books_df = pl.DataFrame(schema=pl.read_csv('dataset/book1000k-1100k.csv').schema)\n", | |
| "books_df.head()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 3, | |
| "metadata": { | |
| "cell_id": "702431abfd5747b0950d39660ac314df", | |
| "deepnote_cell_type": "code", | |
| "deepnote_to_be_reexecuted": false, | |
| "execution_millis": 40960, | |
| "execution_start": 1680448763850, | |
| "source_hash": "92670be7" | |
| }, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| "dataset/book600k-700k.csv loading...\n", | |
| "dataset/book600k-700k.csv OK\n", | |
| "dataset/book300k-400k.csv loading...\n", | |
| "dataset/book300k-400k.csv OK\n", | |
| "dataset/book500k-600k.csv loading...\n", | |
| "dataset/book500k-600k.csv OK\n", | |
| "dataset/book700k-800k.csv loading...\n", | |
| "dataset/book700k-800k.csv OK\n", | |
| "dataset/book1800k-1900k.csv loading...\n", | |
| "dataset/book1800k-1900k.csv OK\n", | |
| "dataset/book2000k-3000k.csv loading...\n", | |
| "dataset/book2000k-3000k.csv OK\n", | |
| "dataset/book1400k-1500k.csv loading...\n", | |
| "dataset/book1400k-1500k.csv OK\n", | |
| "dataset/book100k-200k.csv loading...\n", | |
| "dataset/book100k-200k.csv OK\n", | |
| "dataset/book1500k-1600k.csv loading...\n", | |
| "dataset/book1500k-1600k.csv OK\n", | |
| "dataset/book1200k-1300k.csv loading...\n", | |
| "dataset/book1200k-1300k.csv OK\n", | |
| "dataset/book1300k-1400k.csv loading...\n", | |
| "dataset/book1300k-1400k.csv OK\n", | |
| "dataset/book1-100k.csv loading...\n", | |
| "dataset/book1-100k.csv OK\n", | |
| "dataset/book1700k-1800k.csv loading...\n", | |
| "dataset/book1700k-1800k.csv OK\n", | |
| "dataset/book1000k-1100k.csv loading...\n", | |
| "dataset/book1000k-1100k.csv OK\n", | |
| "dataset/book4000k-5000k.csv loading...\n", | |
| "dataset/book4000k-5000k.csv OK\n", | |
| "dataset/book200k-300k.csv loading...\n", | |
| "dataset/book200k-300k.csv OK\n", | |
| "dataset/book400k-500k.csv loading...\n", | |
| "dataset/book400k-500k.csv OK\n", | |
| "dataset/book800k-900k.csv loading...\n", | |
| "dataset/book800k-900k.csv OK\n", | |
| "dataset/book3000k-4000k.csv loading...\n", | |
| "dataset/book3000k-4000k.csv OK\n", | |
| "dataset/book900k-1000k.csv loading...\n", | |
| "dataset/book900k-1000k.csv OK\n", | |
| "dataset/book1600k-1700k.csv loading...\n", | |
| "dataset/book1600k-1700k.csv OK\n", | |
| "dataset/book1900k-2000k.csv loading...\n", | |
| "dataset/book1900k-2000k.csv OK\n", | |
| "dataset/book1100k-1200k.csv loading...\n", | |
| "dataset/book1100k-1200k.csv OK\n" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "import os\n", | |
| "for dirname, _, filenames in os.walk('dataset'):\n", | |
| " for filename in filenames:\n", | |
| " if '_' not in filename: # Ignore other files (eg: user rating)\n", | |
| " print(os.path.join(dirname, filename), 'loading...')\n", | |
| " books_df = pl.concat([books_df, pl.read_csv(os.path.join(dirname, filename))], how='diagonal')\n", | |
| " print(os.path.join(dirname, filename), 'OK')" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "cell_id": "39685b91fa87467ca7f18b43b028d431", | |
| "deepnote_cell_type": "markdown" | |
| }, | |
| "source": [ | |
| "### Data preparation" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 4, | |
| "metadata": { | |
| "cell_id": "c1763d6a52be48c68f871c4915f85175", | |
| "deepnote_cell_type": "code", | |
| "deepnote_to_be_reexecuted": false, | |
| "execution_millis": 1553, | |
| "execution_start": 1680448804818, | |
| "source_hash": "c91915f9" | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/html": [ | |
| "<div><style>\n", | |
| ".dataframe > thead > tr > th,\n", | |
| ".dataframe > tbody > tr > td {\n", | |
| " text-align: right;\n", | |
| "}\n", | |
| "</style>\n", | |
| "<small>shape: (5, 21)</small><table border=\"1\" class=\"dataframe\"><thead><tr><th>Id</th><th>Name</th><th>Authors</th><th>ISBN</th><th>Rating</th><th>PublishYear</th><th>PublishMonth</th><th>PublishDay</th><th>Publisher</th><th>RatingDist5</th><th>RatingDist4</th><th>RatingDist3</th><th>RatingDist2</th><th>RatingDist1</th><th>RatingDistTotal</th><th>CountsOfReview</th><th>Language</th><th>pagesNumber</th><th>Description</th><th>Count of text reviews</th><th>PagesNumber</th></tr><tr><td>i64</td><td>str</td><td>str</td><td>str</td><td>f64</td><td>i64</td><td>i64</td><td>i64</td><td>str</td><td>str</td><td>str</td><td>str</td><td>str</td><td>str</td><td>str</td><td>i64</td><td>str</td><td>i64</td><td>str</td><td>i64</td><td>i64</td></tr></thead><tbody><tr><td>600000</td><td>"Lessons Learne…</td><td>"Nora Roberts"</td><td>"037351025X"</td><td>3.74</td><td>1993</td><td>15</td><td>2</td><td>"Silhouette"</td><td>"5:947"</td><td>"4:1016"</td><td>"3:1061"</td><td>"2:287"</td><td>"1:63"</td><td>"total:3374"</td><td>86</td><td>"eng"</td><td>250</td><td>"LESSONS LEARNE…</td><td>null</td><td>null</td></tr><tr><td>600001</td><td>"Walking by Fai…</td><td>"Jennifer Roths…</td><td>"0633099325"</td><td>4.27</td><td>2003</td><td>1</td><td>1</td><td>"Lifeway Church…</td><td>"5:367"</td><td>"4:246"</td><td>"3:109"</td><td>"2:22"</td><td>"1:5"</td><td>"total:749"</td><td>7</td><td>null</td><td>112</td><td>"At the age of …</td><td>null</td><td>null</td></tr><tr><td>600003</td><td>"Better Health …</td><td>"World Bank Gro…</td><td>"0821328174"</td><td>5.0</td><td>1994</td><td>1</td><td>1</td><td>"World Bank Pub…</td><td>"5:1"</td><td>"4:0"</td><td>"3:0"</td><td>"2:0"</td><td>"1:0"</td><td>"total:1"</td><td>1</td><td>null</td><td>240</td><td>null</td><td>null</td><td>null</td></tr><tr><td>600004</td><td>"The Blended Le…</td><td>"Josh Bersin"</td><td>"0787972967"</td><td>4.1</td><td>2004</td><td>1</td><td>10</td><td>"Pfeiffer"</td><td>"5:8"</td><td>"4:6"</td><td>"3:6"</td><td>"2:0"</td><td>"1:0"</td><td>"total:20"</td><td>3</td><td>null</td><td>319</td><td>"<i>The Blended…</td><td>null</td><td>null</td></tr><tr><td>600005</td><td>"Lessons Learne…</td><td>"Robert G. Gill…</td><td>"0595417566"</td><td>3.0</td><td>2006</td><td>30</td><td>11</td><td>"iUniverse"</td><td>"5:0"</td><td>"4:0"</td><td>"3:1"</td><td>"2:0"</td><td>"1:0"</td><td>"total:1"</td><td>0</td><td>null</td><td>168</td><td>""<b>Lessons Le…</td><td>null</td><td>null</td></tr></tbody></table></div>" | |
| ], | |
| "text/plain": [ | |
| "shape: (5, 21)\n", | |
| "┌────────┬────────────┬───────────┬───────────┬───┬───────────┬───────────┬────────────┬───────────┐\n", | |
| "│ Id ┆ Name ┆ Authors ┆ ISBN ┆ … ┆ pagesNumb ┆ Descripti ┆ Count of ┆ PagesNumb │\n", | |
| "│ --- ┆ --- ┆ --- ┆ --- ┆ ┆ er ┆ on ┆ text ┆ er │\n", | |
| "│ i64 ┆ str ┆ str ┆ str ┆ ┆ --- ┆ --- ┆ reviews ┆ --- │\n", | |
| "│ ┆ ┆ ┆ ┆ ┆ i64 ┆ str ┆ --- ┆ i64 │\n", | |
| "│ ┆ ┆ ┆ ┆ ┆ ┆ ┆ i64 ┆ │\n", | |
| "╞════════╪════════════╪═══════════╪═══════════╪═══╪═══════════╪═══════════╪════════════╪═══════════╡\n", | |
| "│ 600000 ┆ Lessons ┆ Nora ┆ 037351025 ┆ … ┆ 250 ┆ LESSONS ┆ null ┆ null │\n", | |
| "│ ┆ Learned ┆ Roberts ┆ X ┆ ┆ ┆ LEARNED.. ┆ ┆ │\n", | |
| "│ ┆ (Great ┆ ┆ ┆ ┆ ┆ .<br ┆ ┆ │\n", | |
| "│ ┆ Chefs, #2… ┆ ┆ ┆ ┆ ┆ /><br ┆ ┆ │\n", | |
| "│ ┆ ┆ ┆ ┆ ┆ ┆ />Co… ┆ ┆ │\n", | |
| "│ 600001 ┆ Walking by ┆ Jennifer ┆ 063309932 ┆ … ┆ 112 ┆ At the ┆ null ┆ null │\n", | |
| "│ ┆ Faith: ┆ Rothschil ┆ 5 ┆ ┆ ┆ age of ┆ ┆ │\n", | |
| "│ ┆ Lessons ┆ d ┆ ┆ ┆ ┆ fifteen, ┆ ┆ │\n", | |
| "│ ┆ Learne… ┆ ┆ ┆ ┆ ┆ Jennifer ┆ ┆ │\n", | |
| "│ ┆ ┆ ┆ ┆ ┆ ┆ … ┆ ┆ │\n", | |
| "│ 600003 ┆ Better ┆ World ┆ 082132817 ┆ … ┆ 240 ┆ null ┆ null ┆ null │\n", | |
| "│ ┆ Health in ┆ Bank ┆ 4 ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ ┆ Africa: ┆ Group ┆ ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ ┆ Experie… ┆ ┆ ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ 600004 ┆ The ┆ Josh ┆ 078797296 ┆ … ┆ 319 ┆ <i>The ┆ null ┆ null │\n", | |
| "│ ┆ Blended ┆ Bersin ┆ 7 ┆ ┆ ┆ Blended ┆ ┆ │\n", | |
| "│ ┆ Learning ┆ ┆ ┆ ┆ ┆ Learning ┆ ┆ │\n", | |
| "│ ┆ Book: Best ┆ ┆ ┆ ┆ ┆ Book</i>… ┆ ┆ │\n", | |
| "│ ┆ … ┆ ┆ ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ 600005 ┆ Lessons ┆ Robert G. ┆ 059541756 ┆ … ┆ 168 ┆ \"<b>Lesso ┆ null ┆ null │\n", | |
| "│ ┆ Learned: ┆ Gillio ┆ 6 ┆ ┆ ┆ ns ┆ ┆ │\n", | |
| "│ ┆ Successes ┆ ┆ ┆ ┆ ┆ Learned: ┆ ┆ │\n", | |
| "│ ┆ Achie… ┆ ┆ ┆ ┆ ┆ Successes ┆ ┆ │\n", | |
| "│ ┆ ┆ ┆ ┆ ┆ ┆ A… ┆ ┆ │\n", | |
| "└────────┴────────────┴───────────┴───────────┴───┴───────────┴───────────┴────────────┴───────────┘" | |
| ] | |
| }, | |
| "execution_count": 4, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "books_df.sort('Id')\n", | |
| "books_df.head()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 5, | |
| "metadata": { | |
| "cell_id": "a40a88074c444f67b9b1fb799de6e6d0", | |
| "deepnote_cell_type": "code", | |
| "deepnote_to_be_reexecuted": false, | |
| "execution_millis": 2, | |
| "execution_start": 1680448808578, | |
| "source_hash": "415f760d" | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "(1850310, 21)" | |
| ] | |
| }, | |
| "execution_count": 5, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "books_df.shape" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 6, | |
| "metadata": { | |
| "cell_id": "fc37cebbe109431981740046ed0697b5", | |
| "deepnote_cell_type": "code", | |
| "deepnote_to_be_reexecuted": false, | |
| "execution_millis": 7, | |
| "execution_start": 1680448811730, | |
| "source_hash": "b7e7e206" | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "{'Id': Int64,\n", | |
| " 'Name': Utf8,\n", | |
| " 'Authors': Utf8,\n", | |
| " 'ISBN': Utf8,\n", | |
| " 'Rating': Float64,\n", | |
| " 'PublishYear': Int64,\n", | |
| " 'PublishMonth': Int64,\n", | |
| " 'PublishDay': Int64,\n", | |
| " 'Publisher': Utf8,\n", | |
| " 'RatingDist5': Utf8,\n", | |
| " 'RatingDist4': Utf8,\n", | |
| " 'RatingDist3': Utf8,\n", | |
| " 'RatingDist2': Utf8,\n", | |
| " 'RatingDist1': Utf8,\n", | |
| " 'RatingDistTotal': Utf8,\n", | |
| " 'CountsOfReview': Int64,\n", | |
| " 'Language': Utf8,\n", | |
| " 'pagesNumber': Int64,\n", | |
| " 'Description': Utf8,\n", | |
| " 'Count of text reviews': Int64,\n", | |
| " 'PagesNumber': Int64}" | |
| ] | |
| }, | |
| "execution_count": 6, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "books_df.schema" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "cell_id": "3c3058b159324ec3b8c8f246f53678ec", | |
| "deepnote_cell_type": "markdown" | |
| }, | |
| "source": [ | |
| "- There are a lot of numerical data, that was interpreted as string object.\n", | |
| "- Rating columns (RatingDist1->5, RatingDistTotal) start with prefixes like '5:', '4:', 'total:'. This infomation needs removing.\n", | |
| "- PublishMonth = 16 (???). Maybe the data was wrongly associated.\n", | |
| "- There are lots of missing values in Language, Description and Count of text reviews.\n", | |
| "- Misconception of column 'pagesNumber' and 'PagesNumber', need joining again.\n", | |
| "- There are some missing data even if we join 'pagesNumber' and 'PagesNumber'" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "cell_id": "a2636654aaa144eb8a9b39926cd5065b", | |
| "deepnote_cell_type": "markdown" | |
| }, | |
| "source": [ | |
| "#### Name" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 7, | |
| "metadata": { | |
| "cell_id": "480e9d457e07457b8ddaaa4253362279", | |
| "deepnote_cell_type": "code", | |
| "deepnote_to_be_reexecuted": false, | |
| "execution_millis": 1026, | |
| "execution_start": 1680448816597, | |
| "source_hash": "d1dfb5e5" | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "1636235" | |
| ] | |
| }, | |
| "execution_count": 7, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "books_df['Name'].n_unique()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "cell_id": "7673c39fdac7403ba0744f159f3f0342", | |
| "deepnote_cell_type": "markdown" | |
| }, | |
| "source": [ | |
| "Not all the names are unique. Probably there are some books that were published with the same name, bur from different Publishers" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 8, | |
| "metadata": { | |
| "cell_id": "b5928c7066464554bc5c82d9ae9001df", | |
| "deepnote_cell_type": "code", | |
| "deepnote_to_be_reexecuted": false, | |
| "execution_millis": 1628, | |
| "execution_start": 1680448823327, | |
| "source_hash": "17949328" | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/html": [ | |
| "<div><style>\n", | |
| ".dataframe > thead > tr > th,\n", | |
| ".dataframe > tbody > tr > td {\n", | |
| " text-align: right;\n", | |
| "}\n", | |
| "</style>\n", | |
| "<small>shape: (366827, 21)</small><table border=\"1\" class=\"dataframe\"><thead><tr><th>Id</th><th>Name</th><th>Authors</th><th>ISBN</th><th>Rating</th><th>PublishYear</th><th>PublishMonth</th><th>PublishDay</th><th>Publisher</th><th>RatingDist5</th><th>RatingDist4</th><th>RatingDist3</th><th>RatingDist2</th><th>RatingDist1</th><th>RatingDistTotal</th><th>CountsOfReview</th><th>Language</th><th>pagesNumber</th><th>Description</th><th>Count of text reviews</th><th>PagesNumber</th></tr><tr><td>i64</td><td>str</td><td>str</td><td>str</td><td>f64</td><td>i64</td><td>i64</td><td>i64</td><td>str</td><td>str</td><td>str</td><td>str</td><td>str</td><td>str</td><td>str</td><td>i64</td><td>str</td><td>i64</td><td>str</td><td>i64</td><td>i64</td></tr></thead><tbody><tr><td>560791</td><td>""A Trade Like …</td><td>"Karin van Nieu…</td><td>"0292787235"</td><td>4.33</td><td>1995</td><td>1</td><td>1</td><td>"University of …</td><td>"5:26"</td><td>"4:16"</td><td>"3:9"</td><td>"2:0"</td><td>"1:0"</td><td>"total:51"</td><td>6</td><td>null</td><td>240</td><td>null</td><td>null</td><td>null</td></tr><tr><td>3529667</td><td>""A Trade Like …</td><td>"Karin van Nieu…</td><td>"0292787200"</td><td>4.33</td><td>1995</td><td>1</td><td>1</td><td>"University of …</td><td>"5:26"</td><td>"4:17"</td><td>"3:9"</td><td>"2:0"</td><td>"1:0"</td><td>"total:52"</td><td>0</td><td>null</td><td>null</td><td>"In Egypt, sing…</td><td>null</td><td>226</td></tr><tr><td>2340088</td><td>""Ace" Any Test…</td><td>"Ron Fry"</td><td>"1564144607"</td><td>2.89</td><td>2000</td><td>7</td><td>1</td><td>"Career Press"</td><td>"5:0"</td><td>"4:5"</td><td>"3:7"</td><td>"2:5"</td><td>"1:1"</td><td>"total:18"</td><td>0</td><td>null</td><td>null</td><td>"Shows how to c…</td><td>null</td><td>124</td></tr><tr><td>3573192</td><td>""Ace" Any Test…</td><td>"Ron Fry"</td><td>"1564140792"</td><td>2.95</td><td>1994</td><td>8</td><td>1</td><td>"Career Press"</td><td>"5:0"</td><td>"4:6"</td><td>"3:7"</td><td>"2:5"</td><td>"1:1"</td><td>"total:19"</td><td>0</td><td>null</td><td>null</td><td>"Testy on test …</td><td>null</td><td>128</td></tr><tr><td>362418</td><td>""After Mecca":…</td><td>"Cheryl Clark"</td><td>"0813534062"</td><td>4.19</td><td>2004</td><td>24</td><td>11</td><td>"Rutgers Univer…</td><td>"5:7"</td><td>"4:5"</td><td>"3:4"</td><td>"2:0"</td><td>"1:0"</td><td>"total:16"</td><td>3</td><td>null</td><td>224</td><td>null</td><td>null</td><td>null</td></tr><tr><td>3624004</td><td>""After Mecca":…</td><td>"Cheryl A. Clar…</td><td>"0813534054"</td><td>4.13</td><td>2004</td><td>11</td><td>22</td><td>"Rutgers Univer…</td><td>"5:6"</td><td>"4:5"</td><td>"3:4"</td><td>"2:0"</td><td>"1:0"</td><td>"total:15"</td><td>0</td><td>null</td><td>null</td><td>"The politics a…</td><td>null</td><td>224</td></tr><tr><td>7940</td><td>""B" Is for Bet…</td><td>"Carolyn Haywoo…</td><td>"015205099X"</td><td>4.04</td><td>2004</td><td>1</td><td>5</td><td>"HMH Books for …</td><td>"5:1980"</td><td>"4:1267"</td><td>"3:868"</td><td>"2:240"</td><td>"1:157"</td><td>"total:4512"</td><td>122</td><td>null</td><td>144</td><td>null</td><td>null</td><td>null</td></tr><tr><td>3109984</td><td>""B" Is for Bet…</td><td>"Carolyn Haywoo…</td><td>"0152051031"</td><td>4.04</td><td>2004</td><td>5</td><td>1</td><td>"HMH Books for …</td><td>"5:1987"</td><td>"4:1281"</td><td>"3:875"</td><td>"2:238"</td><td>"1:158"</td><td>"total:4539"</td><td>0</td><td>null</td><td>null</td><td>"Carolyn Haywoo…</td><td>null</td><td>144</td></tr><tr><td>2503072</td><td>""Baad Bitches"…</td><td>"Stephane Dunn"</td><td>"025207548X"</td><td>4.0</td><td>2008</td><td>8</td><td>4</td><td>"University of …</td><td>"5:6"</td><td>"4:9"</td><td>"3:3"</td><td>"2:0"</td><td>"1:1"</td><td>"total:19"</td><td>3</td><td>null</td><td>null</td><td>"This lively st…</td><td>null</td><td>192</td></tr><tr><td>4279803</td><td>""Baad Bitches"…</td><td>"Stephane Dunn"</td><td>"025203340X"</td><td>4.0</td><td>2008</td><td>8</td><td>4</td><td>"University of …</td><td>"5:6"</td><td>"4:9"</td><td>"3:3"</td><td>"2:0"</td><td>"1:1"</td><td>"total:19"</td><td>0</td><td>null</td><td>null</td><td>"This lively st…</td><td>null</td><td>192</td></tr><tr><td>799864</td><td>""Bee My Valent…</td><td>"Miriam Cohen"</td><td>"0440411211"</td><td>3.19</td><td>1996</td><td>1</td><td>1</td><td>"Yearling"</td><td>"5:11"</td><td>"4:4"</td><td>"3:18"</td><td>"2:13"</td><td>"1:2"</td><td>"total:48"</td><td>1</td><td>null</td><td>32</td><td>"The pupils of …</td><td>1</td><td>null</td></tr><tr><td>1295385</td><td>""Bee My Valent…</td><td>"Miriam Cohen"</td><td>"0688841295"</td><td>3.19</td><td>1978</td><td>1</td><td>12</td><td>"Greenwillow Bo…</td><td>"5:11"</td><td>"4:4"</td><td>"3:18"</td><td>"2:13"</td><td>"1:2"</td><td>"total:48"</td><td>4</td><td>null</td><td>32</td><td>"The pupils of …</td><td>4</td><td>null</td></tr><tr><td>…</td><td>…</td><td>…</td><td>…</td><td>…</td><td>…</td><td>…</td><td>…</td><td>…</td><td>…</td><td>…</td><td>…</td><td>…</td><td>…</td><td>…</td><td>…</td><td>…</td><td>…</td><td>…</td><td>…</td><td>…</td></tr><tr><td>2866321</td><td>"源氏物語 あさきゆめみし 2…</td><td>"Waki Yamato"</td><td>"4063600513"</td><td>3.0</td><td>2001</td><td>7</td><td>31</td><td>"講談社"</td><td>"5:0"</td><td>"4:0"</td><td>"3:1"</td><td>"2:0"</td><td>"1:0"</td><td>"total:1"</td><td>0</td><td>"jpn"</td><td>null</td><td>"超ベストセラー「あさきゆめみ…</td><td>null</td><td>414</td></tr><tr><td>3157244</td><td>"源氏物語 あさきゆめみし 2…</td><td>"時海結以"</td><td>"4061487531"</td><td>4.5</td><td>2006</td><td>12</td><td>20</td><td>"講談社"</td><td>"5:1"</td><td>"4:1"</td><td>"3:0"</td><td>"2:0"</td><td>"1:0"</td><td>"total:2"</td><td>0</td><td>"jpn"</td><td>null</td><td>"紫式部の「源氏物語」をもとに…</td><td>null</td><td>290</td></tr><tr><td>2712103</td><td>"砂漠 [Sabaku]"</td><td>"Kōtarō Isaka"</td><td>"4408534846"</td><td>4.02</td><td>2005</td><td>12</td><td>10</td><td>"Jitsugyō no Ni…</td><td>"5:19"</td><td>"4:22"</td><td>"3:9"</td><td>"2:3"</td><td>"1:1"</td><td>"total:54"</td><td>3</td><td>"jpn"</td><td>null</td><td>null</td><td>null</td><td>410</td></tr><tr><td>4548702</td><td>"砂漠 [Sabaku]"</td><td>"Kōtarō Isaka"</td><td>"4408535346"</td><td>4.02</td><td>2008</td><td>8</td><td>1</td><td>null</td><td>"5:19"</td><td>"4:23"</td><td>"3:9"</td><td>"2:3"</td><td>"1:1"</td><td>"total:55"</td><td>0</td><td>"jpn"</td><td>null</td><td>"入学、一人暮らし、新しい友人…</td><td>null</td><td>416</td></tr><tr><td>2043993</td><td>"遣悲懷"</td><td>"駱以軍"</td><td>"9574697096"</td><td>4.62</td><td>2001</td><td>11</td><td>9</td><td>"麥田出版股份有限公司"</td><td>"5:6"</td><td>"4:1"</td><td>"3:1"</td><td>"2:0"</td><td>"1:0"</td><td>"total:8"</td><td>0</td><td>"zho"</td><td>null</td><td>null</td><td>null</td><td>363</td></tr><tr><td>1463337</td><td>"遣悲懷"</td><td>"Yijun Luo (駱以軍…</td><td>null</td><td>4.62</td><td>2001</td><td>9</td><td>11</td><td>"麥田出版"</td><td>"5:6"</td><td>"4:1"</td><td>"3:1"</td><td>"2:0"</td><td>"1:0"</td><td>"total:8"</td><td>1</td><td>"zho"</td><td>368</td><td>null</td><td>1</td><td>null</td></tr><tr><td>326292</td><td>"鹿鼎記(一)"</td><td>"Jin Yong (金庸)"</td><td>"9573229471"</td><td>4.29</td><td>1996</td><td>16</td><td>12</td><td>"遠流出版事業股份有限公司"</td><td>"5:444"</td><td>"4:297"</td><td>"3:116"</td><td>"2:19"</td><td>"1:12"</td><td>"total:888"</td><td>0</td><td>"zho"</td><td>432</td><td>null</td><td>null</td><td>null</td></tr><tr><td>1210051</td><td>"鹿鼎記(一)"</td><td>"Jin Yong"</td><td>"9573258064"</td><td>4.29</td><td>2006</td><td>16</td><td>7</td><td>"遠流出版事業股份有限公司"</td><td>"5:459"</td><td>"4:314"</td><td>"3:117"</td><td>"2:21"</td><td>"1:12"</td><td>"total:923"</td><td>0</td><td>"zho"</td><td>472</td><td>"奇書者,《鹿鼎記》是也。《鹿…</td><td>0</td><td>null</td></tr><tr><td>1500766</td><td>"�buen Viaje! L…</td><td>"Protase E. Woo…</td><td>"007861970X"</td><td>3.6</td><td>2004</td><td>3</td><td>3</td><td>"McGraw-Hill Ed…</td><td>"5:0"</td><td>"4:3"</td><td>"3:2"</td><td>"2:0"</td><td>"1:0"</td><td>"total:5"</td><td>0</td><td>null</td><td>493</td><td>"�Buen viaje! i…</td><td>0</td><td>null</td></tr><tr><td>1734000</td><td>"�buen Viaje! L…</td><td>"Protase E. Woo…</td><td>"0078256828"</td><td>3.0</td><td>2001</td><td>13</td><td>3</td><td>"McGraw-Hill Ed…</td><td>"5:0"</td><td>"4:0"</td><td>"3:1"</td><td>"2:0"</td><td>"1:0"</td><td>"total:1"</td><td>0</td><td>null</td><td>536</td><td>"Students conti…</td><td>null</td><td>null</td></tr><tr><td>587465</td><td>"�umar Ibn Al-F…</td><td>"ابن الفارض"</td><td>"080914008X"</td><td>3.9</td><td>2001</td><td>1</td><td>5</td><td>"Paulist Press"</td><td>"5:8"</td><td>"4:6"</td><td>"3:5"</td><td>"2:1"</td><td>"1:1"</td><td>"total:21"</td><td>3</td><td>null</td><td>384</td><td>null</td><td>null</td><td>null</td></tr><tr><td>4489958</td><td>"�umar Ibn Al-F…</td><td>"'Umar Ibn 'Ali…</td><td>"0809105284"</td><td>3.95</td><td>2001</td><td>5</td><td>1</td><td>"Paulist Press"</td><td>"5:9"</td><td>"4:6"</td><td>"3:5"</td><td>"2:1"</td><td>"1:1"</td><td>"total:22"</td><td>0</td><td>null</td><td>null</td><td>"Umar Ibn al-Fa…</td><td>null</td><td>384</td></tr></tbody></table></div>" | |
| ], | |
| "text/plain": [ | |
| "shape: (366827, 21)\n", | |
| "┌─────────┬───────────┬───────────┬───────────┬───┬───────────┬───────────┬────────────┬───────────┐\n", | |
| "│ Id ┆ Name ┆ Authors ┆ ISBN ┆ … ┆ pagesNumb ┆ Descripti ┆ Count of ┆ PagesNumb │\n", | |
| "│ --- ┆ --- ┆ --- ┆ --- ┆ ┆ er ┆ on ┆ text ┆ er │\n", | |
| "│ i64 ┆ str ┆ str ┆ str ┆ ┆ --- ┆ --- ┆ reviews ┆ --- │\n", | |
| "│ ┆ ┆ ┆ ┆ ┆ i64 ┆ str ┆ --- ┆ i64 │\n", | |
| "│ ┆ ┆ ┆ ┆ ┆ ┆ ┆ i64 ┆ │\n", | |
| "╞═════════╪═══════════╪═══════════╪═══════════╪═══╪═══════════╪═══════════╪════════════╪═══════════╡\n", | |
| "│ 560791 ┆ \"A Trade ┆ Karin van ┆ 029278723 ┆ … ┆ 240 ┆ null ┆ null ┆ null │\n", | |
| "│ ┆ Like Any ┆ Nieuwkerk ┆ 5 ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ ┆ Other\": ┆ ┆ ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ ┆ Female… ┆ ┆ ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ 3529667 ┆ \"A Trade ┆ Karin van ┆ 029278720 ┆ … ┆ null ┆ In Egypt, ┆ null ┆ 226 │\n", | |
| "│ ┆ Like Any ┆ Nieuwkerk ┆ 0 ┆ ┆ ┆ singing ┆ ┆ │\n", | |
| "│ ┆ Other\": ┆ ┆ ┆ ┆ ┆ and ┆ ┆ │\n", | |
| "│ ┆ Female… ┆ ┆ ┆ ┆ ┆ dancing ┆ ┆ │\n", | |
| "│ ┆ ┆ ┆ ┆ ┆ ┆ ar… ┆ ┆ │\n", | |
| "│ 2340088 ┆ \"Ace\" Any ┆ Ron Fry ┆ 156414460 ┆ … ┆ null ┆ Shows how ┆ null ┆ 124 │\n", | |
| "│ ┆ Test ┆ ┆ 7 ┆ ┆ ┆ to ┆ ┆ │\n", | |
| "│ ┆ ┆ ┆ ┆ ┆ ┆ conquer ┆ ┆ │\n", | |
| "│ ┆ ┆ ┆ ┆ ┆ ┆ test ┆ ┆ │\n", | |
| "│ ┆ ┆ ┆ ┆ ┆ ┆ anxiet… ┆ ┆ │\n", | |
| "│ 3573192 ┆ \"Ace\" Any ┆ Ron Fry ┆ 156414079 ┆ … ┆ null ┆ Testy on ┆ null ┆ 128 │\n", | |
| "│ ┆ Test ┆ ┆ 2 ┆ ┆ ┆ test day? ┆ ┆ │\n", | |
| "│ ┆ ┆ ┆ ┆ ┆ ┆ Don't ┆ ┆ │\n", | |
| "│ ┆ ┆ ┆ ┆ ┆ ┆ stress!… ┆ ┆ │\n", | |
| "│ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … │\n", | |
| "│ 1500766 ┆ �buen ┆ Protase ┆ 007861970 ┆ … ┆ 493 ┆ �Buen ┆ 0 ┆ null │\n", | |
| "│ ┆ Viaje! ┆ E. ┆ X ┆ ┆ ┆ viaje! is ┆ ┆ │\n", | |
| "│ ┆ Level 2, ┆ Woodford ┆ ┆ ┆ ┆ a compreh ┆ ┆ │\n", | |
| "│ ┆ Student ┆ ┆ ┆ ┆ ┆ ensive … ┆ ┆ │\n", | |
| "│ ┆ Ed… ┆ ┆ ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ 1734000 ┆ �buen ┆ Protase ┆ 007825682 ┆ … ┆ 536 ┆ Students ┆ null ┆ null │\n", | |
| "│ ┆ Viaje! ┆ E. ┆ 8 ┆ ┆ ┆ continue ┆ ┆ │\n", | |
| "│ ┆ Level 2, ┆ Woodford ┆ ┆ ┆ ┆ building ┆ ┆ │\n", | |
| "│ ┆ Student ┆ ┆ ┆ ┆ ┆ skill… ┆ ┆ │\n", | |
| "│ ┆ Ed… ┆ ┆ ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ 587465 ┆ �umar Ibn ┆ ابن ┆ 080914008 ┆ … ┆ 384 ┆ null ┆ null ┆ null │\n", | |
| "│ ┆ Al-Farid: ┆ الفارض ┆ X ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ ┆ Sufi ┆ ┆ ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ ┆ Verse, … ┆ ┆ ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ 4489958 ┆ �umar Ibn ┆ 'Umar Ibn ┆ 080910528 ┆ … ┆ null ┆ Umar Ibn ┆ null ┆ 384 │\n", | |
| "│ ┆ Al-Farid: ┆ 'Ali Ibn ┆ 4 ┆ ┆ ┆ al-Farid ┆ ┆ │\n", | |
| "│ ┆ Sufi ┆ Al-Farid ┆ ┆ ┆ ┆ (b. 576 ┆ ┆ │\n", | |
| "│ ┆ Verse, … ┆ ┆ ┆ ┆ ┆ [hijri… ┆ ┆ │\n", | |
| "└─────────┴───────────┴───────────┴───────────┴───┴───────────┴───────────┴────────────┴───────────┘" | |
| ] | |
| }, | |
| "execution_count": 8, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "books_df.filter(books_df['Name'].is_duplicated()).sort('Name')" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "cell_id": "734b7d9371284d7e8ad61ed631c735cc", | |
| "deepnote_cell_type": "markdown" | |
| }, | |
| "source": [ | |
| "True. A lot of books were published multiple times. However, let's check 100% duplicates" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 9, | |
| "metadata": { | |
| "cell_id": "bba3106f890a43a0bb9c586266438000", | |
| "deepnote_cell_type": "code", | |
| "deepnote_to_be_reexecuted": false, | |
| "execution_millis": 7601, | |
| "execution_start": 1680448827627, | |
| "source_hash": "9b8e4e87" | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/html": [ | |
| "<div><style>\n", | |
| ".dataframe > thead > tr > th,\n", | |
| ".dataframe > tbody > tr > td {\n", | |
| " text-align: right;\n", | |
| "}\n", | |
| "</style>\n", | |
| "<small>shape: (224, 21)</small><table border=\"1\" class=\"dataframe\"><thead><tr><th>Id</th><th>Name</th><th>Authors</th><th>ISBN</th><th>Rating</th><th>PublishYear</th><th>PublishMonth</th><th>PublishDay</th><th>Publisher</th><th>RatingDist5</th><th>RatingDist4</th><th>RatingDist3</th><th>RatingDist2</th><th>RatingDist1</th><th>RatingDistTotal</th><th>CountsOfReview</th><th>Language</th><th>pagesNumber</th><th>Description</th><th>Count of text reviews</th><th>PagesNumber</th></tr><tr><td>i64</td><td>str</td><td>str</td><td>str</td><td>f64</td><td>i64</td><td>i64</td><td>i64</td><td>str</td><td>str</td><td>str</td><td>str</td><td>str</td><td>str</td><td>str</td><td>i64</td><td>str</td><td>i64</td><td>str</td><td>i64</td><td>i64</td></tr></thead><tbody><tr><td>76770</td><td>"Recommended Di…</td><td>"National Resea…</td><td>"0309046335"</td><td>0.0</td><td>1989</td><td>1</td><td>2</td><td>"National Acade…</td><td>"5:0"</td><td>"4:0"</td><td>"3:0"</td><td>"2:0"</td><td>"1:0"</td><td>"total:0"</td><td>0</td><td>null</td><td>302</td><td>null</td><td>null</td><td>null</td></tr><tr><td>76772</td><td>"The Circle Com…</td><td>"Merwyn Borders…</td><td>"1577360877"</td><td>0.0</td><td>1998</td><td>1</td><td>1</td><td>"Providence Hou…</td><td>"5:0"</td><td>"4:0"</td><td>"3:0"</td><td>"2:0"</td><td>"1:0"</td><td>"total:0"</td><td>0</td><td>null</td><td>400</td><td>null</td><td>null</td><td>null</td></tr><tr><td>76773</td><td>"The God We Nev…</td><td>"Marcus J. Borg…</td><td>"0060610352"</td><td>4.21</td><td>2015</td><td>19</td><td>5</td><td>"HarperOne"</td><td>"5:335"</td><td>"4:279"</td><td>"3:103"</td><td>"2:25"</td><td>"1:7"</td><td>"total:749"</td><td>65</td><td>null</td><td>192</td><td>null</td><td>null</td><td>null</td></tr><tr><td>76774</td><td>"Living the Hea…</td><td>"Marcus J. Borg…</td><td>"0061118427"</td><td>4.1</td><td>2006</td><td>31</td><td>10</td><td>"HarperOne"</td><td>"5:23"</td><td>"4:26"</td><td>"3:8"</td><td>"2:3"</td><td>"1:1"</td><td>"total:61"</td><td>2</td><td>null</td><td>180</td><td>null</td><td>null</td><td>null</td></tr><tr><td>76784</td><td>"A Stone of the…</td><td>"John Brady"</td><td>"0140138471"</td><td>3.33</td><td>1990</td><td>1</td><td>8</td><td>"Penguin Books"</td><td>"5:10"</td><td>"4:36"</td><td>"3:28"</td><td>"2:13"</td><td>"1:6"</td><td>"total:93"</td><td>0</td><td>null</td><td>256</td><td>null</td><td>null</td><td>null</td></tr><tr><td>76785</td><td>"A Carra King (…</td><td>"John Brady"</td><td>"1586420186"</td><td>3.45</td><td>2015</td><td>15</td><td>10</td><td>null</td><td>"5:6"</td><td>"4:18"</td><td>"3:13"</td><td>"2:4"</td><td>"1:3"</td><td>"total:44"</td><td>6</td><td>"eng"</td><td>548</td><td>null</td><td>null</td><td>null</td></tr><tr><td>76790</td><td>"Holiday Pumpki…</td><td>"Georgeanne Bre…</td><td>"0765108151"</td><td>4.0</td><td>1998</td><td>1</td><td>8</td><td>"Smithmark Publ…</td><td>"5:1"</td><td>"4:3"</td><td>"3:1"</td><td>"2:0"</td><td>"1:0"</td><td>"total:5"</td><td>0</td><td>null</td><td>112</td><td>null</td><td>null</td><td>null</td></tr><tr><td>76791</td><td>"Otherness"</td><td>"David Brin"</td><td>"0553295284"</td><td>3.78</td><td>2009</td><td>23</td><td>12</td><td>"Bantam Spectra…</td><td>"5:356"</td><td>"4:641"</td><td>"3:527"</td><td>"2:80"</td><td>"1:6"</td><td>"total:1610"</td><td>43</td><td>"eng"</td><td>358</td><td>null</td><td>null</td><td>null</td></tr><tr><td>76793</td><td>"101 Essential …</td><td>"John Brookes"</td><td>null</td><td>3.2</td><td>1996</td><td>23</td><td>5</td><td>null</td><td>"5:0"</td><td>"4:2"</td><td>"3:2"</td><td>"2:1"</td><td>"1:0"</td><td>"total:5"</td><td>2</td><td>null</td><td>72</td><td>null</td><td>null</td><td>null</td></tr><tr><td>76797</td><td>"The Epistles o…</td><td>"Raymond E. Bro…</td><td>"0385056869"</td><td>4.13</td><td>1982</td><td>27</td><td>7</td><td>"Anchor Bible"</td><td>"5:17"</td><td>"4:14"</td><td>"3:5"</td><td>"2:2"</td><td>"1:1"</td><td>"total:39"</td><td>4</td><td>null</td><td>840</td><td>null</td><td>null</td><td>null</td></tr><tr><td>76800</td><td>"The Book of Be…</td><td>"Frederick Buec…</td><td>"0689109865"</td><td>3.97</td><td>1979</td><td>1</td><td>1</td><td>"Atheneum Books…</td><td>"5:103"</td><td>"4:97"</td><td>"3:65"</td><td>"2:15"</td><td>"1:6"</td><td>"total:286"</td><td>2</td><td>null</td><td>530</td><td>null</td><td>null</td><td>null</td></tr><tr><td>76801</td><td>"Brendan"</td><td>"Frederick Buec…</td><td>"0060611782"</td><td>3.92</td><td>2000</td><td>16</td><td>5</td><td>"HarperOne"</td><td>"5:159"</td><td>"4:237"</td><td>"3:133"</td><td>"2:29"</td><td>"1:5"</td><td>"total:563"</td><td>58</td><td>null</td><td>256</td><td>null</td><td>null</td><td>null</td></tr><tr><td>…</td><td>…</td><td>…</td><td>…</td><td>…</td><td>…</td><td>…</td><td>…</td><td>…</td><td>…</td><td>…</td><td>…</td><td>…</td><td>…</td><td>…</td><td>…</td><td>…</td><td>…</td><td>…</td><td>…</td><td>…</td></tr><tr><td>86026</td><td>"Murder in the …</td><td>"Elliott Roosev…</td><td>"0312955782"</td><td>3.65</td><td>1996</td><td>15</td><td>1</td><td>"St. Martin's P…</td><td>"5:22"</td><td>"4:68"</td><td>"3:46"</td><td>"2:11"</td><td>"1:2"</td><td>"total:149"</td><td>10</td><td>"eng"</td><td>242</td><td>null</td><td>null</td><td>null</td></tr><tr><td>86027</td><td>"Grandmere: A P…</td><td>"David B. Roose…</td><td>"0446695076"</td><td>3.92</td><td>2005</td><td>25</td><td>8</td><td>"Warner Books (…</td><td>"5:29"</td><td>"4:53"</td><td>"3:34"</td><td>"2:2"</td><td>"1:0"</td><td>"total:118"</td><td>2</td><td>null</td><td>244</td><td>null</td><td>null</td><td>null</td></tr><tr><td>86028</td><td>"Eleanor And Ha…</td><td>"Steve Neal"</td><td>"0806525614"</td><td>4.12</td><td>2004</td><td>1</td><td>2</td><td>"Citadel"</td><td>"5:9"</td><td>"4:12"</td><td>"3:2"</td><td>"2:2"</td><td>"1:0"</td><td>"total:25"</td><td>1</td><td>null</td><td>304</td><td>null</td><td>null</td><td>null</td></tr><tr><td>86032</td><td>"Here Comes Ele…</td><td>"Virginia Veede…</td><td>"188810533X"</td><td>3.5</td><td>1998</td><td>1</td><td>11</td><td>"Avisson Press …</td><td>"5:0"</td><td>"4:1"</td><td>"3:1"</td><td>"2:0"</td><td>"1:0"</td><td>"total:2"</td><td>0</td><td>null</td><td>142</td><td>null</td><td>null</td><td>null</td></tr><tr><td>86033</td><td>"Learning about…</td><td>"Nancy Ellwood"</td><td>"0823953459"</td><td>4.0</td><td>2001</td><td>1</td><td>1</td><td>"PowerKids Pres…</td><td>"5:0"</td><td>"4:1"</td><td>"3:0"</td><td>"2:0"</td><td>"1:0"</td><td>"total:1"</td><td>0</td><td>null</td><td>24</td><td>null</td><td>null</td><td>null</td></tr><tr><td>86034</td><td>"Sara and Elean…</td><td>"Jan Pottker"</td><td>"0312339399"</td><td>3.89</td><td>2005</td><td>1</td><td>4</td><td>"St. Martin's G…</td><td>"5:36"</td><td>"4:49"</td><td>"3:33"</td><td>"2:7"</td><td>"1:1"</td><td>"total:126"</td><td>20</td><td>null</td><td>416</td><td>null</td><td>null</td><td>null</td></tr><tr><td>86035</td><td>"Eleanor Roosev…</td><td>"Nancy J. Skarm…</td><td>"0824940792"</td><td>3.8</td><td>1996</td><td>1</td><td>9</td><td>"Ideals Publica…</td><td>"5:3"</td><td>"4:0"</td><td>"3:1"</td><td>"2:0"</td><td>"1:1"</td><td>"total:5"</td><td>1</td><td>null</td><td>80</td><td>null</td><td>null</td><td>null</td></tr><tr><td>86037</td><td>"The Eleanor Ro…</td><td>"Eleanor Roosev…</td><td>"0684314754"</td><td>4.12</td><td>2007</td><td>1</td><td>1</td><td>"Gale Cengage"</td><td>"5:5"</td><td>"4:1"</td><td>"3:1"</td><td>"2:0"</td><td>"1:1"</td><td>"total:8"</td><td>0</td><td>null</td><td>1121</td><td>null</td><td>null</td><td>null</td></tr><tr><td>86199</td><td>"A Place in El …</td><td>"Gloria Lopes-S…</td><td>"0826316875"</td><td>0.0</td><td>1996</td><td>1</td><td>3</td><td>"University of …</td><td>"5:0"</td><td>"4:0"</td><td>"3:0"</td><td>"2:0"</td><td>"1:0"</td><td>"total:0"</td><td>0</td><td>null</td><td>212</td><td>null</td><td>null</td><td>null</td></tr><tr><td>86203</td><td>"Paso Adelante"</td><td>"Sharon Ahern F…</td><td>"0618253327"</td><td>3.0</td><td>2006</td><td>11</td><td>7</td><td>"Cengage Learni…</td><td>"5:1"</td><td>"4:0"</td><td>"3:0"</td><td>"2:0"</td><td>"1:1"</td><td>"total:2"</td><td>1</td><td>null</td><td>400</td><td>null</td><td>null</td><td>null</td></tr><tr><td>86199</td><td>"A Place in El …</td><td>"Gloria Lopes-S…</td><td>"0826316875"</td><td>0.0</td><td>1996</td><td>1</td><td>3</td><td>"University of …</td><td>"5:0"</td><td>"4:0"</td><td>"3:0"</td><td>"2:0"</td><td>"1:0"</td><td>"total:0"</td><td>0</td><td>null</td><td>212</td><td>null</td><td>null</td><td>null</td></tr><tr><td>86203</td><td>"Paso Adelante"</td><td>"Sharon Ahern F…</td><td>"0618253327"</td><td>3.0</td><td>2006</td><td>11</td><td>7</td><td>"Cengage Learni…</td><td>"5:1"</td><td>"4:0"</td><td>"3:0"</td><td>"2:0"</td><td>"1:1"</td><td>"total:2"</td><td>1</td><td>null</td><td>400</td><td>null</td><td>null</td><td>null</td></tr></tbody></table></div>" | |
| ], | |
| "text/plain": [ | |
| "shape: (224, 21)\n", | |
| "┌───────┬────────────┬────────────┬───────────┬───┬───────────┬───────────┬────────────┬───────────┐\n", | |
| "│ Id ┆ Name ┆ Authors ┆ ISBN ┆ … ┆ pagesNumb ┆ Descripti ┆ Count of ┆ PagesNumb │\n", | |
| "│ --- ┆ --- ┆ --- ┆ --- ┆ ┆ er ┆ on ┆ text ┆ er │\n", | |
| "│ i64 ┆ str ┆ str ┆ str ┆ ┆ --- ┆ --- ┆ reviews ┆ --- │\n", | |
| "│ ┆ ┆ ┆ ┆ ┆ i64 ┆ str ┆ --- ┆ i64 │\n", | |
| "│ ┆ ┆ ┆ ┆ ┆ ┆ ┆ i64 ┆ │\n", | |
| "╞═══════╪════════════╪════════════╪═══════════╪═══╪═══════════╪═══════════╪════════════╪═══════════╡\n", | |
| "│ 76770 ┆ Recommende ┆ National ┆ 030904633 ┆ … ┆ 302 ┆ null ┆ null ┆ null │\n", | |
| "│ ┆ d Dietary ┆ Research ┆ 5 ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ ┆ Allowances ┆ Council ┆ ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ 76772 ┆ The Circle ┆ Merwyn ┆ 157736087 ┆ … ┆ 400 ┆ null ┆ null ┆ null │\n", | |
| "│ ┆ Comes ┆ Borders ┆ 7 ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ ┆ Full: New ┆ ┆ ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ ┆ Engla… ┆ ┆ ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ 76773 ┆ The God We ┆ Marcus J. ┆ 006061035 ┆ … ┆ 192 ┆ null ┆ null ┆ null │\n", | |
| "│ ┆ Never ┆ Borg ┆ 2 ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ ┆ Knew: ┆ ┆ ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ ┆ Beyond Do… ┆ ┆ ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ 76774 ┆ Living the ┆ Marcus J. ┆ 006111842 ┆ … ┆ 180 ┆ null ┆ null ┆ null │\n", | |
| "│ ┆ Heart of ┆ Borg ┆ 7 ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ ┆ Christiani ┆ ┆ ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ ┆ ty… ┆ ┆ ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … │\n", | |
| "│ 86199 ┆ A Place in ┆ Gloria Lop ┆ 082631687 ┆ … ┆ 212 ┆ null ┆ null ┆ null │\n", | |
| "│ ┆ El Paso: A ┆ es-Staffor ┆ 5 ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ ┆ Mexican-Am ┆ d ┆ ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ ┆ … ┆ ┆ ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ 86203 ┆ Paso ┆ Sharon ┆ 061825332 ┆ … ┆ 400 ┆ null ┆ null ┆ null │\n", | |
| "│ ┆ Adelante ┆ Ahern ┆ 7 ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ ┆ ┆ Fechter ┆ ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ 86199 ┆ A Place in ┆ Gloria Lop ┆ 082631687 ┆ … ┆ 212 ┆ null ┆ null ┆ null │\n", | |
| "│ ┆ El Paso: A ┆ es-Staffor ┆ 5 ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ ┆ Mexican-Am ┆ d ┆ ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ ┆ … ┆ ┆ ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ 86203 ┆ Paso ┆ Sharon ┆ 061825332 ┆ … ┆ 400 ┆ null ┆ null ┆ null │\n", | |
| "│ ┆ Adelante ┆ Ahern ┆ 7 ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ ┆ ┆ Fechter ┆ ┆ ┆ ┆ ┆ ┆ │\n", | |
| "└───────┴────────────┴────────────┴───────────┴───┴───────────┴───────────┴────────────┴───────────┘" | |
| ] | |
| }, | |
| "execution_count": 9, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "books_df.filter(books_df.is_duplicated())" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "cell_id": "6a2b5de84f0a4b89ad8edc978ec686d6", | |
| "deepnote_cell_type": "markdown" | |
| }, | |
| "source": [ | |
| "In the above output we saw 300k duplicated names, and here's 224 entirely duplicated. In this context I'll drop rows that are duplicated 100%." | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 10, | |
| "metadata": { | |
| "cell_id": "16dad5ec7a2f45339cf847a731335b49", | |
| "deepnote_cell_type": "code", | |
| "deepnote_to_be_reexecuted": false, | |
| "execution_millis": 6821, | |
| "execution_start": 1680448835281, | |
| "source_hash": "f45225e7" | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "(1850198, 21)" | |
| ] | |
| }, | |
| "execution_count": 10, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "books_df = books_df.unique()\n", | |
| "books_df.shape # Reduce 224/2 = 112 rows" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 11, | |
| "metadata": { | |
| "cell_id": "1a1789309dcd47ed8e3c813e682f69a6", | |
| "deepnote_cell_type": "code", | |
| "deepnote_to_be_reexecuted": false, | |
| "execution_millis": 8645, | |
| "execution_start": 1680448846338, | |
| "source_hash": "d8fa76cf" | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "Text(0, 0.5, 'Number of books')" | |
| ] | |
| }, | |
| "execution_count": 11, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| }, | |
| { | |
| "data": { | |
| "image/png": "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EekAiysiIiIiIiIdYHFFRERERESkAyyuiIiIiIiIdIDFFRERERERkQ6wuCIiIiIiItIBFldEREREREQ6wOKKiIiIiIhIB1hcERERERER6QCLKyIiIiIiIh1gcUVERERERKQDLK6IiIiIiIh0gMUVERERERGRDrC4IiIiIiIi0gEWV0RERERERDrA4oqIiIiIiEgHWFwRERERERHpAIsrIiIiIiIiHWBxRUREREREpAMsroiIiIiIiHSAxRUREREREZEOsLgiIiIiIiLSARZXREREREREOsDiioiIiIiISAeEFldhYWH4/vvv4e7uDgcHB5w4cULj9okTJ8LBwUHjP29v73c+77Zt29CyZUs4OzujR48euHbt2vv6KxAREREREQEQXFylpKTAwcEB06ZNy/U+zZs3x5kzZ9T/LViwIM/nPHz4MAICAuDj44Pg4GA4OjrC29sbCQkJuo5PRERERESkZiLyxVu0aIEWLVrkeR8zMzOULVs2388ZFBSEr776Ct26dQMA+Pn54bfffsPevXsxaNCg/ykvERERERFRboQWV/kRGhqKJk2awNLSEo0bN8bIkSNRunTpHO+blpaGmzdv4rvvvlMfMzIyQtOmTXHlypUCv7ZSqVT/2djYuODhdSh7lrfJmk3WXACz5cUQs8maC2C2vBhiNllzAcyWF0PMJmsugNnyYojZZM0FyJMtr4xvk7q4at68OTw8PGBjY4OoqCgsWLAAAwcOxE8//ZTjNzsxMRFKpRJlypTROF6mTBncu3evwK9//fp1AIC5uTlq165duL+EjoSHhyM1NVXruKzZZM0FMNu7GFo2WXMBzPYuhpZN1lwAs72LoWWTNRfAbO9iaNlkzQXInS0vUhdX7du3V/85q6FF69at1aNZ75uzs7PwijmLg4OD6Ai5kjWbrLkAZissWbPJmgtgtsKSNZusuQBmKyxZs8maC2C2wpI1m6y5gP+yKZVK9aDLu0hdXL2tcuXKKF26NB4+fJhjcVW6dGkYGxtrNa9ISEiAtbV1gV/P2NhYmuJKlhw5kTWbrLkAZissWbPJmgtgtsKSNZusuQBmKyxZs8maC2C2wpI1m6y5gMJlM6h9rp48eYKkpKRcG1yYmZmhTp06OH/+vPpYRkYGzp8/D1dXV33FJCIiIiKiD5DQkauXL18iMjJS/XV0dDRu3bqFkiVLomTJkli2bBm++OILWFtbIyoqCvPmzUPVqlXRvHlz9WP69u0LDw8P9O7dGwDQr18/TJgwAU5OTnBxccGmTZuQmpqKrl276v3vR0REREREHw6hxdWNGzfg6emp/jogIAAA0KVLF/j6+uLOnTsICQnB8+fPUa5cOTRr1gwjRoyAmZmZ+jFRUVFITExUf92uXTs8ffoUS5YsQVxcHGrVqoV169YValogERERERFRfgktrtzc3BAeHp7r7evXr3/nc/z6669ax3r37q0eySIiIiIiItIHg1pzRUREREREJCsWV0RERERERDrA4oqIiIiIiEgHWFwRERERERHpQIGLq1evXiE1NVX99aNHj7Bx40acOXNGp8GIiIiIiIgMSYGLqyFDhiAkJAQAkJycjK+++gpBQUEYMmQItm/frut8REREREREBqHAxdXNmzfRsGFDAMCxY8dQpkwZnDp1CnPmzMGWLVt0HpCIiIiIiMgQFGpaYPHixQEAZ86cweeffw4jIyPUq1cPMTExOg9IRERERERkCApcXFWpUgUnTpzA48ePcebMGTRr1gwAkJCQAAsLC50HJCIiIiIiMgQFLq58fHwwd+5ctGzZEnXr1oWrqysA4OzZs6hVq5bOAxIRERERERkCk4I+oE2bNmjQoAHi4uLg6OioPt6kSRO0bt1ap+GIiIiIiIgMRYFHri5cuICyZcuidu3aMDL67+EuLi64cOGCTsMREREREREZigIXV8OGDcONGze0jm/atAnz58/XSSgiIiIiIiJDU+Diavz48Rg4cCAiIiLUxzZs2IAlS5ZgzZo1Og1HRERERERkKAq85qpHjx5ISkpCv379sH37dhw+fBirV6/GmjVr0KBBg/eRkYiIiIiISHoFLq4AYODAgUhKSkK3bt2QkZGB9evXo169ejqORkREREREZDjyVVxt3rxZ61j58uVhbm6Ohg0b4tq1a7h27RoAwNPTU7cJiYiIiIiIDEC+iquNGzfmeNzIyAiXL1/G5cuXAQAKhYLFFRERERERfZDyVVz9+uuv7zsHERERERGRQStwt8DsVCoVVCqVrrIQEREREREZrEIVVyEhIejYsSNcXFzg4uKCjh07IiQkRMfRiIiIiIiIDEeBuwUGBQVh8eLF6NWrF0aOHAkAuHTpEnx9fZGUlAQvLy8dRyQiIiIiIpJfgYurLVu2wNfXF507d1Yfa9Wq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ODjAwcEBf/31F9q3b4+zZ8++j4xERERERETSK/DI1fz58+Hl5YWxY8dqHA8MDERgYCCaNWums3BERERERESGosAjVxEREejevbvW8W7duuHu3bs6CUVERERERGRoClxcWVlZ4datW1rHb926xQ6CRERERET0wSrwtMAePXpg6tSpiIqKQv369QEAly9fxtq1a+Hl5aXrfERERERERAahwMWVj48PLCwssGHDBixYsAAAUK5cOQwdOhSenp46D0hERERERGQIClxcKRQKeHl5wcvLCy9evAAAWFhY6DwYERERERGRISnUPldZWFQRERERERFlKnBDCyIiIiIiItLG4oqIiIiIiEgHWFwRERERERHpQIGKqzdv3qBv37548ODBe4pDRERERERkmApUXJmamiI8PPx9ZSEiIiIiIjJYBZ4W2KlTJ+zZs+d9ZCEiIiIiIjJYBW7FrlQqsWPHDpw7dw5OTk4wNzfXuH3SpEk6C0dERERERGQoClxc3blzB7Vr1wYA3L9/X+M2hUKhm1REREREREQGpsDF1ZYtW95HDiIiIiIiIoNW6FbsDx8+xOnTp/Hq1SsAgEql0lkoIiIiIiIiQ1PgkavExESMHDkSFy9ehEKhwC+//ILKlStj8uTJKFmyJCZOnPg+chIREREREUmtwCNXAQEBMDExwW+//YaiRYuqj7dr1w6nT5/WaTgiIiIiIiJDUeDi6uzZsxg3bhw++ugjjeO2traIiYkp0HOFhYXh+++/h7u7OxwcHHDixAmN21UqFRYvXgx3d3e4uLjAy8srXxsYb9u2DS1btoSzszN69OiBa9euFSgXERERERFRQRW4uEpJSdEYscqSlJQEMzOzAj+Xg4MDpk2bluPta9euxZYtW+Dr64tdu3bB3Nwc3t7eeP36da7PefjwYQQEBMDHxwfBwcFwdHSEt7c3EhISCpSNiIiIiIioIApcXDVs2BAhISEaxzIyMrBu3Tq4ubkV6LlatGiBUaNGwcPDQ+s2lUqFzZs3Y/DgwWjdujUcHR0xd+5c/Pvvv1ojXNkFBQXhq6++Qrdu3VCzZk34+fmhaNGi2Lt3b4GyERERERERFUSBG1qMGzcOXl5euHHjBt68eYN58+bh7t27ePbsGXbs2KGzYNHR0YiLi0PTpk3Vx0qUKIG6deviypUraN++vdZj0tLScPPmTXz33XfqY0ZG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WPJdXM2ePft95siVlZWVxtdr1qxBlSpV8PHHH+f6GIVCgbJly77vaERERERERGqF6hYoSlpaGn7++Wf069cvz9GolJQUfPbZZ8jIyEDt2rUxevRo2NnZFfj1so+YGRsbFyqzrmTP8jZZs8maC2C2vBhiNllzAcyWF0PMJmsugNnyYojZZM0FMFteDDGbrLkAebLllfFtBlVcnThxAs+fP0eXLl1yvU+1atUwa9YsODg44Pnz59iwYQO+/vprHDp0CB999FGBXi9rnZa5uTlq1679P2X/X4WHhyM1NVXruKzZZM0FMNu7GFo2WXMBzPYuhpZN1lwAs72LoWWTNRfAbO9iaNlkzQXInS0vBlVc7d27F5988gnKly+f631cXV3h6uqq8XW7du2wc+dOjBw5skCv5+zsLLxizuLg4CA6Qq5kzSZrLoDZCkvWbLLmApitsGTNJmsugNkKS9ZssuYCmK2wZM0may7gv2xKpTLfzfEMprh69OgRzp07h6VLlxbocaampqhVqxYiIyML/JrGxsbSFFey5MiJrNlkzQUwW2HJmk3WXACzFZas2WTNBTBbYcmaTdZcALMVlqzZZM0FFC6b0XvI8V7s27cPZcqUwaefflqgxymVSty5c4cNLoiIiIiI6L0yiJGrjIwM7Nu3D507d4aJiWbk8ePHo3z58hgzZgyAzH226tWrh6pVqyI5ORnr169HTEwMevToISI6ERERERF9IAyiuDp37hxiYmLQrVs3rdseP34MI6P/BuCSk5MxZcoUxMXFoWTJkqhTpw527tyJmjVr6jMyERERERF9YAyiuHJ3d0d4eHiOt23ZskXj68mTJ2Py5Mn6iEVERERERKRmMGuuiIiIiIiIZMbiioiIiIiISAdYXBEREREREekAiysiIiIiIiIdYHFFRERERESkAyyuiIiIiIiIdIDFFRERERERkQ6wuCIiIiIiItIBFldEREREREQ6wOKKiIiIiIhIB1hcERERERER6QCLKyIiIiIiIh1gcUVERERERKQDLK6IiIiIiIh0gMUVERERERGRDrC4IiIiIiIi0gEWV0RERERERDrA4oqIiIiIiEgHWFwRERERERHpAIsrIiIiIiIiHWBxRUREREREpAMsroiIiIiIiHSAxRUREREREZEOsLgiIiIiIiLSARZXREREREREOsDiioiIiIiISAdYXBEREREREekAiysiIiIiIiIdYHFFRERERESkAyyuiIiIiIiIdIDFFRERERERkQ6wuCIiIiIiItIBqYurpUuXwsHBQeO/Nm3a5PmYI0eOoE2bNnB2dkbHjh3x+++/6yktERERERF9yExEB3gXOzs7BAUFqb82NjbO9b6XL1/GmDFjMHr0aHz22Wc4cOAAfHx8sG/fPtjb2+sjLhERERERfaCkHrkCMoupsmXLqv+zsrLK9b6bN29G8+bNMWDAANSoUQMjR45E7dq1sXXrVj0mJiIiIiKiD5H0I1cPHz6Eu7s7ihQpgnr16mHMmDGoWLFijve9evUqvLy8NI65u7vjxIkThXptpVKp/nNeI2b6kD3L22TNJmsugNnyYojZZM0FMFteDDGbrLkAZsuLIWaTNRfAbHkxxGyy5gLkyZZXxrdJXVy5uLggICAA1apVQ1xcHJYvX45evXrhwIEDsLCw0Lp/fHw8rK2tNY6VKVMG8fHxhXr969evAwDMzc1Ru3btQj2HroSHhyM1NVXruKzZZM0FMNu7GFo2WXMBzPYuhpZN1lwAs72LoWWTNRfAbO9iaNlkzQXInS0vUhdXLVq0UP/Z0dERdevWxWeffYYjR46gR48e7/31nZ2dhVfMWRwcHERHyJWs2WTNBTBbYcmaTdZcALMVlqzZZM0FMFthyZpN1lwAsxWWrNlkzQX8l02pVKoHXd5F6uLqbZaWlrC1tUVkZGSOt1tbW2uNUiUkJGiNZuWXsbGxNMWVLDlyIms2WXMBzFZYsmaTNRfAbIUlazZZcwHMVliyZpM1F8BshSVrNllzAYXLJn1Di+xevnyJqKgolC1bNsfb69WrhwsXLmgcO3fuHOrVq6eHdERERERE9CGTuriaM2cOQkNDER0djcuXL2Po0KEwMjJChw4dAADjx4/H/Pnz1ff39PTE6dOnsWHDBkRERGDp0qW4ceMGevfuLeqvQEREREREHwippwU+efIEo0ePRlJSEqysrNCgQQPs2rVL3Y798ePHMDL6rz6sX78+AgMDsWjRIixYsAC2trZYvnw597giIiIiIqL3TuriauHChXnevmXLFq1jbdu2Rdu2bd9XJCIiIiIiohxJPS2QiIiIiIjIULC4IiIiIiIi0gEWV0RERERERDrA4oqIiIiIiEgHWFwRERERERHpAIsrIiIiIiIiHWBxRUREREREpAMsroiIiIiIiHSAxRUREREREZEOsLgiIiIiIiLSARZXREREREREOsDiioiIiIiISAdYXBEREREREekAiysiIiIiIiIdYHFFRERERESkAyyuiIiIiIiIdIDFFRERERERkQ6wuCIiIiIiItIBFldEREREREQ6wOKKiIiIiIhIB1hcERERERER6QCLKyIiIiIiIh1gcUVERERERKQDLK6IiIiIiIh0gMUVERERERGRDrC4IiIiIiIi0gEWV0RERERERDrA4oqIiIiIiEgHWFwRERERERHpAIsrIiIiIiIiHWBxRUREREREpAMsroiIiIiIiHSAxRUREREREZEOmIgOkJfVq1fjl19+wb1791C0aFG4urpi7NixqF69eq6P2bdvHyZNmqRxzMzMDNevX3/fcYmIiIiI6AMmdXEVGhqKXr16wdnZGUqlEgsWLIC3tzcOHTqEYsWK5fo4CwsLHD16VP21QqHQR1wiIiIiIvqASV1crV+/XuPr2bNno0mTJrh58yYaNWqU6+MUCgXKli37vuMRERERERGpSV1cve358+cAgJIlS+Z5v5SUFHz22WfIyMhA7dq1MXr0aNjZ2RX49ZRKpfrPxsbGBX68LmXP8jZZs8maC2C2vBhiNllzAcyWF0PMJmsugNnyYojZZM0FMFteDDGbrLkAebLllfFtBlNcZWRkYNasWahfvz7s7e1zvV+1atUwa9YsODg44Pnz59iwYQO+/vprHDp0CB999FGBXjNrnZa5uTlq1679P+X/X4WHhyM1NVXruKzZZM0FMNu7GFo2WXMBzPYuhpZN1lwAs72LoWWTNRfAbO9iaNlkzQXInS0vBlNc+fn54Z9//sH27dvzvJ+rqytcXV01vm7Xrh127tyJkSNHFug1nZ2dhVfMWRwcHERHyJWs2WTNBTBbYcmaTdZcALMVlqzZZM0FMFthyZpN1lwAsxWWrNlkzQX8l02pVOa7OZ5BFFfTp0/Hb7/9hq1btxZ49MnU1BS1atVCZGRkgV/X2NhYmuJKlhw5kTWbrLkAZissWbPJmgtgtsKSNZusuQBmKyxZs8maC2C2wpI1m6y5gMJlk3qfK5VKhenTp+P48ePYtGkTKleuXODnUCqVuHPnDhtcEBERERHReyX1yJWfnx8OHjyIFStWoHjx4oiLiwMAlChRAkWLFgUAjB8/HuXLl8eYMWMAAMuWLUO9evVQtWpVJCcnY/369YiJiUGPHj2E/T2IiIiIiOj/PqmLqx07dgAA+vTpo3E8ICAAXbt2BQA8fvwYRkb/DcAlJydjypQpiIuLQ8mSJVGnTh3s3LkTNWvW1F9wIiIiIiL64EhdXIWHh7/zPlu2bNH4evLkyZg8efL7ikRERERERJQjqddcERERERERGQoWV0RERERERDrA4oqIiIiIiEgHWFwRERERERHpAIsrIiIiIiIiHWBxRUREREREpAMsroiIiIiIiHSAxRUREREREZEOsLgiIiIiIiLSARZXREREREREOsDiioiIiIiISAdYXBEREREREekAiysiIiIiIiIdYHFFRERERESkAyyuiIiIiIiIdIDFFRERERERkQ6wuCIiIiIiItIBFldEREREREQ6wOKKiIiIiIhIB1hcERERERER6QCLKyIiIiIiIh1gcUVERERERKQDLK6IiIiIiIh0gMUVERERERGRDrC4IiIiIiIi0gEWV0RERERERDrA4oqIiIiIiEgHWFwRERERERHpAIsrIiIiIiIiHWBxRUREREREpAMsroiIiIiIiHSAxRUREREREZEOGERxtW3bNrRs2RLOzs7o0aMHrl27luf9jxw5gjZt2sDZ2RkdO3bE77//rqekRERERET0oZK+uDp8+DACAgLg4+OD4OBgODo6wtvbGwkJCTne//LlyxgzZgy6d++OkJAQtGrVCj4+Prhz546ekxMRERER0YdE+uIqKCgIX331Fbp164aaNWvCz88PRYsWxd69e3O8/+bNm9G8eXMMGDAANWrUwMiRI1G7dm1s3bpVz8mJiIiIiOhDYiI6QF7S0tJw8+ZNfPfdd+pjRkZGaNq0Ka5cuZLjY65evQovLy+NY+7u7jhx4kS+X1elUqlf39jYGAAy/1/aEkYKRQH/Fv+jUiWgVCqhVCpzvYuxsTGMSpeFkUK/tbJRqTJ5ZjM2NoaplS1UClO95jItXSlf3zPzUraAnrOZl8xfthIlbfWerYRl/rKVKmkLhZ6zlXxHNmNjY5S1tIWRnnOVKZG/71m1ElVhque3W5t8ZrMtURamer7OVqlE3u8dQFa20jCFft9zK5Uo9c6fNdsSJQXksszn96w49PtbAFQqUTxf2aqWMIcJVHpMBlQqYZ6vbFVKGMNEz9+5iiWM3/mzZlXCCAo9/36WLmGUr+9ZcUsFoOdz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", | |
| "text/plain": [ | |
| "<Figure size 1000x500 with 1 Axes>" | |
| ] | |
| }, | |
| "metadata": {}, | |
| "output_type": "display_data" | |
| } | |
| ], | |
| "source": [ | |
| "plt.figure(figsize=(10, 5))\n", | |
| "popular_names = sns.barplot(\n", | |
| " x=books_df.filter(books_df[['Name', 'Authors']].is_duplicated())['Name'].value_counts().sort('counts', descending=True).head(20).to_pandas().Name,\n", | |
| " y=books_df.filter(books_df[['Name', 'Authors']].is_duplicated())['Name'].value_counts().sort('counts', descending=True).head(20).to_pandas().counts\n", | |
| ")\n", | |
| "popular_names.set_xticklabels(popular_names.get_xticklabels(), rotation=90)\n", | |
| "popular_names.set_xlabel('Book name')\n", | |
| "popular_names.set_ylabel('Number of books')" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "cell_id": "59e78d97614b4f96abee8c2d929c3702", | |
| "deepnote_cell_type": "markdown" | |
| }, | |
| "source": [ | |
| "So there are a lot of common names, that were used for several books, that are not related to each other." | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "cell_id": "70372701525344b5931c62ce943086c3", | |
| "deepnote_cell_type": "markdown" | |
| }, | |
| "source": [ | |
| "#### Authors" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 12, | |
| "metadata": { | |
| "cell_id": "96e7fbf649aa407092af3608ce55c64e", | |
| "deepnote_cell_type": "code", | |
| "deepnote_to_be_reexecuted": false, | |
| "execution_millis": 400, | |
| "execution_start": 1680448864614, | |
| "source_hash": "b594b16c" | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "2.739861007657462" | |
| ] | |
| }, | |
| "execution_count": 12, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "books_df.n_unique()/books_df['Authors'].n_unique()" | |
| ] | |
| }, | |
| { | |
| "attachments": {}, | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "cell_id": "6c28e38aac98454bbbd0725a76ef1ed0", | |
| "deepnote_cell_type": "markdown" | |
| }, | |
| "source": [ | |
| "So there're about 2.7 times less authors than books. Can we say in average 1 author wrote 3 books? Let's find the best productive authors" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 13, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/html": [ | |
| "<div><style>\n", | |
| ".dataframe > thead > tr > th,\n", | |
| ".dataframe > tbody > tr > td {\n", | |
| " text-align: right;\n", | |
| "}\n", | |
| "</style>\n", | |
| "<small>shape: (5, 2)</small><table border=\"1\" class=\"dataframe\"><thead><tr><th>Authors</th><th>Name</th></tr><tr><td>str</td><td>u32</td></tr></thead><tbody><tr><td>"Anonymous"</td><td>2893</td></tr><tr><td>"Unknown"</td><td>2029</td></tr><tr><td>"William Shakes…</td><td>1373</td></tr><tr><td>"Francine Pasca…</td><td>930</td></tr><tr><td>"Agatha Christi…</td><td>885</td></tr></tbody></table></div>" | |
| ], | |
| "text/plain": [ | |
| "shape: (5, 2)\n", | |
| "┌─────────────────────┬──────┐\n", | |
| "│ Authors ┆ Name │\n", | |
| "│ --- ┆ --- │\n", | |
| "│ str ┆ u32 │\n", | |
| "╞═════════════════════╪══════╡\n", | |
| "│ Anonymous ┆ 2893 │\n", | |
| "│ Unknown ┆ 2029 │\n", | |
| "│ William Shakespeare ┆ 1373 │\n", | |
| "│ Francine Pascal ┆ 930 │\n", | |
| "│ Agatha Christie ┆ 885 │\n", | |
| "└─────────────────────┴──────┘" | |
| ] | |
| }, | |
| "execution_count": 13, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "books_df.groupby('Authors').agg(pl.col('Name').count()).sort('Name', descending=True).head()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "cell_id": "e786739c5f0947f98b5e20b3c913c9cb", | |
| "deepnote_cell_type": "markdown" | |
| }, | |
| "source": [ | |
| "Excellent! Here's William Shakespeare's the most productive author. Also, we can see that poems owns top spot in the book-counting chart above.\n", | |
| "\n", | |
| "Some N/A value we can see: Anonymous, Unknown, Various, NOT A BOOK" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "cell_id": "5bead8e7d7bb467598930f2c94f4f8a0", | |
| "deepnote_cell_type": "markdown" | |
| }, | |
| "source": [ | |
| "#### ISBN" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 14, | |
| "metadata": { | |
| "cell_id": "ba1335fe0c114390acb6fd252f454bb6", | |
| "deepnote_cell_type": "code", | |
| "deepnote_to_be_reexecuted": false, | |
| "execution_millis": 175, | |
| "execution_start": 1680448868736, | |
| "source_hash": "47d187a1" | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "5922" | |
| ] | |
| }, | |
| "execution_count": 14, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "books_df['ISBN'].null_count()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "cell_id": "3c4a52a190094561a17060c9baf52cb0", | |
| "deepnote_cell_type": "markdown" | |
| }, | |
| "source": [ | |
| "Books seem to be find and I don't want to remove them, but since I also can't replace missing values with anything, so leave it as it is for now" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "cell_id": "f8e3bd0a7b8043afa596900440348def", | |
| "deepnote_cell_type": "markdown" | |
| }, | |
| "source": [ | |
| "#### Rating" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 15, | |
| "metadata": { | |
| "cell_id": "7a1bcfabe8a04a49abd2bca398f15fb6", | |
| "deepnote_cell_type": "code", | |
| "deepnote_to_be_reexecuted": false, | |
| "execution_millis": 77, | |
| "execution_start": 1680448870001, | |
| "source_hash": "34757053" | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/html": [ | |
| "<div><style>\n", | |
| ".dataframe > thead > tr > th,\n", | |
| ".dataframe > tbody > tr > td {\n", | |
| " text-align: right;\n", | |
| "}\n", | |
| "</style>\n", | |
| "<small>shape: (6, 2)</small><table border=\"1\" class=\"dataframe\"><thead><tr><th>statistic</th><th>value</th></tr><tr><td>str</td><td>f64</td></tr></thead><tbody><tr><td>"min"</td><td>0.0</td></tr><tr><td>"max"</td><td>5.0</td></tr><tr><td>"null_count"</td><td>0.0</td></tr><tr><td>"mean"</td><td>2.894194</td></tr><tr><td>"std"</td><td>1.725043</td></tr><tr><td>"count"</td><td>1.850198e6</td></tr></tbody></table></div>" | |
| ], | |
| "text/plain": [ | |
| "shape: (6, 2)\n", | |
| "┌────────────┬────────────┐\n", | |
| "│ statistic ┆ value │\n", | |
| "│ --- ┆ --- │\n", | |
| "│ str ┆ f64 │\n", | |
| "╞════════════╪════════════╡\n", | |
| "│ min ┆ 0.0 │\n", | |
| "│ max ┆ 5.0 │\n", | |
| "│ null_count ┆ 0.0 │\n", | |
| "│ mean ┆ 2.894194 │\n", | |
| "│ std ┆ 1.725043 │\n", | |
| "│ count ┆ 1.850198e6 │\n", | |
| "└────────────┴────────────┘" | |
| ] | |
| }, | |
| "execution_count": 15, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "books_df['Rating'].describe()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 16, | |
| "metadata": { | |
| "cell_id": "05ddd65c61f542b7983a732c80106dc1", | |
| "deepnote_cell_type": "code", | |
| "deepnote_to_be_reexecuted": false, | |
| "execution_millis": 2020, | |
| "execution_start": 1680448871955, | |
| "source_hash": "434d1f61" | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "<seaborn.axisgrid.FacetGrid at 0x7f59c01e3460>" | |
| ] | |
| }, | |
| "execution_count": 16, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| }, | |
| { | |
| "data": { | |
| "image/png": "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", | |
| "text/plain": [ | |
| "<Figure size 500x500 with 1 Axes>" | |
| ] | |
| }, | |
| "metadata": {}, | |
| "output_type": "display_data" | |
| } | |
| ], | |
| "source": [ | |
| "sns.displot(books_df['Rating'], bins=15, kde=False)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "cell_id": "1c6a1388365e414fb875b99013fbbc41", | |
| "deepnote_cell_type": "markdown" | |
| }, | |
| "source": [ | |
| "So mostly there is either no rating, or quite good one with average ~4. If we omit 0 ratings, then distribution is negatively skewed, which is quite typical for rankings of services" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "cell_id": "54f968b2c5914d2a9c0124632c2186a9", | |
| "deepnote_cell_type": "markdown" | |
| }, | |
| "source": [ | |
| "#### Time data: PublishYear, PublishMonth, PublishDay" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 17, | |
| "metadata": { | |
| "cell_id": "aa2dd7f3ea214a8c997b145ae1d93bf9", | |
| "deepnote_cell_type": "code", | |
| "deepnote_to_be_reexecuted": false, | |
| "execution_millis": 1867, | |
| "execution_start": 1680448875891, | |
| "source_hash": "f0c6d49a" | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "{'Id': Int64,\n", | |
| " 'Name': Utf8,\n", | |
| " 'Authors': Utf8,\n", | |
| " 'ISBN': Utf8,\n", | |
| " 'Rating': Float64,\n", | |
| " 'PublishYear': Int32,\n", | |
| " 'PublishMonth': Int8,\n", | |
| " 'PublishDay': Int8,\n", | |
| " 'Publisher': Utf8,\n", | |
| " 'RatingDist5': Utf8,\n", | |
| " 'RatingDist4': Utf8,\n", | |
| " 'RatingDist3': Utf8,\n", | |
| " 'RatingDist2': Utf8,\n", | |
| " 'RatingDist1': Utf8,\n", | |
| " 'RatingDistTotal': Utf8,\n", | |
| " 'CountsOfReview': Int64,\n", | |
| " 'Language': Utf8,\n", | |
| " 'pagesNumber': Int64,\n", | |
| " 'Description': Utf8,\n", | |
| " 'Count of text reviews': Int64,\n", | |
| " 'PagesNumber': Int64}" | |
| ] | |
| }, | |
| "execution_count": 17, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "books_df.replace('PublishDay', books_df['PublishDay'].shrink_dtype())\n", | |
| "books_df.replace('PublishMonth', books_df['PublishMonth'].shrink_dtype())\n", | |
| "books_df.replace('PublishYear', books_df['PublishYear'].shrink_dtype())\n", | |
| "books_df.schema" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 18, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/html": [ | |
| "<div><style>\n", | |
| ".dataframe > thead > tr > th,\n", | |
| ".dataframe > tbody > tr > td {\n", | |
| " text-align: right;\n", | |
| "}\n", | |
| "</style>\n", | |
| "<small>shape: (7, 4)</small><table border=\"1\" class=\"dataframe\"><thead><tr><th>describe</th><th>PublishDay</th><th>PublishMonth</th><th>PublishYear</th></tr><tr><td>str</td><td>f64</td><td>f64</td><td>f64</td></tr></thead><tbody><tr><td>"count"</td><td>1.850198e6</td><td>1.850198e6</td><td>1.850198e6</td></tr><tr><td>"null_count"</td><td>0.0</td><td>0.0</td><td>0.0</td></tr><tr><td>"mean"</td><td>7.987328</td><td>7.700395</td><td>1997.841519</td></tr><tr><td>"std"</td><td>8.431971</td><td>7.756715</td><td>87.897239</td></tr><tr><td>"min"</td><td>1.0</td><td>1.0</td><td>1.0</td></tr><tr><td>"max"</td><td>31.0</td><td>31.0</td><td>65535.0</td></tr><tr><td>"median"</td><td>5.0</td><td>6.0</td><td>2000.0</td></tr></tbody></table></div>" | |
| ], | |
| "text/plain": [ | |
| "shape: (7, 4)\n", | |
| "┌────────────┬────────────┬──────────────┬─────────────┐\n", | |
| "│ describe ┆ PublishDay ┆ PublishMonth ┆ PublishYear │\n", | |
| "│ --- ┆ --- ┆ --- ┆ --- │\n", | |
| "│ str ┆ f64 ┆ f64 ┆ f64 │\n", | |
| "╞════════════╪════════════╪══════════════╪═════════════╡\n", | |
| "│ count ┆ 1.850198e6 ┆ 1.850198e6 ┆ 1.850198e6 │\n", | |
| "│ null_count ┆ 0.0 ┆ 0.0 ┆ 0.0 │\n", | |
| "│ mean ┆ 7.987328 ┆ 7.700395 ┆ 1997.841519 │\n", | |
| "│ std ┆ 8.431971 ┆ 7.756715 ┆ 87.897239 │\n", | |
| "│ min ┆ 1.0 ┆ 1.0 ┆ 1.0 │\n", | |
| "│ max ┆ 31.0 ┆ 31.0 ┆ 65535.0 │\n", | |
| "│ median ┆ 5.0 ┆ 6.0 ┆ 2000.0 │\n", | |
| "└────────────┴────────────┴──────────────┴─────────────┘" | |
| ] | |
| }, | |
| "execution_count": 18, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "books_df[['PublishDay', 'PublishMonth', 'PublishYear']].describe()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "cell_id": "832564b22b10406590e768c6430fec51", | |
| "deepnote_cell_type": "markdown" | |
| }, | |
| "source": [ | |
| "- Min and max year looks strange\n", | |
| "\n", | |
| "- Max month is 31, also, mean of day seems strange" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 19, | |
| "metadata": { | |
| "cell_id": "90b44d51edb34c029df85ab411bf0cb2", | |
| "deepnote_cell_type": "code", | |
| "deepnote_to_be_reexecuted": false, | |
| "execution_millis": 20, | |
| "execution_start": 1680448877981, | |
| "source_hash": "af972448" | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/html": [ | |
| "<div><style>\n", | |
| ".dataframe > thead > tr > th,\n", | |
| ".dataframe > tbody > tr > td {\n", | |
| " text-align: right;\n", | |
| "}\n", | |
| "</style>\n", | |
| "<small>shape: (199,)</small><table border=\"1\" class=\"dataframe\"><thead><tr><th>PublishYear</th></tr><tr><td>i32</td></tr></thead><tbody><tr><td>1</td></tr><tr><td>8</td></tr><tr><td>162</td></tr><tr><td>199</td></tr><tr><td>200</td></tr><tr><td>202</td></tr><tr><td>208</td></tr><tr><td>299</td></tr><tr><td>1192</td></tr><tr><td>1376</td></tr><tr><td>1384</td></tr><tr><td>1385</td></tr><tr><td>…</td></tr><tr><td>2202</td></tr><tr><td>2994</td></tr><tr><td>3002</td></tr><tr><td>3006</td></tr><tr><td>4989</td></tr><tr><td>19769</td></tr><tr><td>20015</td></tr><tr><td>20016</td></tr><tr><td>20040</td></tr><tr><td>20067</td></tr><tr><td>20099</td></tr><tr><td>65535</td></tr></tbody></table></div>" | |
| ], | |
| "text/plain": [ | |
| "shape: (199,)\n", | |
| "Series: 'PublishYear' [i32]\n", | |
| "[\n", | |
| "\t1\n", | |
| "\t8\n", | |
| "\t162\n", | |
| "\t199\n", | |
| "\t200\n", | |
| "\t202\n", | |
| "\t208\n", | |
| "\t299\n", | |
| "\t1192\n", | |
| "\t1376\n", | |
| "\t1384\n", | |
| "\t1385\n", | |
| "\t…\n", | |
| "\t2103\n", | |
| "\t2202\n", | |
| "\t2994\n", | |
| "\t3002\n", | |
| "\t3006\n", | |
| "\t4989\n", | |
| "\t19769\n", | |
| "\t20015\n", | |
| "\t20016\n", | |
| "\t20040\n", | |
| "\t20067\n", | |
| "\t20099\n", | |
| "\t65535\n", | |
| "]" | |
| ] | |
| }, | |
| "execution_count": 19, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "books_df['PublishYear'].unique()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "cell_id": "3c5a1196e9b541c796a5b53969417916", | |
| "deepnote_cell_type": "markdown" | |
| }, | |
| "source": [ | |
| "- Year 1, 8, 162, 199, 200, 202, 208, 299, 2030, 2035, ... are wrong\n", | |
| "\n", | |
| "- Year 2022 and 2021 need further inspecting" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 20, | |
| "metadata": { | |
| "cell_id": "01a8cdd1781d469abd5fd03d4be86957", | |
| "deepnote_cell_type": "code", | |
| "deepnote_to_be_reexecuted": false, | |
| "execution_millis": 17, | |
| "execution_start": 1680448882631, | |
| "source_hash": "6f22f7ce" | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/html": [ | |
| "<div><style>\n", | |
| ".dataframe > thead > tr > th,\n", | |
| ".dataframe > tbody > tr > td {\n", | |
| " text-align: right;\n", | |
| "}\n", | |
| "</style>\n", | |
| "<small>shape: (199, 2)</small><table border=\"1\" class=\"dataframe\"><thead><tr><th>PublishYear</th><th>counts</th></tr><tr><td>i32</td><td>u32</td></tr></thead><tbody><tr><td>1376</td><td>1</td></tr><tr><td>1952</td><td>145</td></tr><tr><td>1896</td><td>2</td></tr><tr><td>1920</td><td>145</td></tr><tr><td>20040</td><td>1</td></tr><tr><td>1880</td><td>1</td></tr><tr><td>1912</td><td>17</td></tr><tr><td>1192</td><td>1</td></tr><tr><td>2016</td><td>1069</td></tr><tr><td>1928</td><td>35</td></tr><tr><td>1984</td><td>19013</td></tr><tr><td>1856</td><td>1</td></tr><tr><td>…</td><td>…</td></tr><tr><td>1921</td><td>23</td></tr><tr><td>1833</td><td>1</td></tr><tr><td>1385</td><td>1</td></tr><tr><td>1953</td><td>164</td></tr><tr><td>1897</td><td>5</td></tr><tr><td>1905</td><td>119</td></tr><tr><td>1945</td><td>93</td></tr><tr><td>1753</td><td>2</td></tr><tr><td>1929</td><td>35</td></tr><tr><td>1977</td><td>10494</td></tr><tr><td>1865</td><td>3</td></tr><tr><td>1937</td><td>50</td></tr></tbody></table></div>" | |
| ], | |
| "text/plain": [ | |
| "shape: (199, 2)\n", | |
| "┌─────────────┬────────┐\n", | |
| "│ PublishYear ┆ counts │\n", | |
| "│ --- ┆ --- │\n", | |
| "│ i32 ┆ u32 │\n", | |
| "╞═════════════╪════════╡\n", | |
| "│ 1376 ┆ 1 │\n", | |
| "│ 1952 ┆ 145 │\n", | |
| "│ 1896 ┆ 2 │\n", | |
| "│ 1920 ┆ 145 │\n", | |
| "│ … ┆ … │\n", | |
| "│ 1929 ┆ 35 │\n", | |
| "│ 1977 ┆ 10494 │\n", | |
| "│ 1865 ┆ 3 │\n", | |
| "│ 1937 ┆ 50 │\n", | |
| "└─────────────┴────────┘" | |
| ] | |
| }, | |
| "execution_count": 20, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "books_df['PublishYear'].value_counts()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "cell_id": "50a5770f0aa14fc5bbb7587ac6a878bd", | |
| "deepnote_cell_type": "markdown" | |
| }, | |
| "source": [ | |
| "Let's just take the books from 1700 to 2021 because others seem suspicious" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 21, | |
| "metadata": { | |
| "cell_id": "4656fae624484e64aa7de5470028e920", | |
| "deepnote_cell_type": "code", | |
| "deepnote_to_be_reexecuted": false, | |
| "execution_millis": 1418, | |
| "execution_start": 1680448883693, | |
| "source_hash": "93a5a2cb" | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "books_df = books_df.sort('PublishYear')" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 22, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "low = books_df.filter(books_df['PublishYear'] < 1700).shape[0]\n", | |
| "high = books_df.filter(books_df['PublishYear'] > 2021).shape[0]" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 23, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "books_df = books_df[low:len(books_df)-high]" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 24, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/html": [ | |
| "<div><style>\n", | |
| ".dataframe > thead > tr > th,\n", | |
| ".dataframe > tbody > tr > td {\n", | |
| " text-align: right;\n", | |
| "}\n", | |
| "</style>\n", | |
| "<small>shape: (167, 2)</small><table border=\"1\" class=\"dataframe\"><thead><tr><th>PublishYear</th><th>counts</th></tr><tr><td>i32</td><td>u32</td></tr></thead><tbody><tr><td>1730</td><td>1</td></tr><tr><td>1753</td><td>2</td></tr><tr><td>1824</td><td>1</td></tr><tr><td>1825</td><td>1</td></tr><tr><td>1833</td><td>1</td></tr><tr><td>1835</td><td>2</td></tr><tr><td>1836</td><td>1</td></tr><tr><td>1837</td><td>1</td></tr><tr><td>1838</td><td>1</td></tr><tr><td>1839</td><td>1</td></tr><tr><td>1841</td><td>1</td></tr><tr><td>1846</td><td>1</td></tr><tr><td>…</td><td>…</td></tr><tr><td>2010</td><td>5458</td></tr><tr><td>2011</td><td>3983</td></tr><tr><td>2012</td><td>2883</td></tr><tr><td>2013</td><td>2418</td></tr><tr><td>2014</td><td>2054</td></tr><tr><td>2015</td><td>2135</td></tr><tr><td>2016</td><td>1069</td></tr><tr><td>2017</td><td>787</td></tr><tr><td>2018</td><td>1077</td></tr><tr><td>2019</td><td>631</td></tr><tr><td>2020</td><td>305</td></tr><tr><td>2021</td><td>47</td></tr></tbody></table></div>" | |
| ], | |
| "text/plain": [ | |
| "shape: (167, 2)\n", | |
| "┌─────────────┬────────┐\n", | |
| "│ PublishYear ┆ counts │\n", | |
| "│ --- ┆ --- │\n", | |
| "│ i32 ┆ u32 │\n", | |
| "╞═════════════╪════════╡\n", | |
| "│ 1730 ┆ 1 │\n", | |
| "│ 1753 ┆ 2 │\n", | |
| "│ 1824 ┆ 1 │\n", | |
| "│ 1825 ┆ 1 │\n", | |
| "│ … ┆ … │\n", | |
| "│ 2018 ┆ 1077 │\n", | |
| "│ 2019 ┆ 631 │\n", | |
| "│ 2020 ┆ 305 │\n", | |
| "│ 2021 ┆ 47 │\n", | |
| "└─────────────┴────────┘" | |
| ] | |
| }, | |
| "execution_count": 24, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "books_df['PublishYear'].value_counts()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "cell_id": "daf940038c8d4566bae5134ca3349dcc", | |
| "deepnote_cell_type": "markdown" | |
| }, | |
| "source": [ | |
| "#### Publisher" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 25, | |
| "metadata": { | |
| "cell_id": "86856bb420c94fb4a192ed35bda2be7e", | |
| "deepnote_cell_type": "code", | |
| "deepnote_to_be_reexecuted": false, | |
| "execution_millis": 106, | |
| "execution_start": 1680448885531, | |
| "source_hash": "f16d8c38" | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/html": [ | |
| "<div><style>\n", | |
| ".dataframe > thead > tr > th,\n", | |
| ".dataframe > tbody > tr > td {\n", | |
| " text-align: right;\n", | |
| "}\n", | |
| "</style>\n", | |
| "<small>shape: (5, 21)</small><table border=\"1\" class=\"dataframe\"><thead><tr><th>Id</th><th>Name</th><th>Authors</th><th>ISBN</th><th>Rating</th><th>PublishYear</th><th>PublishMonth</th><th>PublishDay</th><th>Publisher</th><th>RatingDist5</th><th>RatingDist4</th><th>RatingDist3</th><th>RatingDist2</th><th>RatingDist1</th><th>RatingDistTotal</th><th>CountsOfReview</th><th>Language</th><th>pagesNumber</th><th>Description</th><th>Count of text reviews</th><th>PagesNumber</th></tr><tr><td>i64</td><td>str</td><td>str</td><td>str</td><td>f64</td><td>i32</td><td>i8</td><td>i8</td><td>str</td><td>str</td><td>str</td><td>str</td><td>str</td><td>str</td><td>str</td><td>i64</td><td>str</td><td>i64</td><td>str</td><td>i64</td><td>i64</td></tr></thead><tbody><tr><td>3088068</td><td>"Godey's Lady's…</td><td>"Various"</td><td>"1426484372"</td><td>2.0</td><td>1851</td><td>10</td><td>28</td><td>null</td><td>"5:0"</td><td>"4:0"</td><td>"3:0"</td><td>"2:2"</td><td>"1:0"</td><td>"total:2"</td><td>0</td><td>null</td><td>null</td><td>"This is a pre-…</td><td>null</td><td>220</td></tr><tr><td>1424633</td><td>"An Appeal in v…</td><td>"Alfred H. Love…</td><td>"1429753579"</td><td>0.0</td><td>1862</td><td>1</td><td>1</td><td>null</td><td>"5:0"</td><td>"4:0"</td><td>"3:0"</td><td>"2:0"</td><td>"1:0"</td><td>"total:0"</td><td>0</td><td>null</td><td>24</td><td>null</td><td>0</td><td>null</td></tr><tr><td>2619182</td><td>"French for Mas…</td><td>"Jean-Paul Vale…</td><td>"0669200832"</td><td>3.4</td><td>1900</td><td>1</td><td>1</td><td>null</td><td>"5:0"</td><td>"4:4"</td><td>"3:0"</td><td>"2:0"</td><td>"1:1"</td><td>"total:5"</td><td>1</td><td>"eng"</td><td>null</td><td>null</td><td>null</td><td>480</td></tr><tr><td>2802465</td><td>"Foundations of…</td><td>"McDougal Litte…</td><td>"0669403636"</td><td>0.0</td><td>1900</td><td>1</td><td>1</td><td>null</td><td>"5:0"</td><td>"4:0"</td><td>"3:0"</td><td>"2:0"</td><td>"1:0"</td><td>"total:0"</td><td>0</td><td>null</td><td>null</td><td>null</td><td>null</td><td>544</td></tr><tr><td>194155</td><td>"Dime Uno Cuade…</td><td>"Fabián A. Sama…</td><td>"0669433470"</td><td>4.0</td><td>1900</td><td>1</td><td>1</td><td>null</td><td>"5:4"</td><td>"4:0"</td><td>"3:2"</td><td>"2:1"</td><td>"1:0"</td><td>"total:7"</td><td>0</td><td>null</td><td>0</td><td>null</td><td>null</td><td>null</td></tr></tbody></table></div>" | |
| ], | |
| "text/plain": [ | |
| "shape: (5, 21)\n", | |
| "┌─────────┬───────────┬───────────┬───────────┬───┬───────────┬───────────┬────────────┬───────────┐\n", | |
| "│ Id ┆ Name ┆ Authors ┆ ISBN ┆ … ┆ pagesNumb ┆ Descripti ┆ Count of ┆ PagesNumb │\n", | |
| "│ --- ┆ --- ┆ --- ┆ --- ┆ ┆ er ┆ on ┆ text ┆ er │\n", | |
| "│ i64 ┆ str ┆ str ┆ str ┆ ┆ --- ┆ --- ┆ reviews ┆ --- │\n", | |
| "│ ┆ ┆ ┆ ┆ ┆ i64 ┆ str ┆ --- ┆ i64 │\n", | |
| "│ ┆ ┆ ┆ ┆ ┆ ┆ ┆ i64 ┆ │\n", | |
| "╞═════════╪═══════════╪═══════════╪═══════════╪═══╪═══════════╪═══════════╪════════════╪═══════════╡\n", | |
| "│ 3088068 ┆ Godey's ┆ Various ┆ 142648437 ┆ … ┆ null ┆ This is a ┆ null ┆ 220 │\n", | |
| "│ ┆ Lady's ┆ ┆ 2 ┆ ┆ ┆ pre-1923 ┆ ┆ │\n", | |
| "│ ┆ Book: ┆ ┆ ┆ ┆ ┆ historica ┆ ┆ │\n", | |
| "│ ┆ Vol. 42 ┆ ┆ ┆ ┆ ┆ l re… ┆ ┆ │\n", | |
| "│ ┆ Jan… ┆ ┆ ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ 1424633 ┆ An Appeal ┆ Alfred H. ┆ 142975357 ┆ … ┆ 24 ┆ null ┆ 0 ┆ null │\n", | |
| "│ ┆ in vindic ┆ Love ┆ 9 ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ ┆ ation of ┆ ┆ ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ ┆ peac… ┆ ┆ ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ 2619182 ┆ French ┆ Jean-Paul ┆ 066920083 ┆ … ┆ null ┆ null ┆ null ┆ 480 │\n", | |
| "│ ┆ for ┆ Valette ┆ 2 ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ ┆ Mastery 2 ┆ ┆ ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ ┆ - Tous ┆ ┆ ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ ┆ ense… ┆ ┆ ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ 2802465 ┆ Foundatio ┆ McDougal ┆ 066940363 ┆ … ┆ null ┆ null ┆ null ┆ 544 │\n", | |
| "│ ┆ ns of Seq ┆ Littell ┆ 6 ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ ┆ uential ┆ ┆ ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ ┆ Mathem… ┆ ┆ ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ 194155 ┆ Dime Uno ┆ Fabián A. ┆ 066943347 ┆ … ┆ 0 ┆ null ┆ null ┆ null │\n", | |
| "│ ┆ Cuaderno ┆ Samaniego ┆ 0 ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ ┆ De Activi ┆ ┆ ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ ┆ dades ┆ ┆ ┆ ┆ ┆ ┆ ┆ │\n", | |
| "└─────────┴───────────┴───────────┴───────────┴───┴───────────┴───────────┴────────────┴───────────┘" | |
| ] | |
| }, | |
| "execution_count": 25, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "books_df.filter(books_df['Publisher'].is_null()).head()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 26, | |
| "metadata": { | |
| "cell_id": "f8617a26e883447e94025b41fcf23a2c", | |
| "deepnote_cell_type": "code", | |
| "deepnote_to_be_reexecuted": false, | |
| "execution_millis": 299, | |
| "execution_start": 1680448888878, | |
| "source_hash": "ac7f52e4" | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "79419" | |
| ] | |
| }, | |
| "execution_count": 26, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "books_df['Publisher'].n_unique()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "cell_id": "861912e4e4f34cc7af6b316138512e31", | |
| "deepnote_cell_type": "markdown" | |
| }, | |
| "source": [ | |
| "A lot of books. Also books with good ratings, I should not remove them" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 27, | |
| "metadata": { | |
| "cell_id": "88a4dd9713f64627b4e57d909bd4c668", | |
| "deepnote_cell_type": "code", | |
| "deepnote_to_be_reexecuted": false, | |
| "execution_millis": 1986, | |
| "execution_start": 1680448891604, | |
| "source_hash": "8228508c" | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/html": [ | |
| "<div><style>\n", | |
| ".dataframe > thead > tr > th,\n", | |
| ".dataframe > tbody > tr > td {\n", | |
| " text-align: right;\n", | |
| "}\n", | |
| "</style>\n", | |
| "<small>shape: (79419, 2)</small><table border=\"1\" class=\"dataframe\"><thead><tr><th>Publisher</th><th>counts</th></tr><tr><td>str</td><td>u32</td></tr></thead><tbody><tr><td>"Vintage Press"</td><td>1</td></tr><tr><td>"Carraig Books"</td><td>1</td></tr><tr><td>"Grove's Dictio…</td><td>4</td></tr><tr><td>"Éditions La Dé…</td><td>3</td></tr><tr><td>"Chrysalis Chil…</td><td>16</td></tr><tr><td>"Roberta Gregor…</td><td>1</td></tr><tr><td>"Quai Voltaire"</td><td>13</td></tr><tr><td>"World Almanac …</td><td>44</td></tr><tr><td>"Blake Publishi…</td><td>2</td></tr><tr><td>"Egyhazforum"</td><td>1</td></tr><tr><td>"American Trave…</td><td>20</td></tr><tr><td>"American Found…</td><td>2</td></tr><tr><td>…</td><td>…</td></tr><tr><td>"Family Literac…</td><td>2</td></tr><tr><td>"Hmmmm Publish…</td><td>1</td></tr><tr><td>"Hague Academic…</td><td>1</td></tr><tr><td>"Career Discove…</td><td>1</td></tr><tr><td>"ACTA Publicati…</td><td>100</td></tr><tr><td>"Polynesian Pr"</td><td>1</td></tr><tr><td>"Igneus Press"</td><td>1</td></tr><tr><td>"Liberty Bell P…</td><td>1</td></tr><tr><td>"W W Norton & C…</td><td>9</td></tr><tr><td>"Arrow Books Lt…</td><td>11</td></tr><tr><td>"Watermill Pres…</td><td>11</td></tr><tr><td>"Becker Press"</td><td>3</td></tr></tbody></table></div>" | |
| ], | |
| "text/plain": [ | |
| "shape: (79419, 2)\n", | |
| "┌────────────────────────┬────────┐\n", | |
| "│ Publisher ┆ counts │\n", | |
| "│ --- ┆ --- │\n", | |
| "│ str ┆ u32 │\n", | |
| "╞════════════════════════╪════════╡\n", | |
| "│ Vintage Press ┆ 1 │\n", | |
| "│ Carraig Books ┆ 1 │\n", | |
| "│ Grove's Dictionaries ┆ 4 │\n", | |
| "│ Éditions La Découverte ┆ 3 │\n", | |
| "│ … ┆ … │\n", | |
| "│ W W Norton & Co Inc ┆ 9 │\n", | |
| "│ Arrow Books Ltd. ┆ 11 │\n", | |
| "│ Watermill Press ┆ 11 │\n", | |
| "│ Becker Press ┆ 3 │\n", | |
| "└────────────────────────┴────────┘" | |
| ] | |
| }, | |
| "execution_count": 27, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "# Which publisher issued the biggest variety of books\n", | |
| "books_df['Publisher'].value_counts()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "cell_id": "1b6e1a98717e49d4b806d77da06620f6", | |
| "deepnote_cell_type": "markdown" | |
| }, | |
| "source": [ | |
| "- Missing value: Not Avail, Unknown, Not Specified, Not Applicable, ..." | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "cell_id": "c96cf370afcd488cac3c7b196773eaf1", | |
| "deepnote_cell_type": "markdown" | |
| }, | |
| "source": [ | |
| "#### RatingDist (1, 2, 3, 4, 5, total)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 28, | |
| "metadata": { | |
| "cell_id": "f8d53fa846bc4389b41bd0119951e680", | |
| "deepnote_cell_type": "code", | |
| "deepnote_to_be_reexecuted": false, | |
| "execution_millis": 42, | |
| "execution_start": 1680448905331, | |
| "source_hash": "28a534b4" | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/html": [ | |
| "<div><style>\n", | |
| ".dataframe > thead > tr > th,\n", | |
| ".dataframe > tbody > tr > td {\n", | |
| " text-align: right;\n", | |
| "}\n", | |
| "</style>\n", | |
| "<small>shape: (3, 21)</small><table border=\"1\" class=\"dataframe\"><thead><tr><th>Id</th><th>Name</th><th>Authors</th><th>ISBN</th><th>Rating</th><th>PublishYear</th><th>PublishMonth</th><th>PublishDay</th><th>Publisher</th><th>RatingDist5</th><th>RatingDist4</th><th>RatingDist3</th><th>RatingDist2</th><th>RatingDist1</th><th>RatingDistTotal</th><th>CountsOfReview</th><th>Language</th><th>pagesNumber</th><th>Description</th><th>Count of text reviews</th><th>PagesNumber</th></tr><tr><td>i64</td><td>str</td><td>str</td><td>str</td><td>f64</td><td>i32</td><td>i8</td><td>i8</td><td>str</td><td>str</td><td>str</td><td>str</td><td>str</td><td>str</td><td>str</td><td>i64</td><td>str</td><td>i64</td><td>str</td><td>i64</td><td>i64</td></tr></thead><tbody><tr><td>3098402</td><td>"Three Distinct…</td><td>"Samuel Pritcha…</td><td>"1419163108"</td><td>0.0</td><td>1730</td><td>12</td><td>1</td><td>"Kessinger Publ…</td><td>"5:0"</td><td>"4:0"</td><td>"3:0"</td><td>"2:0"</td><td>"1:0"</td><td>"total:0"</td><td>0</td><td>null</td><td>null</td><td>null</td><td>null</td><td>80</td></tr><tr><td>2448024</td><td>"Discovering Ge…</td><td>"Michael Serra"</td><td>"1559532009"</td><td>3.67</td><td>1753</td><td>1</td><td>1</td><td>"Kendall/Hunt P…</td><td>"5:1"</td><td>"4:1"</td><td>"3:0"</td><td>"2:1"</td><td>"1:0"</td><td>"total:3"</td><td>1</td><td>null</td><td>null</td><td>null</td><td>null</td><td>834</td></tr><tr><td>4265642</td><td>"Self Esteem In…</td><td>"Lila Swell"</td><td>"0840360134"</td><td>0.0</td><td>1753</td><td>1</td><td>1</td><td>"Kendall/Hunt P…</td><td>"5:0"</td><td>"4:0"</td><td>"3:0"</td><td>"2:0"</td><td>"1:0"</td><td>"total:0"</td><td>0</td><td>null</td><td>null</td><td>null</td><td>null</td><td>170</td></tr></tbody></table></div>" | |
| ], | |
| "text/plain": [ | |
| "shape: (3, 21)\n", | |
| "┌─────────┬───────────┬───────────┬───────────┬───┬───────────┬───────────┬────────────┬───────────┐\n", | |
| "│ Id ┆ Name ┆ Authors ┆ ISBN ┆ … ┆ pagesNumb ┆ Descripti ┆ Count of ┆ PagesNumb │\n", | |
| "│ --- ┆ --- ┆ --- ┆ --- ┆ ┆ er ┆ on ┆ text ┆ er │\n", | |
| "│ i64 ┆ str ┆ str ┆ str ┆ ┆ --- ┆ --- ┆ reviews ┆ --- │\n", | |
| "│ ┆ ┆ ┆ ┆ ┆ i64 ┆ str ┆ --- ┆ i64 │\n", | |
| "│ ┆ ┆ ┆ ┆ ┆ ┆ ┆ i64 ┆ │\n", | |
| "╞═════════╪═══════════╪═══════════╪═══════════╪═══╪═══════════╪═══════════╪════════════╪═══════════╡\n", | |
| "│ 3098402 ┆ Three ┆ Samuel ┆ 141916310 ┆ … ┆ null ┆ null ┆ null ┆ 80 │\n", | |
| "│ ┆ Distinct ┆ Pritchard ┆ 8 ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ ┆ Knocks On ┆ ┆ ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ ┆ the Doo… ┆ ┆ ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ 2448024 ┆ Discoveri ┆ Michael ┆ 155953200 ┆ … ┆ null ┆ null ┆ null ┆ 834 │\n", | |
| "│ ┆ ng ┆ Serra ┆ 9 ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ ┆ Geometry: ┆ ┆ ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ ┆ An ┆ ┆ ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ ┆ Investi… ┆ ┆ ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ 4265642 ┆ Self ┆ Lila ┆ 084036013 ┆ … ┆ null ┆ null ┆ null ┆ 170 │\n", | |
| "│ ┆ Esteem In ┆ Swell ┆ 4 ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ ┆ The Class ┆ ┆ ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ ┆ room: Te… ┆ ┆ ┆ ┆ ┆ ┆ ┆ │\n", | |
| "└─────────┴───────────┴───────────┴───────────┴───┴───────────┴───────────┴────────────┴───────────┘" | |
| ] | |
| }, | |
| "execution_count": 28, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "books_df.head(3)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "cell_id": "fb9e9baba97241888f1fae7bd16c324c", | |
| "deepnote_cell_type": "markdown" | |
| }, | |
| "source": [ | |
| "Get rid of redundant parts like '5:', '4:', 'total:', ..." | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 29, | |
| "metadata": { | |
| "cell_id": "572bc8c819d840328fdb053e749dcef9", | |
| "deepnote_cell_type": "code", | |
| "deepnote_to_be_reexecuted": false, | |
| "execution_millis": 6303, | |
| "execution_start": 1680448909193, | |
| "source_hash": "c0cbe8a4" | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/html": [ | |
| "<div><style>\n", | |
| ".dataframe > thead > tr > th,\n", | |
| ".dataframe > tbody > tr > td {\n", | |
| " text-align: right;\n", | |
| "}\n", | |
| "</style>\n", | |
| "<small>shape: (7, 7)</small><table border=\"1\" class=\"dataframe\"><thead><tr><th>describe</th><th>RatingDistTotal</th><th>RatingDist1</th><th>RatingDist2</th><th>RatingDist3</th><th>RatingDist4</th><th>RatingDist5</th></tr><tr><td>str</td><td>f64</td><td>f64</td><td>f64</td><td>f64</td><td>f64</td><td>f64</td></tr></thead><tbody><tr><td>"count"</td><td>1.850149e6</td><td>1.850149e6</td><td>1.850149e6</td><td>1.850149e6</td><td>1.850149e6</td><td>1.850149e6</td></tr><tr><td>"null_count"</td><td>0.0</td><td>0.0</td><td>0.0</td><td>0.0</td><td>0.0</td><td>0.0</td></tr><tr><td>"mean"</td><td>4079.614346</td><td>94.402791</td><td>207.246389</td><td>754.638235</td><td>1305.846063</td><td>1717.480868</td></tr><tr><td>"std"</td><td>71662.082866</td><td>2227.034126</td><td>3567.509688</td><td>11238.758305</td><td>20767.199856</td><td>37288.463405</td></tr><tr><td>"min"</td><td>-2.0</td><td>0.0</td><td>0.0</td><td>0.0</td><td>0.0</td><td>-2.0</td></tr><tr><td>"max"</td><td>7.094687e6</td><td>550388.0</td><td>544093.0</td><td>1.013165e6</td><td>1.912159e6</td><td>4.608992e6</td></tr><tr><td>"median"</td><td>5.0</td><td>0.0</td><td>0.0</td><td>1.0</td><td>2.0</td><td>1.0</td></tr></tbody></table></div>" | |
| ], | |
| "text/plain": [ | |
| "shape: (7, 7)\n", | |
| "┌────────────┬────────────┬─────────────┬─────────────┬──────────────┬──────────────┬──────────────┐\n", | |
| "│ describe ┆ RatingDist ┆ RatingDist1 ┆ RatingDist2 ┆ RatingDist3 ┆ RatingDist4 ┆ RatingDist5 │\n", | |
| "│ --- ┆ Total ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- │\n", | |
| "│ str ┆ --- ┆ f64 ┆ f64 ┆ f64 ┆ f64 ┆ f64 │\n", | |
| "│ ┆ f64 ┆ ┆ ┆ ┆ ┆ │\n", | |
| "╞════════════╪════════════╪═════════════╪═════════════╪══════════════╪══════════════╪══════════════╡\n", | |
| "│ count ┆ 1.850149e6 ┆ 1.850149e6 ┆ 1.850149e6 ┆ 1.850149e6 ┆ 1.850149e6 ┆ 1.850149e6 │\n", | |
| "│ null_count ┆ 0.0 ┆ 0.0 ┆ 0.0 ┆ 0.0 ┆ 0.0 ┆ 0.0 │\n", | |
| "│ mean ┆ 4079.61434 ┆ 94.402791 ┆ 207.246389 ┆ 754.638235 ┆ 1305.846063 ┆ 1717.480868 │\n", | |
| "│ ┆ 6 ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ std ┆ 71662.0828 ┆ 2227.034126 ┆ 3567.509688 ┆ 11238.758305 ┆ 20767.199856 ┆ 37288.463405 │\n", | |
| "│ ┆ 66 ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ min ┆ -2.0 ┆ 0.0 ┆ 0.0 ┆ 0.0 ┆ 0.0 ┆ -2.0 │\n", | |
| "│ max ┆ 7.094687e6 ┆ 550388.0 ┆ 544093.0 ┆ 1.013165e6 ┆ 1.912159e6 ┆ 4.608992e6 │\n", | |
| "│ median ┆ 5.0 ┆ 0.0 ┆ 0.0 ┆ 1.0 ┆ 2.0 ┆ 1.0 │\n", | |
| "└────────────┴────────────┴─────────────┴─────────────┴──────────────┴──────────────┴──────────────┘" | |
| ] | |
| }, | |
| "execution_count": 29, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "books_df = books_df.with_columns(books_df['RatingDist1'].apply(lambda rating: rating.split(':')[1]).cast(pl.Int32))\n", | |
| "books_df = books_df.with_columns(books_df['RatingDist2'].apply(lambda rating: rating.split(':')[1]).cast(pl.Int32))\n", | |
| "books_df = books_df.with_columns(books_df['RatingDist3'].apply(lambda rating: rating.split(':')[1]).cast(pl.Int32))\n", | |
| "books_df = books_df.with_columns(books_df['RatingDist4'].apply(lambda rating: rating.split(':')[1]).cast(pl.Int32))\n", | |
| "books_df = books_df.with_columns(books_df['RatingDist5'].apply(lambda rating: rating.split(':')[1]).cast(pl.Int32))\n", | |
| "books_df = books_df.with_columns(books_df['RatingDistTotal'].apply(lambda rating: rating.split(':')[1]).cast(pl.Int32))\n", | |
| "books_df[['RatingDistTotal', 'RatingDist1', 'RatingDist2', 'RatingDist3', 'RatingDist4', 'RatingDist5']].describe()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "cell_id": "6f48d4b72001419d8d191b060c593b3a", | |
| "deepnote_cell_type": "markdown" | |
| }, | |
| "source": [ | |
| "Looks better" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "cell_id": "95fcce06d4434b6a98c7012c1ce88a65", | |
| "deepnote_cell_type": "markdown" | |
| }, | |
| "source": [ | |
| "#### Counts of reviews and Count of text reviews" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 30, | |
| "metadata": { | |
| "cell_id": "210e53056b1a4c00bab107efc4c3012b", | |
| "deepnote_cell_type": "code", | |
| "deepnote_to_be_reexecuted": false, | |
| "execution_millis": 52, | |
| "execution_start": 1680448923250, | |
| "source_hash": "4a62a667" | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/html": [ | |
| "<div><style>\n", | |
| ".dataframe > thead > tr > th,\n", | |
| ".dataframe > tbody > tr > td {\n", | |
| " text-align: right;\n", | |
| "}\n", | |
| "</style>\n", | |
| "<small>shape: (6, 2)</small><table border=\"1\" class=\"dataframe\"><thead><tr><th>statistic</th><th>value</th></tr><tr><td>str</td><td>f64</td></tr></thead><tbody><tr><td>"min"</td><td>0.0</td></tr><tr><td>"max"</td><td>154447.0</td></tr><tr><td>"null_count"</td><td>0.0</td></tr><tr><td>"mean"</td><td>11.580386</td></tr><tr><td>"std"</td><td>295.280151</td></tr><tr><td>"count"</td><td>1.850149e6</td></tr></tbody></table></div>" | |
| ], | |
| "text/plain": [ | |
| "shape: (6, 2)\n", | |
| "┌────────────┬────────────┐\n", | |
| "│ statistic ┆ value │\n", | |
| "│ --- ┆ --- │\n", | |
| "│ str ┆ f64 │\n", | |
| "╞════════════╪════════════╡\n", | |
| "│ min ┆ 0.0 │\n", | |
| "│ max ┆ 154447.0 │\n", | |
| "│ null_count ┆ 0.0 │\n", | |
| "│ mean ┆ 11.580386 │\n", | |
| "│ std ┆ 295.280151 │\n", | |
| "│ count ┆ 1.850149e6 │\n", | |
| "└────────────┴────────────┘" | |
| ] | |
| }, | |
| "execution_count": 30, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "books_df['CountsOfReview'].describe()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 31, | |
| "metadata": { | |
| "cell_id": "281e0de83728468f9cd46daffe29de2e", | |
| "deepnote_cell_type": "code", | |
| "deepnote_to_be_reexecuted": false, | |
| "execution_millis": 60, | |
| "execution_start": 1680448925484, | |
| "source_hash": "3c49e080" | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/html": [ | |
| "<div><style>\n", | |
| ".dataframe > thead > tr > th,\n", | |
| ".dataframe > tbody > tr > td {\n", | |
| " text-align: right;\n", | |
| "}\n", | |
| "</style>\n", | |
| "<small>shape: (2832, 2)</small><table border=\"1\" class=\"dataframe\"><thead><tr><th>CountsOfReview</th><th>counts</th></tr><tr><td>i64</td><td>u32</td></tr></thead><tbody><tr><td>1552</td><td>3</td></tr><tr><td>40</td><td>1185</td></tr><tr><td>240</td><td>48</td></tr><tr><td>2504</td><td>1</td></tr><tr><td>640</td><td>9</td></tr><tr><td>2632</td><td>1</td></tr><tr><td>1024</td><td>4</td></tr><tr><td>2744</td><td>1</td></tr><tr><td>2088</td><td>1</td></tr><tr><td>1376</td><td>2</td></tr><tr><td>2272</td><td>1</td></tr><tr><td>1184</td><td>1</td></tr><tr><td>…</td><td>…</td></tr><tr><td>6161</td><td>1</td></tr><tr><td>4153</td><td>1</td></tr><tr><td>1313</td><td>1</td></tr><tr><td>5617</td><td>1</td></tr><tr><td>1185</td><td>2</td></tr><tr><td>609</td><td>12</td></tr><tr><td>217</td><td>53</td></tr><tr><td>14801</td><td>1</td></tr><tr><td>1537</td><td>1</td></tr><tr><td>1769</td><td>1</td></tr><tr><td>1169</td><td>1</td></tr><tr><td>537</td><td>6</td></tr></tbody></table></div>" | |
| ], | |
| "text/plain": [ | |
| "shape: (2832, 2)\n", | |
| "┌────────────────┬────────┐\n", | |
| "│ CountsOfReview ┆ counts │\n", | |
| "│ --- ┆ --- │\n", | |
| "│ i64 ┆ u32 │\n", | |
| "╞════════════════╪════════╡\n", | |
| "│ 1552 ┆ 3 │\n", | |
| "│ 40 ┆ 1185 │\n", | |
| "│ 240 ┆ 48 │\n", | |
| "│ 2504 ┆ 1 │\n", | |
| "│ … ┆ … │\n", | |
| "│ 1537 ┆ 1 │\n", | |
| "│ 1769 ┆ 1 │\n", | |
| "│ 1169 ┆ 1 │\n", | |
| "│ 537 ┆ 6 │\n", | |
| "└────────────────┴────────┘" | |
| ] | |
| }, | |
| "execution_count": 31, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "books_df['CountsOfReview'].value_counts()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 32, | |
| "metadata": { | |
| "cell_id": "5dc816cf35a44a0680970b6b020a90ed", | |
| "deepnote_cell_type": "code", | |
| "deepnote_to_be_reexecuted": false, | |
| "execution_millis": 712, | |
| "execution_start": 1680448928065, | |
| "source_hash": "6f175784" | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/html": [ | |
| "<div><style>\n", | |
| ".dataframe > thead > tr > th,\n", | |
| ".dataframe > tbody > tr > td {\n", | |
| " text-align: right;\n", | |
| "}\n", | |
| "</style>\n", | |
| "<small>shape: (6, 2)</small><table border=\"1\" class=\"dataframe\"><thead><tr><th>statistic</th><th>value</th></tr><tr><td>str</td><td>f64</td></tr></thead><tbody><tr><td>"min"</td><td>0.0</td></tr><tr><td>"max"</td><td>43652.0</td></tr><tr><td>"null_count"</td><td>1.440462e6</td></tr><tr><td>"mean"</td><td>7.172849</td></tr><tr><td>"std"</td><td>124.840352</td></tr><tr><td>"count"</td><td>1.850149e6</td></tr></tbody></table></div>" | |
| ], | |
| "text/plain": [ | |
| "shape: (6, 2)\n", | |
| "┌────────────┬────────────┐\n", | |
| "│ statistic ┆ value │\n", | |
| "│ --- ┆ --- │\n", | |
| "│ str ┆ f64 │\n", | |
| "╞════════════╪════════════╡\n", | |
| "│ min ┆ 0.0 │\n", | |
| "│ max ┆ 43652.0 │\n", | |
| "│ null_count ┆ 1.440462e6 │\n", | |
| "│ mean ┆ 7.172849 │\n", | |
| "│ std ┆ 124.840352 │\n", | |
| "│ count ┆ 1.850149e6 │\n", | |
| "└────────────┴────────────┘" | |
| ] | |
| }, | |
| "execution_count": 32, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "books_df = books_df.rename({'Count of text reviews': 'CountOfTextReviews'})\n", | |
| "books_df['CountOfTextReviews'].describe()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "cell_id": "3c46c72780ac4e59a192620c78303ae7", | |
| "deepnote_cell_type": "markdown" | |
| }, | |
| "source": [ | |
| "#### Language" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 33, | |
| "metadata": { | |
| "cell_id": "45ecfd803d694155a930b42dbc2ee6e4", | |
| "deepnote_cell_type": "code", | |
| "deepnote_to_be_reexecuted": false, | |
| "execution_millis": 3, | |
| "execution_start": 1680448931445, | |
| "source_hash": "d9c9529" | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/html": [ | |
| "<div><style>\n", | |
| ".dataframe > thead > tr > th,\n", | |
| ".dataframe > tbody > tr > td {\n", | |
| " text-align: right;\n", | |
| "}\n", | |
| "</style>\n", | |
| "<small>shape: (125,)</small><table border=\"1\" class=\"dataframe\"><thead><tr><th>Language</th></tr><tr><td>str</td></tr></thead><tbody><tr><td>"yid"</td></tr><tr><td>"tgl"</td></tr><tr><td>"nl"</td></tr><tr><td>"elx"</td></tr><tr><td>"grc"</td></tr><tr><td>"aze"</td></tr><tr><td>"epo"</td></tr><tr><td>"zul"</td></tr><tr><td>"ada"</td></tr><tr><td>"afr"</td></tr><tr><td>"mul"</td></tr><tr><td>"tli"</td></tr><tr><td>…</td></tr><tr><td>"pol"</td></tr><tr><td>"vie"</td></tr><tr><td>"ssw"</td></tr><tr><td>"mar"</td></tr><tr><td>"srp"</td></tr><tr><td>"ger"</td></tr><tr><td>"nub"</td></tr><tr><td>"mri"</td></tr><tr><td>"hmn"</td></tr><tr><td>"ita"</td></tr><tr><td>"tha"</td></tr><tr><td>"tah"</td></tr></tbody></table></div>" | |
| ], | |
| "text/plain": [ | |
| "shape: (125,)\n", | |
| "Series: 'Language' [str]\n", | |
| "[\n", | |
| "\t\"yid\"\n", | |
| "\t\"tgl\"\n", | |
| "\t\"nl\"\n", | |
| "\t\"elx\"\n", | |
| "\t\"grc\"\n", | |
| "\t\"aze\"\n", | |
| "\t\"epo\"\n", | |
| "\t\"zul\"\n", | |
| "\t\"ada\"\n", | |
| "\t\"afr\"\n", | |
| "\t\"mul\"\n", | |
| "\t\"tli\"\n", | |
| "\t…\n", | |
| "\t\"myv\"\n", | |
| "\t\"pol\"\n", | |
| "\t\"vie\"\n", | |
| "\t\"ssw\"\n", | |
| "\t\"mar\"\n", | |
| "\t\"srp\"\n", | |
| "\t\"ger\"\n", | |
| "\t\"nub\"\n", | |
| "\t\"mri\"\n", | |
| "\t\"hmn\"\n", | |
| "\t\"ita\"\n", | |
| "\t\"tha\"\n", | |
| "\t\"tah\"\n", | |
| "]" | |
| ] | |
| }, | |
| "execution_count": 33, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "books_df['Language'].unique()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "cell_id": "cf04d037542240c19c7e1b9e8d695927", | |
| "deepnote_cell_type": "markdown" | |
| }, | |
| "source": [ | |
| "- These eng, en-US, en-CA, en-GB are all English\n", | |
| "\n", | |
| "- Replace 'nl' with 'nld' (Dutch language)\n", | |
| "\n", | |
| "- '--' and 'nan' needs investigating" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 34, | |
| "metadata": { | |
| "cell_id": "bfa4360248bb437897b5a468d982d01d", | |
| "deepnote_cell_type": "code", | |
| "deepnote_to_be_reexecuted": false, | |
| "execution_millis": 1171, | |
| "execution_start": 1680448934946, | |
| "source_hash": "2dedbeed" | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "books_df = books_df.with_columns(books_df['Language'].str.replace('en-US', 'eng')\n", | |
| " .str.replace('en-GB', 'eng')\n", | |
| " .str.replace('en-CA', 'eng')\n", | |
| " .str.replace('nl', 'nld')\n", | |
| " )" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 35, | |
| "metadata": { | |
| "cell_id": "9beaaf37752c466fb5b43c0f5952d28a", | |
| "deepnote_cell_type": "code", | |
| "deepnote_to_be_reexecuted": false, | |
| "execution_millis": 191, | |
| "execution_start": 1680448936976, | |
| "source_hash": "8033d72a" | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/html": [ | |
| "<div><style>\n", | |
| ".dataframe > thead > tr > th,\n", | |
| ".dataframe > tbody > tr > td {\n", | |
| " text-align: right;\n", | |
| "}\n", | |
| "</style>\n", | |
| "<small>shape: (13, 22)</small><table border=\"1\" class=\"dataframe\"><thead><tr><th>row_nr</th><th>Id</th><th>Name</th><th>Authors</th><th>ISBN</th><th>Rating</th><th>PublishYear</th><th>PublishMonth</th><th>PublishDay</th><th>Publisher</th><th>RatingDist5</th><th>RatingDist4</th><th>RatingDist3</th><th>RatingDist2</th><th>RatingDist1</th><th>RatingDistTotal</th><th>CountsOfReview</th><th>Language</th><th>pagesNumber</th><th>Description</th><th>CountOfTextReviews</th><th>PagesNumber</th></tr><tr><td>u32</td><td>i64</td><td>str</td><td>str</td><td>str</td><td>f64</td><td>i32</td><td>i8</td><td>i8</td><td>str</td><td>i32</td><td>i32</td><td>i32</td><td>i32</td><td>i32</td><td>i32</td><td>i64</td><td>str</td><td>i64</td><td>str</td><td>i64</td><td>i64</td></tr></thead><tbody><tr><td>76743</td><td>2130696</td><td>"Montes de Oca"</td><td>"Benito Pérez G…</td><td>"8420650285"</td><td>3.48</td><td>1978</td><td>6</td><td>30</td><td>"Alianza"</td><td>2</td><td>14</td><td>9</td><td>4</td><td>0</td><td>29</td><td>1</td><td>"--"</td><td>null</td><td>"El gran friso …</td><td>null</td><td>164</td></tr><tr><td>87395</td><td>2053807</td><td>"Aita Tettauen"</td><td>"Benito Pérez G…</td><td>"8420650366"</td><td>3.75</td><td>1979</td><td>6</td><td>30</td><td>"Alianza"</td><td>6</td><td>12</td><td>8</td><td>1</td><td>1</td><td>28</td><td>1</td><td>"--"</td><td>null</td><td>"El gran friso …</td><td>null</td><td>208</td></tr><tr><td>87554</td><td>2130683</td><td>"Carlos VI en l…</td><td>"Benito Pérez G…</td><td>"8420650374"</td><td>3.89</td><td>1979</td><td>6</td><td>30</td><td>"Alianza : Hern…</td><td>6</td><td>6</td><td>4</td><td>2</td><td>0</td><td>18</td><td>1</td><td>"--"</td><td>null</td><td>null</td><td>null</td><td>187</td></tr><tr><td>140767</td><td>2098073</td><td>"The Persona in…</td><td>"Martin M. Wink…</td><td>"3487074370"</td><td>4.0</td><td>1983</td><td>1</td><td>1</td><td>"Olms"</td><td>0</td><td>1</td><td>0</td><td>0</td><td>0</td><td>1</td><td>0</td><td>"--"</td><td>null</td><td>null</td><td>null</td><td>248</td></tr><tr><td>266642</td><td>211273</td><td>"The Dinosaur H…</td><td>"Robert T. Bakk…</td><td>"0140100555"</td><td>4.19</td><td>1988</td><td>1</td><td>1</td><td>"Zebra"</td><td>932</td><td>710</td><td>317</td><td>75</td><td>23</td><td>2057</td><td>2</td><td>"--"</td><td>480</td><td>null</td><td>null</td><td>null</td></tr><tr><td>605100</td><td>2383967</td><td>"Fama o bicikli…</td><td>"Svetislav Basa…</td><td>"8681283715"</td><td>4.04</td><td>1996</td><td>1</td><td>1</td><td>"Dereta"</td><td>239</td><td>219</td><td>114</td><td>33</td><td>11</td><td>616</td><td>8</td><td>"--"</td><td>null</td><td>""След като изл…</td><td>null</td><td>284</td></tr><tr><td>936683</td><td>4105709</td><td>"Woodland Anima…</td><td>"Patricia Walsh…</td><td>"1575723522"</td><td>4.25</td><td>2000</td><td>11</td><td>22</td><td>"Heinemann Educ…</td><td>2</td><td>1</td><td>1</td><td>0</td><td>0</td><td>4</td><td>1</td><td>"--"</td><td>null</td><td>"Aspiring artis…</td><td>null</td><td>32</td></tr><tr><td>1039528</td><td>806815</td><td>"Did You Say Tw…</td><td>"Maureen Child"</td><td>"0373764081"</td><td>3.35</td><td>2001</td><td>23</td><td>11</td><td>"Silhouette Des…</td><td>16</td><td>19</td><td>32</td><td>15</td><td>3</td><td>85</td><td>7</td><td>"--"</td><td>192</td><td>"Top-secret mil…</td><td>7</td><td>null</td></tr><tr><td>1245235</td><td>3354455</td><td>"Marcel Van Eed…</td><td>"Institut für m…</td><td>"3936711097"</td><td>4.5</td><td>2003</td><td>7</td><td>4</td><td>"Verlag für mod…</td><td>1</td><td>1</td><td>0</td><td>0</td><td>0</td><td>2</td><td>0</td><td>"--"</td><td>null</td><td>"Niederländisch…</td><td>null</td><td>224</td></tr><tr><td>1442947</td><td>4395822</td><td>"Memories d'una…</td><td>"Concha López N…</td><td>"842076227X"</td><td>4.14</td><td>2005</td><td>6</td><td>30</td><td>"Grupo Anaya Co…</td><td>36</td><td>29</td><td>19</td><td>1</td><td>1</td><td>86</td><td>0</td><td>"--"</td><td>null</td><td>null</td><td>null</td><td>96</td></tr><tr><td>1696459</td><td>4666323</td><td>"Der Mann unter…</td><td>"Marie Hermanso…</td><td>"3518458752"</td><td>3.42</td><td>2007</td><td>5</td><td>28</td><td>"Suhrkamp Verla…</td><td>60</td><td>136</td><td>136</td><td>62</td><td>11</td><td>405</td><td>1</td><td>"--"</td><td>null</td><td>"Fredrik kann s…</td><td>null</td><td>269</td></tr><tr><td>1778888</td><td>4430136</td><td>"Alma Rebelde: …</td><td>"Alma Del Rio"</td><td>"1434362388"</td><td>0.0</td><td>2008</td><td>3</td><td>2</td><td>"Authorhouse"</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>"--"</td><td>null</td><td>null</td><td>null</td><td>84</td></tr><tr><td>1831058</td><td>229808</td><td>"Inkosana Encin…</td><td>"Antoine de Sai…</td><td>"191985584X"</td><td>4.31</td><td>2010</td><td>1</td><td>1</td><td>"Real African P…</td><td>703751</td><td>325589</td><td>157898</td><td>45974</td><td>22243</td><td>1255455</td><td>0</td><td>"--"</td><td>90</td><td>null</td><td>null</td><td>null</td></tr></tbody></table></div>" | |
| ], | |
| "text/plain": [ | |
| "shape: (13, 22)\n", | |
| "┌─────────┬─────────┬────────────┬────────────┬───┬───────────┬───────────┬────────────┬───────────┐\n", | |
| "│ row_nr ┆ Id ┆ Name ┆ Authors ┆ … ┆ pagesNumb ┆ Descripti ┆ CountOfTex ┆ PagesNumb │\n", | |
| "│ --- ┆ --- ┆ --- ┆ --- ┆ ┆ er ┆ on ┆ tReviews ┆ er │\n", | |
| "│ u32 ┆ i64 ┆ str ┆ str ┆ ┆ --- ┆ --- ┆ --- ┆ --- │\n", | |
| "│ ┆ ┆ ┆ ┆ ┆ i64 ┆ str ┆ i64 ┆ i64 │\n", | |
| "╞═════════╪═════════╪════════════╪════════════╪═══╪═══════════╪═══════════╪════════════╪═══════════╡\n", | |
| "│ 76743 ┆ 2130696 ┆ Montes de ┆ Benito ┆ … ┆ null ┆ El gran ┆ null ┆ 164 │\n", | |
| "│ ┆ ┆ Oca ┆ Pérez ┆ ┆ ┆ friso ┆ ┆ │\n", | |
| "│ ┆ ┆ ┆ Galdós ┆ ┆ ┆ narrativo ┆ ┆ │\n", | |
| "│ ┆ ┆ ┆ ┆ ┆ ┆ de los E… ┆ ┆ │\n", | |
| "│ 87395 ┆ 2053807 ┆ Aita ┆ Benito ┆ … ┆ null ┆ El gran ┆ null ┆ 208 │\n", | |
| "│ ┆ ┆ Tettauen ┆ Pérez ┆ ┆ ┆ friso ┆ ┆ │\n", | |
| "│ ┆ ┆ ┆ Galdós ┆ ┆ ┆ narrativo ┆ ┆ │\n", | |
| "│ ┆ ┆ ┆ ┆ ┆ ┆ de los E… ┆ ┆ │\n", | |
| "│ 87554 ┆ 2130683 ┆ Carlos VI ┆ Benito ┆ … ┆ null ┆ null ┆ null ┆ 187 │\n", | |
| "│ ┆ ┆ en la ┆ Pérez ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ ┆ ┆ Rápita ┆ Galdós ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ 140767 ┆ 2098073 ┆ The ┆ Martin M. ┆ … ┆ null ┆ null ┆ null ┆ 248 │\n", | |
| "│ ┆ ┆ Persona in ┆ Winkler ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ ┆ ┆ Three ┆ ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ ┆ ┆ Satires of ┆ ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ ┆ ┆ … ┆ ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … │\n", | |
| "│ 1442947 ┆ 4395822 ┆ Memories ┆ Concha ┆ … ┆ null ┆ null ┆ null ┆ 96 │\n", | |
| "│ ┆ ┆ d'una ┆ López ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ ┆ ┆ gallina ┆ Narváez ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ 1696459 ┆ 4666323 ┆ Der Mann ┆ Marie ┆ … ┆ null ┆ Fredrik ┆ null ┆ 269 │\n", | |
| "│ ┆ ┆ unter der ┆ Hermanson ┆ ┆ ┆ kann sich ┆ ┆ │\n", | |
| "│ ┆ ┆ Treppe ┆ ┆ ┆ ┆ glücklich ┆ ┆ │\n", | |
| "│ ┆ ┆ ┆ ┆ ┆ ┆ schä… ┆ ┆ │\n", | |
| "│ 1778888 ┆ 4430136 ┆ Alma ┆ Alma Del ┆ … ┆ null ┆ null ┆ null ┆ 84 │\n", | |
| "│ ┆ ┆ Rebelde: ┆ Rio ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ ┆ ┆ Versos de ┆ ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ ┆ ┆ Amor ┆ ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ 1831058 ┆ 229808 ┆ Inkosana ┆ Antoine de ┆ … ┆ 90 ┆ null ┆ null ┆ null │\n", | |
| "│ ┆ ┆ Encini ┆ Saint-Exup ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ ┆ ┆ ┆ éry ┆ ┆ ┆ ┆ ┆ │\n", | |
| "└─────────┴─────────┴────────────┴────────────┴───┴───────────┴───────────┴────────────┴───────────┘" | |
| ] | |
| }, | |
| "execution_count": 35, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "books_df.with_row_count().filter(books_df['Language'] == '--')" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 36, | |
| "metadata": { | |
| "cell_id": "56e847ce0796482aa22babd64641e2a1", | |
| "deepnote_cell_type": "code", | |
| "deepnote_to_be_reexecuted": false, | |
| "execution_millis": 488, | |
| "execution_start": 1680448938064, | |
| "source_hash": "54c5d3a" | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "books_df[[140767, 266642, 936683, 1039528, 1778888], 'Language'] = 'eng'\n", | |
| "books_df[1831058, 'Language'] = 'null'\n", | |
| "books_df[[76743, 87395, 87554], 'Language'] = 'spa'\n", | |
| "books_df[605100, 'Language'] = 'srp'\n", | |
| "books_df[1245235, 'Language'] = 'ger'\n", | |
| "books_df[1442947, 'Language'] = 'cat'\n", | |
| "books_df[1696459, 'Language'] = 'swe'" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 37, | |
| "metadata": { | |
| "cell_id": "7b6a3f500fa14ab3bee326a714e05cbd", | |
| "deepnote_cell_type": "code", | |
| "deepnote_to_be_reexecuted": false, | |
| "execution_millis": 7, | |
| "execution_start": 1680448939635, | |
| "source_hash": "7b518786" | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/html": [ | |
| "<div><style>\n", | |
| ".dataframe > thead > tr > th,\n", | |
| ".dataframe > tbody > tr > td {\n", | |
| " text-align: right;\n", | |
| "}\n", | |
| "</style>\n", | |
| "<small>shape: (122, 2)</small><table border=\"1\" class=\"dataframe\"><thead><tr><th>Language</th><th>counts</th></tr><tr><td>str</td><td>u32</td></tr></thead><tbody><tr><td>null</td><td>1598375</td></tr><tr><td>"eng"</td><td>209643</td></tr><tr><td>"fre"</td><td>16321</td></tr><tr><td>"ger"</td><td>11467</td></tr><tr><td>"spa"</td><td>7247</td></tr><tr><td>"jpn"</td><td>2059</td></tr><tr><td>"ita"</td><td>1156</td></tr><tr><td>"mul"</td><td>417</td></tr><tr><td>"por"</td><td>406</td></tr><tr><td>"nld"</td><td>358</td></tr><tr><td>"pol"</td><td>315</td></tr><tr><td>"rus"</td><td>290</td></tr><tr><td>…</td><td>…</td></tr><tr><td>"ssw"</td><td>1</td></tr><tr><td>"rar"</td><td>1</td></tr><tr><td>"ada"</td><td>1</td></tr><tr><td>"non"</td><td>1</td></tr><tr><td>"myn"</td><td>1</td></tr><tr><td>"cre"</td><td>1</td></tr><tr><td>"chp"</td><td>1</td></tr><tr><td>"sna"</td><td>1</td></tr><tr><td>"lao"</td><td>1</td></tr><tr><td>"fan"</td><td>1</td></tr><tr><td>"kan"</td><td>1</td></tr><tr><td>"null"</td><td>1</td></tr></tbody></table></div>" | |
| ], | |
| "text/plain": [ | |
| "shape: (122, 2)\n", | |
| "┌──────────┬─────────┐\n", | |
| "│ Language ┆ counts │\n", | |
| "│ --- ┆ --- │\n", | |
| "│ str ┆ u32 │\n", | |
| "╞══════════╪═════════╡\n", | |
| "│ null ┆ 1598375 │\n", | |
| "│ eng ┆ 209643 │\n", | |
| "│ fre ┆ 16321 │\n", | |
| "│ ger ┆ 11467 │\n", | |
| "│ … ┆ … │\n", | |
| "│ lao ┆ 1 │\n", | |
| "│ fan ┆ 1 │\n", | |
| "│ kan ┆ 1 │\n", | |
| "│ null ┆ 1 │\n", | |
| "└──────────┴─────────┘" | |
| ] | |
| }, | |
| "execution_count": 37, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "books_df['Language'].value_counts().sort('counts', descending=True)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 38, | |
| "metadata": { | |
| "cell_id": "c96add301836494f90f84961a070e228", | |
| "deepnote_cell_type": "code", | |
| "deepnote_to_be_reexecuted": false, | |
| "execution_millis": 229, | |
| "execution_start": 1680448941139, | |
| "source_hash": "6fde591d" | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "Text(0, 0.5, 'Language')" | |
| ] | |
| }, | |
| "execution_count": 38, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| }, | |
| { | |
| "data": { | |
| "image/png": "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aZMiIiJ0++23a8iQISotLVWfPn305JNPSpJcXV31+uuva8aMGerTp49at26tyZMna9iwYU7eK9Qml8pLV5IAUGdGjhwpX19fvfrqq85uBQCAq+rcuXO666679Pzzz2vgwIHObgfAL4iPj9eZM2f05ptvOrsVOBFHDgC1rKSkRCtXrpTNZpOrq6v++te/KiMjQ6mpqc5uDQCAOvf111/ryJEj6ty5s86ePWvcJ/2ee+5xcmcAgN9COADUMhcXF3322WdatGiRLly4oNatW2vevHmKjIx0dmsAAFwV77zzjo4ePSo3Nzd17NhR6enpatq0qbPbAgD8Bk4rAAAAAADA5LgSEwAAAAAAJkc4AAAAAACAyREOAAAAAABgcoQDAAAAAACYHOEAAACosby8PFmtVuXm5jq7FcPhw4c1aNAgBQcH68EHH/zFmmHDhumVV16p8166d++upUuX1vl2AAC4UoQDAAA0YPHx8bJarXrrrbcclm/evFlWq9VJXTnXvHnz5OHhoY8//pgv5gAAVBPhAAAADdx1112nlJQUnT592tmt1JrS0tIar3v8+HF17dpVLVq0UJMmTWqxKwAArl2EAwAANHCRkZHy9fXV4sWLf7Vm3rx5VQ6xX7p0qbp37248j4+P17hx47Ro0SJFRkYqPDxc8+fPV3l5uWbNmqU777xTd911l9asWVNl/iNHjujhhx9WcHCw+vTpo88//9xh/MCBAxo1apTCwsIUGRmp5557TqdOnTLGhw0bpunTp+uVV15Rt27dFBsb+4v7UVFRofnz5+uuu+5Sp06d9OCDD+of//iHMW61WrV3714tWLBAVqtV8+bN+9XXxG63a/r06eratau6deumOXPmqLKy0hg/ffq04uLidMcddygkJESjRo3SsWPHHOb429/+pt69e6tTp07q3r273nnnnV/dniT95S9/UXh4uDIzMyVJH3/8sfr27avOnTurW7duiomJ0blz535zDgAA6gLhAAAADZyrq6ueeeYZrVixQv/+97+vaK7t27fr5MmTWrFiheLj4zVv3jyNGTNG3t7eWr16tR5++GFNnTq1ynZmz56tkSNHav369QoNDdXYsWP1/fffS5LOnDmjESNGKCgoSO+//76WLFmioqIiTZw40WGOdevWyc3NTe+9956mTZv2i/2lpaUpNTVVzz//vDZs2CCbzaZx48YZ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", | |
| "text/plain": [ | |
| "<Figure size 1200x600 with 1 Axes>" | |
| ] | |
| }, | |
| "metadata": {}, | |
| "output_type": "display_data" | |
| } | |
| ], | |
| "source": [ | |
| "plt.figure(figsize = (12,6))\n", | |
| "langs = sns.barplot(\n", | |
| " x = books_df['Language'].value_counts().sort('counts', descending=True).head(5)['Language'].to_pandas(),\n", | |
| " y = books_df['Language'].value_counts().sort('counts', descending=True).head(5)['counts'].to_pandas()\n", | |
| ")\n", | |
| "langs.set_xlabel('Number of books')\n", | |
| "langs.set_ylabel('Language')" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "cell_id": "1e5a76ccba2a4410ac152b322bc7bfa5", | |
| "deepnote_cell_type": "markdown" | |
| }, | |
| "source": [ | |
| "#### Pages Number" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 39, | |
| "metadata": { | |
| "cell_id": "29e23e7c640a459cbb842ce459e04880", | |
| "deepnote_cell_type": "code", | |
| "deepnote_to_be_reexecuted": false, | |
| "execution_millis": 16122, | |
| "execution_start": 1680448947243, | |
| "source_hash": "220723b0" | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "0" | |
| ] | |
| }, | |
| "execution_count": 39, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "books_df = books_df.with_columns(books_df['PagesNumber'].fill_null(books_df['pagesNumber']))\n", | |
| "books_df['PagesNumber'].null_count()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 40, | |
| "metadata": { | |
| "cell_id": "72535465d1f440f0b45f0bf898243d41", | |
| "deepnote_cell_type": "code", | |
| "deepnote_to_be_reexecuted": false, | |
| "execution_millis": 4112, | |
| "execution_start": 1680448965082, | |
| "source_hash": "2a940476" | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/html": [ | |
| "<div><style>\n", | |
| ".dataframe > thead > tr > th,\n", | |
| ".dataframe > tbody > tr > td {\n", | |
| " text-align: right;\n", | |
| "}\n", | |
| "</style>\n", | |
| "<small>shape: (6, 2)</small><table border=\"1\" class=\"dataframe\"><thead><tr><th>statistic</th><th>value</th></tr><tr><td>str</td><td>f64</td></tr></thead><tbody><tr><td>"min"</td><td>0.0</td></tr><tr><td>"max"</td><td>4.517845e6</td></tr><tr><td>"null_count"</td><td>0.0</td></tr><tr><td>"mean"</td><td>276.552045</td></tr><tr><td>"std"</td><td>5006.23687</td></tr><tr><td>"count"</td><td>1.850149e6</td></tr></tbody></table></div>" | |
| ], | |
| "text/plain": [ | |
| "shape: (6, 2)\n", | |
| "┌────────────┬────────────┐\n", | |
| "│ statistic ┆ value │\n", | |
| "│ --- ┆ --- │\n", | |
| "│ str ┆ f64 │\n", | |
| "╞════════════╪════════════╡\n", | |
| "│ min ┆ 0.0 │\n", | |
| "│ max ┆ 4.517845e6 │\n", | |
| "│ null_count ┆ 0.0 │\n", | |
| "│ mean ┆ 276.552045 │\n", | |
| "│ std ┆ 5006.23687 │\n", | |
| "│ count ┆ 1.850149e6 │\n", | |
| "└────────────┴────────────┘" | |
| ] | |
| }, | |
| "execution_count": 40, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "books_df['PagesNumber'].describe()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "cell_id": "a5fd5769068246be9f20ca0cea7cf316", | |
| "deepnote_cell_type": "text-cell-p", | |
| "formattedRanges": [] | |
| }, | |
| "source": [ | |
| "And drop column 'pagesNumber'" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 41, | |
| "metadata": { | |
| "cell_id": "45c725ca731646949c464b18c690f942", | |
| "deepnote_cell_type": "code", | |
| "deepnote_to_be_reexecuted": false, | |
| "execution_millis": 4, | |
| "execution_start": 1680448988909, | |
| "source_hash": "d7c5b6bb" | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "{'Id': Int64,\n", | |
| " 'Name': Utf8,\n", | |
| " 'Authors': Utf8,\n", | |
| " 'ISBN': Utf8,\n", | |
| " 'Rating': Float64,\n", | |
| " 'PublishYear': Int32,\n", | |
| " 'PublishMonth': Int8,\n", | |
| " 'PublishDay': Int8,\n", | |
| " 'Publisher': Utf8,\n", | |
| " 'RatingDist5': Int32,\n", | |
| " 'RatingDist4': Int32,\n", | |
| " 'RatingDist3': Int32,\n", | |
| " 'RatingDist2': Int32,\n", | |
| " 'RatingDist1': Int32,\n", | |
| " 'RatingDistTotal': Int32,\n", | |
| " 'CountsOfReview': Int64,\n", | |
| " 'Language': Utf8,\n", | |
| " 'Description': Utf8,\n", | |
| " 'CountOfTextReviews': Int64,\n", | |
| " 'PagesNumber': Int64}" | |
| ] | |
| }, | |
| "execution_count": 41, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "books_df = books_df.drop(columns=['pagesNumber'])\n", | |
| "books_df.schema" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "cell_id": "c50bcee76f6a42d0afe97ce83059953f", | |
| "deepnote_cell_type": "text-cell-p", | |
| "formattedRanges": [] | |
| }, | |
| "source": [ | |
| "It was expected that the average number of pages is between 200-300 pages (mean - 176, median - 239). However it seems strange for books with million number of pages" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 42, | |
| "metadata": { | |
| "cell_id": "34180a477ccb4091970258dd3de39c43", | |
| "deepnote_cell_type": "code", | |
| "deepnote_to_be_reexecuted": false, | |
| "execution_millis": 8, | |
| "execution_start": 1680448965083, | |
| "source_hash": "f0799249" | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/html": [ | |
| "<div><style>\n", | |
| ".dataframe > thead > tr > th,\n", | |
| ".dataframe > tbody > tr > td {\n", | |
| " text-align: right;\n", | |
| "}\n", | |
| "</style>\n", | |
| "<small>shape: (6, 20)</small><table border=\"1\" class=\"dataframe\"><thead><tr><th>Id</th><th>Name</th><th>Authors</th><th>ISBN</th><th>Rating</th><th>PublishYear</th><th>PublishMonth</th><th>PublishDay</th><th>Publisher</th><th>RatingDist5</th><th>RatingDist4</th><th>RatingDist3</th><th>RatingDist2</th><th>RatingDist1</th><th>RatingDistTotal</th><th>CountsOfReview</th><th>Language</th><th>Description</th><th>CountOfTextReviews</th><th>PagesNumber</th></tr><tr><td>i64</td><td>str</td><td>str</td><td>str</td><td>f64</td><td>i32</td><td>i8</td><td>i8</td><td>str</td><td>i32</td><td>i32</td><td>i32</td><td>i32</td><td>i32</td><td>i32</td><td>i64</td><td>str</td><td>str</td><td>i64</td><td>i64</td></tr></thead><tbody><tr><td>179017</td><td>"Sholokhov's Ti…</td><td>"A.B. Murphy"</td><td>"0704417707"</td><td>5.0</td><td>1997</td><td>31</td><td>12</td><td>"Department of …</td><td>3</td><td>0</td><td>0</td><td>0</td><td>0</td><td>3</td><td>0</td><td>null</td><td>null</td><td>null</td><td>2254246</td></tr><tr><td>2538668</td><td>"Another 425 H…</td><td>"Sandy Redburn"</td><td>"0969941064"</td><td>0.0</td><td>1999</td><td>5</td><td>6</td><td>"Crafty Secrets…</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>null</td><td>null</td><td>null</td><td>4517845</td></tr><tr><td>1634966</td><td>"425 Heartwarmi…</td><td>"Sandy Redburn"</td><td>"0969941048"</td><td>0.0</td><td>1999</td><td>25</td><td>4</td><td>"Crafty Secrets…</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>null</td><td>"This first boo…</td><td>0</td><td>4517845</td></tr><tr><td>3199266</td><td>"Internet Sacre…</td><td>"John B. Hare"</td><td>"0970939043"</td><td>4.5</td><td>2004</td><td>9</td><td>1</td><td>"Sacred-texts.c…</td><td>1</td><td>1</td><td>0</td><td>0</td><td>0</td><td>2</td><td>0</td><td>null</td><td>null</td><td>null</td><td>500000</td></tr><tr><td>1870280</td><td>"2006 Essential…</td><td>"Progressive Ma…</td><td>"1422004694"</td><td>0.0</td><td>2006</td><td>1</td><td>15</td><td>"Progressive Ma…</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>"eng"</td><td>"This unique el…</td><td>null</td><td>107490</td></tr><tr><td>163162</td><td>"2006 Iran Nucl…</td><td>"Progressive Ma…</td><td>"1422004805"</td><td>0.0</td><td>2006</td><td>15</td><td>1</td><td>"Progressive Ma…</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>null</td><td>null</td><td>null</td><td>205141</td></tr></tbody></table></div>" | |
| ], | |
| "text/plain": [ | |
| "shape: (6, 20)\n", | |
| "┌─────────┬────────────┬───────────┬───────────┬───┬──────────┬───────────┬────────────┬───────────┐\n", | |
| "│ Id ┆ Name ┆ Authors ┆ ISBN ┆ … ┆ Language ┆ Descripti ┆ CountOfTex ┆ PagesNumb │\n", | |
| "│ --- ┆ --- ┆ --- ┆ --- ┆ ┆ --- ┆ on ┆ tReviews ┆ er │\n", | |
| "│ i64 ┆ str ┆ str ┆ str ┆ ┆ str ┆ --- ┆ --- ┆ --- │\n", | |
| "│ ┆ ┆ ┆ ┆ ┆ ┆ str ┆ i64 ┆ i64 │\n", | |
| "╞═════════╪════════════╪═══════════╪═══════════╪═══╪══════════╪═══════════╪════════════╪═══════════╡\n", | |
| "│ 179017 ┆ Sholokhov' ┆ A.B. ┆ 070441770 ┆ … ┆ null ┆ null ┆ null ┆ 2254246 │\n", | |
| "│ ┆ s Tikhii ┆ Murphy ┆ 7 ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ ┆ Don: A ┆ ┆ ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ ┆ Commen… ┆ ┆ ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ 2538668 ┆ Another ┆ Sandy ┆ 096994106 ┆ … ┆ null ┆ null ┆ null ┆ 4517845 │\n", | |
| "│ ┆ 425 Heart ┆ Redburn ┆ 4 ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ ┆ warmin' ┆ ┆ ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ ┆ Expres… ┆ ┆ ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ 1634966 ┆ 425 Heartw ┆ Sandy ┆ 096994104 ┆ … ┆ null ┆ This ┆ 0 ┆ 4517845 │\n", | |
| "│ ┆ armin' Exp ┆ Redburn ┆ 8 ┆ ┆ ┆ first ┆ ┆ │\n", | |
| "│ ┆ ressions ┆ ┆ ┆ ┆ ┆ book in ┆ ┆ │\n", | |
| "│ ┆ For… ┆ ┆ ┆ ┆ ┆ the Heart ┆ ┆ │\n", | |
| "│ ┆ ┆ ┆ ┆ ┆ ┆ warm… ┆ ┆ │\n", | |
| "│ 3199266 ┆ Internet ┆ John B. ┆ 097093904 ┆ … ┆ null ┆ null ┆ null ┆ 500000 │\n", | |
| "│ ┆ Sacred ┆ Hare ┆ 3 ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ ┆ Text ┆ ┆ ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ ┆ Archive ┆ ┆ ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ ┆ 4.0 ┆ ┆ ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ 1870280 ┆ 2006 ┆ Progressi ┆ 142200469 ┆ … ┆ eng ┆ This ┆ null ┆ 107490 │\n", | |
| "│ ┆ Essential ┆ ve Manage ┆ 4 ┆ ┆ ┆ unique ┆ ┆ │\n", | |
| "│ ┆ Guide To ┆ ment ┆ ┆ ┆ ┆ electroni ┆ ┆ │\n", | |
| "│ ┆ The Nati… ┆ ┆ ┆ ┆ ┆ c book on ┆ ┆ │\n", | |
| "│ ┆ ┆ ┆ ┆ ┆ ┆ D… ┆ ┆ │\n", | |
| "│ 163162 ┆ 2006 Iran ┆ Progressi ┆ 142200480 ┆ … ┆ null ┆ null ┆ null ┆ 205141 │\n", | |
| "│ ┆ Nuclear ┆ ve Manage ┆ 5 ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ ┆ Threat � ┆ ment ┆ ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ ┆ Gover… ┆ ┆ ┆ ┆ ┆ ┆ ┆ │\n", | |
| "└─────────┴────────────┴───────────┴───────────┴───┴──────────┴───────────┴────────────┴───────────┘" | |
| ] | |
| }, | |
| "execution_count": 42, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "books_df.filter(books_df['PagesNumber'] > 100_000)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "cell_id": "3c751b4ed13f45ffbc88105ac070ba91", | |
| "deepnote_cell_type": "text-cell-p", | |
| "formattedRanges": [] | |
| }, | |
| "source": [ | |
| "To avoid such a big ourliers let's remove these books with more than 100,000 pages" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 43, | |
| "metadata": { | |
| "cell_id": "fe88bc81fb9a45d6b9f4eacf6eede1ff", | |
| "deepnote_cell_type": "code", | |
| "deepnote_to_be_reexecuted": false, | |
| "execution_millis": 1165, | |
| "execution_start": 1680448982643, | |
| "source_hash": "2211f6d" | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "6" | |
| ] | |
| }, | |
| "execution_count": 43, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "books_df = books_df.sort('PagesNumber')\n", | |
| "n = books_df.filter(books_df['PagesNumber'] > 100_000).shape[0]\n", | |
| "n" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 44, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/html": [ | |
| "<div><style>\n", | |
| ".dataframe > thead > tr > th,\n", | |
| ".dataframe > tbody > tr > td {\n", | |
| " text-align: right;\n", | |
| "}\n", | |
| "</style>\n", | |
| "<small>shape: (5, 20)</small><table border=\"1\" class=\"dataframe\"><thead><tr><th>Id</th><th>Name</th><th>Authors</th><th>ISBN</th><th>Rating</th><th>PublishYear</th><th>PublishMonth</th><th>PublishDay</th><th>Publisher</th><th>RatingDist5</th><th>RatingDist4</th><th>RatingDist3</th><th>RatingDist2</th><th>RatingDist1</th><th>RatingDistTotal</th><th>CountsOfReview</th><th>Language</th><th>Description</th><th>CountOfTextReviews</th><th>PagesNumber</th></tr><tr><td>i64</td><td>str</td><td>str</td><td>str</td><td>f64</td><td>i32</td><td>i8</td><td>i8</td><td>str</td><td>i32</td><td>i32</td><td>i32</td><td>i32</td><td>i32</td><td>i32</td><td>i64</td><td>str</td><td>str</td><td>i64</td><td>i64</td></tr></thead><tbody><tr><td>163161</td><td>"2006 Iranian N…</td><td>"U.S. Governmen…</td><td>"1422005003"</td><td>0.0</td><td>2006</td><td>17</td><td>1</td><td>"Progressive Ma…</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>"eng"</td><td>null</td><td>null</td><td>63987</td></tr><tr><td>4538171</td><td>"Gourmet's Menu…</td><td>"Gourmet Magazi…</td><td>"0394540328"</td><td>5.0</td><td>1984</td><td>10</td><td>12</td><td>"Knopf"</td><td>5</td><td>0</td><td>0</td><td>0</td><td>0</td><td>5</td><td>0</td><td>null</td><td>null</td><td>null</td><td>65224</td></tr><tr><td>733737</td><td>"Lisa and David…</td><td>"Theodore Isaac…</td><td>"0345331079"</td><td>3.65</td><td>1973</td><td>12</td><td>3</td><td>"Ballantine Boo…</td><td>28</td><td>53</td><td>42</td><td>13</td><td>3</td><td>139</td><td>0</td><td>null</td><td>"Two stories ab…</td><td>0</td><td>80300</td></tr><tr><td>907355</td><td>"Lifelines"</td><td>"Edith Schaeffe…</td><td>"034531154X"</td><td>3.78</td><td>1983</td><td>12</td><td>12</td><td>"Ballantine Boo…</td><td>3</td><td>8</td><td>7</td><td>0</td><td>0</td><td>18</td><td>0</td><td>null</td><td>"The Ten Comman…</td><td>0</td><td>80500</td></tr><tr><td>3247146</td><td>"Scholar's Libr…</td><td>"Logos Research…</td><td>"1577990773"</td><td>0.0</td><td>2001</td><td>10</td><td>1</td><td>"Logos Research…</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>"eng"</td><td>"Scholar's Libr…</td><td>null</td><td>100000</td></tr></tbody></table></div>" | |
| ], | |
| "text/plain": [ | |
| "shape: (5, 20)\n", | |
| "┌─────────┬────────────┬───────────┬───────────┬───┬──────────┬───────────┬────────────┬───────────┐\n", | |
| "│ Id ┆ Name ┆ Authors ┆ ISBN ┆ … ┆ Language ┆ Descripti ┆ CountOfTex ┆ PagesNumb │\n", | |
| "│ --- ┆ --- ┆ --- ┆ --- ┆ ┆ --- ┆ on ┆ tReviews ┆ er │\n", | |
| "│ i64 ┆ str ┆ str ┆ str ┆ ┆ str ┆ --- ┆ --- ┆ --- │\n", | |
| "│ ┆ ┆ ┆ ┆ ┆ ┆ str ┆ i64 ┆ i64 │\n", | |
| "╞═════════╪════════════╪═══════════╪═══════════╪═══╪══════════╪═══════════╪════════════╪═══════════╡\n", | |
| "│ 163161 ┆ 2006 ┆ U.S. Gove ┆ 142200500 ┆ … ┆ eng ┆ null ┆ null ┆ 63987 │\n", | |
| "│ ┆ Iranian ┆ rnment ┆ 3 ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ ┆ Nuclear ┆ Accountab ┆ ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ ┆ Showdown: ┆ ility O… ┆ ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ ┆ I… ┆ ┆ ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ 4538171 ┆ Gourmet's ┆ Gourmet ┆ 039454032 ┆ … ┆ null ┆ null ┆ null ┆ 65224 │\n", | |
| "│ ┆ Menu ┆ Magazine ┆ 8 ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ ┆ Cookbk ┆ ┆ ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ 733737 ┆ Lisa and ┆ Theodore ┆ 034533107 ┆ … ┆ null ┆ Two ┆ 0 ┆ 80300 │\n", | |
| "│ ┆ David/jord ┆ Isaac ┆ 9 ┆ ┆ ┆ stories ┆ ┆ │\n", | |
| "│ ┆ i ┆ Rubin ┆ ┆ ┆ ┆ about ┆ ┆ │\n", | |
| "│ ┆ ┆ ┆ ┆ ┆ ┆ children ┆ ┆ │\n", | |
| "│ ┆ ┆ ┆ ┆ ┆ ┆ who a… ┆ ┆ │\n", | |
| "│ 907355 ┆ Lifelines ┆ Edith ┆ 034531154 ┆ … ┆ null ┆ The Ten ┆ 0 ┆ 80500 │\n", | |
| "│ ┆ ┆ Schaeffer ┆ X ┆ ┆ ┆ Commandme ┆ ┆ │\n", | |
| "│ ┆ ┆ ┆ ┆ ┆ ┆ nts for ┆ ┆ │\n", | |
| "│ ┆ ┆ ┆ ┆ ┆ ┆ Today. ┆ ┆ │\n", | |
| "│ 3247146 ┆ Scholar's ┆ Logos ┆ 157799077 ┆ … ┆ eng ┆ Scholar's ┆ null ┆ 100000 │\n", | |
| "│ ┆ Library ┆ Research ┆ 3 ┆ ┆ ┆ Library ┆ ┆ │\n", | |
| "│ ┆ Series X ┆ Systems ┆ ┆ ┆ ┆ is the ┆ ┆ │\n", | |
| "│ ┆ ┆ ┆ ┆ ┆ ┆ best va… ┆ ┆ │\n", | |
| "└─────────┴────────────┴───────────┴───────────┴───┴──────────┴───────────┴────────────┴───────────┘" | |
| ] | |
| }, | |
| "execution_count": 44, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "books_df = books_df[:len(books_df)-n]\n", | |
| "books_df.tail()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "cell_id": "f5a266e734074fd592eabd21fc020044", | |
| "deepnote_cell_type": "markdown" | |
| }, | |
| "source": [ | |
| "#### Description" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 45, | |
| "metadata": { | |
| "cell_id": "d282172df68045c393b7b74db19500c8", | |
| "deepnote_cell_type": "code", | |
| "deepnote_to_be_reexecuted": false, | |
| "execution_millis": 564, | |
| "execution_start": 1680448747357, | |
| "source_hash": "8e93bef3" | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "1083670" | |
| ] | |
| }, | |
| "execution_count": 45, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "books_df['Description'].n_unique()" | |
| ] | |
| }, | |
| { | |
| "attachments": {}, | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "There are a lot of missing values in this column, but in general this is just text. Let's find out how to fill them soon" | |
| ] | |
| }, | |
| { | |
| "attachments": {}, | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "### Eploratory Data Analysis" | |
| ] | |
| }, | |
| { | |
| "attachments": {}, | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "Consider these questions:\n", | |
| "1. Which book is the most popular?\n", | |
| "2. Which author is the most popular?\n", | |
| "3. Which number wrote the biggest number of books?\n", | |
| "4. Is number of pages correlated with ratings or number of reviews?\n", | |
| "5. Which years had the biggest number of books written?\n", | |
| "6. Is there tendency to reduce number of pages in nowaday books?" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 46, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "{'Id': Int64,\n", | |
| " 'Name': Utf8,\n", | |
| " 'Authors': Utf8,\n", | |
| " 'ISBN': Utf8,\n", | |
| " 'Rating': Float64,\n", | |
| " 'PublishYear': Int32,\n", | |
| " 'PublishMonth': Int8,\n", | |
| " 'PublishDay': Int8,\n", | |
| " 'Publisher': Utf8,\n", | |
| " 'RatingDist5': Int32,\n", | |
| " 'RatingDist4': Int32,\n", | |
| " 'RatingDist3': Int32,\n", | |
| " 'RatingDist2': Int32,\n", | |
| " 'RatingDist1': Int32,\n", | |
| " 'RatingDistTotal': Int32,\n", | |
| " 'CountsOfReview': Int64,\n", | |
| " 'Language': Utf8,\n", | |
| " 'Description': Utf8,\n", | |
| " 'CountOfTextReviews': Int64,\n", | |
| " 'PagesNumber': Int64}" | |
| ] | |
| }, | |
| "execution_count": 46, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "books_df.schema" | |
| ] | |
| }, | |
| { | |
| "attachments": {}, | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "#### 1. Which book is the most popular?" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 47, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/html": [ | |
| "<div><style>\n", | |
| ".dataframe > thead > tr > th,\n", | |
| ".dataframe > tbody > tr > td {\n", | |
| " text-align: right;\n", | |
| "}\n", | |
| "</style>\n", | |
| "<small>shape: (1, 20)</small><table border=\"1\" class=\"dataframe\"><thead><tr><th>Id</th><th>Name</th><th>Authors</th><th>ISBN</th><th>Rating</th><th>PublishYear</th><th>PublishMonth</th><th>PublishDay</th><th>Publisher</th><th>RatingDist5</th><th>RatingDist4</th><th>RatingDist3</th><th>RatingDist2</th><th>RatingDist1</th><th>RatingDistTotal</th><th>CountsOfReview</th><th>Language</th><th>Description</th><th>CountOfTextReviews</th><th>PagesNumber</th></tr><tr><td>i64</td><td>str</td><td>str</td><td>str</td><td>f64</td><td>i32</td><td>i8</td><td>i8</td><td>str</td><td>i32</td><td>i32</td><td>i32</td><td>i32</td><td>i32</td><td>i32</td><td>i64</td><td>str</td><td>str</td><td>i64</td><td>i64</td></tr></thead><tbody><tr><td>4593339</td><td>"Ο Χάρι Πότερ κ…</td><td>"J.K. Rowling"</td><td>null</td><td>4.47</td><td>1998</td><td>11</td><td>1</td><td>"Εκδόσεις Ψυχογ…</td><td>4608992</td><td>1621963</td><td>603633</td><td>140565</td><td>119534</td><td>7094687</td><td>51</td><td>"gre"</td><td>"<i>Alternate c…</td><td>null</td><td>360</td></tr></tbody></table></div>" | |
| ], | |
| "text/plain": [ | |
| "shape: (1, 20)\n", | |
| "┌─────────┬───────────────┬─────────┬──────┬───┬──────────┬───────────┬────────────┬───────────────┐\n", | |
| "│ Id ┆ Name ┆ Authors ┆ ISBN ┆ … ┆ Language ┆ Descripti ┆ CountOfTex ┆ PagesNumber │\n", | |
| "│ --- ┆ --- ┆ --- ┆ --- ┆ ┆ --- ┆ on ┆ tReviews ┆ --- │\n", | |
| "│ i64 ┆ str ┆ str ┆ str ┆ ┆ str ┆ --- ┆ --- ┆ i64 │\n", | |
| "│ ┆ ┆ ┆ ┆ ┆ ┆ str ┆ i64 ┆ │\n", | |
| "╞═════════╪═══════════════╪═════════╪══════╪═══╪══════════╪═══════════╪════════════╪═══════════════╡\n", | |
| "│ 4593339 ┆ Ο Χάρι Πότερ ┆ J.K. ┆ null ┆ … ┆ gre ┆ <i>Altern ┆ null ┆ 360 │\n", | |
| "│ ┆ και η ┆ Rowling ┆ ┆ ┆ ┆ ate cover ┆ ┆ │\n", | |
| "│ ┆ φιλοσοφική ┆ ┆ ┆ ┆ ┆ edition ┆ ┆ │\n", | |
| "│ ┆ λί… ┆ ┆ ┆ ┆ ┆ can b… ┆ ┆ │\n", | |
| "└─────────┴───────────────┴─────────┴──────┴───┴──────────┴───────────┴────────────┴───────────────┘" | |
| ] | |
| }, | |
| "execution_count": 47, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "# The book with biggest number of ratings (total)\n", | |
| "books_df.filter(books_df['RatingDistTotal'] == books_df['RatingDistTotal'].max())" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 48, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/html": [ | |
| "<div><style>\n", | |
| ".dataframe > thead > tr > th,\n", | |
| ".dataframe > tbody > tr > td {\n", | |
| " text-align: right;\n", | |
| "}\n", | |
| "</style>\n", | |
| "<small>shape: (1, 20)</small><table border=\"1\" class=\"dataframe\"><thead><tr><th>Id</th><th>Name</th><th>Authors</th><th>ISBN</th><th>Rating</th><th>PublishYear</th><th>PublishMonth</th><th>PublishDay</th><th>Publisher</th><th>RatingDist5</th><th>RatingDist4</th><th>RatingDist3</th><th>RatingDist2</th><th>RatingDist1</th><th>RatingDistTotal</th><th>CountsOfReview</th><th>Language</th><th>Description</th><th>CountOfTextReviews</th><th>PagesNumber</th></tr><tr><td>i64</td><td>str</td><td>str</td><td>str</td><td>f64</td><td>i32</td><td>i8</td><td>i8</td><td>str</td><td>i32</td><td>i32</td><td>i32</td><td>i32</td><td>i32</td><td>i32</td><td>i64</td><td>str</td><td>str</td><td>i64</td><td>i64</td></tr></thead><tbody><tr><td>4593339</td><td>"Ο Χάρι Πότερ κ…</td><td>"J.K. Rowling"</td><td>null</td><td>4.47</td><td>1998</td><td>11</td><td>1</td><td>"Εκδόσεις Ψυχογ…</td><td>4608992</td><td>1621963</td><td>603633</td><td>140565</td><td>119534</td><td>7094687</td><td>51</td><td>"gre"</td><td>"<i>Alternate c…</td><td>null</td><td>360</td></tr></tbody></table></div>" | |
| ], | |
| "text/plain": [ | |
| "shape: (1, 20)\n", | |
| "┌─────────┬───────────────┬─────────┬──────┬───┬──────────┬───────────┬────────────┬───────────────┐\n", | |
| "│ Id ┆ Name ┆ Authors ┆ ISBN ┆ … ┆ Language ┆ Descripti ┆ CountOfTex ┆ PagesNumber │\n", | |
| "│ --- ┆ --- ┆ --- ┆ --- ┆ ┆ --- ┆ on ┆ tReviews ┆ --- │\n", | |
| "│ i64 ┆ str ┆ str ┆ str ┆ ┆ str ┆ --- ┆ --- ┆ i64 │\n", | |
| "│ ┆ ┆ ┆ ┆ ┆ ┆ str ┆ i64 ┆ │\n", | |
| "╞═════════╪═══════════════╪═════════╪══════╪═══╪══════════╪═══════════╪════════════╪═══════════════╡\n", | |
| "│ 4593339 ┆ Ο Χάρι Πότερ ┆ J.K. ┆ null ┆ … ┆ gre ┆ <i>Altern ┆ null ┆ 360 │\n", | |
| "│ ┆ και η ┆ Rowling ┆ ┆ ┆ ┆ ate cover ┆ ┆ │\n", | |
| "│ ┆ φιλοσοφική ┆ ┆ ┆ ┆ ┆ edition ┆ ┆ │\n", | |
| "│ ┆ λί… ┆ ┆ ┆ ┆ ┆ can b… ┆ ┆ │\n", | |
| "└─────────┴───────────────┴─────────┴──────┴───┴──────────┴───────────┴────────────┴───────────────┘" | |
| ] | |
| }, | |
| "execution_count": 48, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "# The book with biggest number of 5-star ratings\n", | |
| "books_df.filter(books_df['RatingDist5'] == books_df['RatingDist5'].max())" | |
| ] | |
| }, | |
| { | |
| "attachments": {}, | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "Book by J. K. Rowling in Greece, maybe it's Harry Potter. Amazing!" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 49, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/html": [ | |
| "<div><style>\n", | |
| ".dataframe > thead > tr > th,\n", | |
| ".dataframe > tbody > tr > td {\n", | |
| " text-align: right;\n", | |
| "}\n", | |
| "</style>\n", | |
| "<small>shape: (79822, 20)</small><table border=\"1\" class=\"dataframe\"><thead><tr><th>Id</th><th>Name</th><th>Authors</th><th>ISBN</th><th>Rating</th><th>PublishYear</th><th>PublishMonth</th><th>PublishDay</th><th>Publisher</th><th>RatingDist5</th><th>RatingDist4</th><th>RatingDist3</th><th>RatingDist2</th><th>RatingDist1</th><th>RatingDistTotal</th><th>CountsOfReview</th><th>Language</th><th>Description</th><th>CountOfTextReviews</th><th>PagesNumber</th></tr><tr><td>i64</td><td>str</td><td>str</td><td>str</td><td>f64</td><td>i32</td><td>i8</td><td>i8</td><td>str</td><td>i32</td><td>i32</td><td>i32</td><td>i32</td><td>i32</td><td>i32</td><td>i64</td><td>str</td><td>str</td><td>i64</td><td>i64</td></tr></thead><tbody><tr><td>1232627</td><td>"Rainbow Brite …</td><td>"Walt Disney Co…</td><td>"0830002227"</td><td>5.0</td><td>1920</td><td>1</td><td>1</td><td>null</td><td>1</td><td>0</td><td>0</td><td>0</td><td>0</td><td>1</td><td>0</td><td>null</td><td>null</td><td>0</td><td>0</td></tr><tr><td>2100591</td><td>"Writing to Des…</td><td>"Barbara Levadi…</td><td>"0835918912"</td><td>5.0</td><td>1950</td><td>1</td><td>1</td><td>"Globe Fearon"</td><td>1</td><td>0</td><td>0</td><td>0</td><td>0</td><td>1</td><td>0</td><td>null</td><td>null</td><td>null</td><td>0</td></tr><tr><td>688952</td><td>"I Know a Giraf…</td><td>"David Omar Whi…</td><td>"0394912810"</td><td>5.0</td><td>1965</td><td>12</td><td>4</td><td>"Knopf Books fo…</td><td>1</td><td>0</td><td>0</td><td>0</td><td>0</td><td>1</td><td>0</td><td>null</td><td>null</td><td>null</td><td>0</td></tr><tr><td>2604871</td><td>"Bonhomme"</td><td>"Laurent de Bru…</td><td>"0394910958"</td><td>5.0</td><td>1965</td><td>10</td><td>12</td><td>"Knopf Books fo…</td><td>4</td><td>0</td><td>0</td><td>0</td><td>0</td><td>4</td><td>0</td><td>null</td><td>"Bonhomme, Emil…</td><td>null</td><td>0</td></tr><tr><td>254032</td><td>"The Destructor…</td><td>"Richard Demin…</td><td>"0345241908"</td><td>5.0</td><td>1974</td><td>12</td><td>8</td><td>"Ballantine Boo…</td><td>1</td><td>0</td><td>0</td><td>0</td><td>0</td><td>1</td><td>0</td><td>null</td><td>null</td><td>null</td><td>0</td></tr><tr><td>698840</td><td>"SNIFF & TELL R…</td><td>"Roy McKie"</td><td>"0394837797"</td><td>5.0</td><td>1978</td><td>12</td><td>4</td><td>"Random House B…</td><td>1</td><td>0</td><td>0</td><td>0</td><td>0</td><td>1</td><td>0</td><td>null</td><td>null</td><td>null</td><td>0</td></tr><tr><td>330812</td><td>"Backgammon Ppl…</td><td>"Tim Holland"</td><td>"0679141251"</td><td>5.0</td><td>1978</td><td>12</td><td>11</td><td>"Three Rivers P…</td><td>1</td><td>0</td><td>0</td><td>0</td><td>0</td><td>1</td><td>0</td><td>null</td><td>null</td><td>null</td><td>0</td></tr><tr><td>2093895</td><td>"Fox Trap"</td><td>"Robert Arthur …</td><td>"0449140733"</td><td>5.0</td><td>1978</td><td>12</td><td>12</td><td>"Fawcett"</td><td>1</td><td>0</td><td>0</td><td>0</td><td>0</td><td>1</td><td>0</td><td>null</td><td>null</td><td>null</td><td>0</td></tr><tr><td>202908</td><td>"Rampage"</td><td>"Harry Whitting…</td><td>"0449140741"</td><td>5.0</td><td>1978</td><td>12</td><td>12</td><td>"Fawcett"</td><td>1</td><td>0</td><td>0</td><td>0</td><td>0</td><td>1</td><td>0</td><td>null</td><td>null</td><td>null</td><td>0</td></tr><tr><td>3370341</td><td>"Babar Packs Hi…</td><td>"Laurent de Bru…</td><td>"0394839609"</td><td>5.0</td><td>1978</td><td>9</td><td>12</td><td>"Random House B…</td><td>1</td><td>0</td><td>0</td><td>0</td><td>0</td><td>1</td><td>0</td><td>null</td><td>null</td><td>null</td><td>0</td></tr><tr><td>2553644</td><td>"The Long Count…</td><td>"Ron Faust"</td><td>"0449142701"</td><td>5.0</td><td>1979</td><td>11</td><td>12</td><td>"Fawcett"</td><td>1</td><td>0</td><td>0</td><td>0</td><td>0</td><td>1</td><td>0</td><td>null</td><td>"His name was J…</td><td>null</td><td>0</td></tr><tr><td>2884218</td><td>"Gospel Swamp"</td><td>"Louise O'Flahe…</td><td>"0345291441"</td><td>5.0</td><td>1980</td><td>10</td><td>12</td><td>"Ballantine Boo…</td><td>1</td><td>0</td><td>0</td><td>0</td><td>0</td><td>1</td><td>0</td><td>null</td><td>null</td><td>null</td><td>0</td></tr><tr><td>…</td><td>…</td><td>…</td><td>…</td><td>…</td><td>…</td><td>…</td><td>…</td><td>…</td><td>…</td><td>…</td><td>…</td><td>…</td><td>…</td><td>…</td><td>…</td><td>…</td><td>…</td><td>…</td><td>…</td></tr><tr><td>4036294</td><td>"Richard F.S. S…</td><td>"David I. Owen"</td><td>"1883053102"</td><td>5.0</td><td>2018</td><td>1</td><td>22</td><td>"CDL Press"</td><td>1</td><td>0</td><td>0</td><td>0</td><td>0</td><td>1</td><td>0</td><td>null</td><td>"Monographs and…</td><td>null</td><td>8474</td></tr><tr><td>1348845</td><td>"The Complete H…</td><td>"Reuben Alcalay…</td><td>"0875592120"</td><td>5.0</td><td>1996</td><td>1</td><td>6</td><td>"P. Shalom Publ…</td><td>1</td><td>0</td><td>0</td><td>0</td><td>0</td><td>1</td><td>0</td><td>null</td><td>null</td><td>0</td><td>8539</td></tr><tr><td>1151216</td><td>"Comprehensive …</td><td>"David Michael …</td><td>"008044590X"</td><td>5.0</td><td>2006</td><td>26</td><td>12</td><td>"Elsevier Scien…</td><td>1</td><td>0</td><td>0</td><td>0</td><td>0</td><td>1</td><td>0</td><td>null</td><td>"Comprehensive …</td><td>0</td><td>9000</td></tr><tr><td>642011</td><td>"Richard Wright…</td><td>"Arnold Rampers…</td><td>"0130361208"</td><td>5.0</td><td>1994</td><td>14</td><td>11</td><td>"Pearson"</td><td>1</td><td>0</td><td>0</td><td>0</td><td>0</td><td>1</td><td>0</td><td>null</td><td>"A collection o…</td><td>null</td><td>9998</td></tr><tr><td>1867821</td><td>"Macintosh Bibl…</td><td>"Patrick Burns"</td><td>"0201883732"</td><td>5.0</td><td>1996</td><td>1</td><td>6</td><td>"Peachpit Press…</td><td>1</td><td>0</td><td>0</td><td>0</td><td>0</td><td>1</td><td>1</td><td>null</td><td>"Microsoft is o…</td><td>null</td><td>9998</td></tr><tr><td>2680344</td><td>"C#builder Kick…</td><td>"Joe Mayo"</td><td>"0672325896"</td><td>5.0</td><td>2003</td><td>10</td><td>1</td><td>"Sams Publishin…</td><td>1</td><td>0</td><td>0</td><td>0</td><td>0</td><td>1</td><td>0</td><td>null</td><td>"<i>C#Builder K…</td><td>null</td><td>9998</td></tr><tr><td>2355000</td><td>"Distribution a…</td><td>"Charles G. Sib…</td><td>"0300049692"</td><td>5.0</td><td>1991</td><td>1</td><td>23</td><td>"Yale Universit…</td><td>1</td><td>0</td><td>0</td><td>0</td><td>0</td><td>1</td><td>0</td><td>null</td><td>"In this book t…</td><td>null</td><td>11360</td></tr><tr><td>213085</td><td>"20th Century U…</td><td>"U.S. Governmen…</td><td>"1422005763"</td><td>5.0</td><td>2006</td><td>14</td><td>3</td><td>"Progressive Ma…</td><td>1</td><td>0</td><td>0</td><td>0</td><td>0</td><td>1</td><td>0</td><td>null</td><td>null</td><td>null</td><td>15189</td></tr><tr><td>348353</td><td>"2003 Complete …</td><td>"U.S. Departmen…</td><td>"1592481159"</td><td>5.0</td><td>2003</td><td>1</td><td>1</td><td>"Progressive Ma…</td><td>1</td><td>0</td><td>0</td><td>0</td><td>0</td><td>1</td><td>0</td><td>null</td><td>null</td><td>null</td><td>18641</td></tr><tr><td>499</td><td>"21st Century M…</td><td>"U.S. Governmen…</td><td>"1422004848"</td><td>5.0</td><td>2006</td><td>3</td><td>2</td><td>"Progressive Ma…</td><td>2</td><td>0</td><td>0</td><td>0</td><td>0</td><td>2</td><td>0</td><td>null</td><td>null</td><td>null</td><td>23931</td></tr><tr><td>1209499</td><td>"Encyclopaedia …</td><td>"Encyclopædia B…</td><td>"0852297874"</td><td>5.0</td><td>2001</td><td>15</td><td>8</td><td>"Encyclopedia B…</td><td>1</td><td>0</td><td>0</td><td>0</td><td>0</td><td>1</td><td>0</td><td>null</td><td>null</td><td>0</td><td>32642</td></tr><tr><td>4538171</td><td>"Gourmet's Menu…</td><td>"Gourmet Magazi…</td><td>"0394540328"</td><td>5.0</td><td>1984</td><td>10</td><td>12</td><td>"Knopf"</td><td>5</td><td>0</td><td>0</td><td>0</td><td>0</td><td>5</td><td>0</td><td>null</td><td>null</td><td>null</td><td>65224</td></tr></tbody></table></div>" | |
| ], | |
| "text/plain": [ | |
| "shape: (79822, 20)\n", | |
| "┌─────────┬────────────┬───────────┬───────────┬───┬──────────┬───────────┬────────────┬───────────┐\n", | |
| "│ Id ┆ Name ┆ Authors ┆ ISBN ┆ … ┆ Language ┆ Descripti ┆ CountOfTex ┆ PagesNumb │\n", | |
| "│ --- ┆ --- ┆ --- ┆ --- ┆ ┆ --- ┆ on ┆ tReviews ┆ er │\n", | |
| "│ i64 ┆ str ┆ str ┆ str ┆ ┆ str ┆ --- ┆ --- ┆ --- │\n", | |
| "│ ┆ ┆ ┆ ┆ ┆ ┆ str ┆ i64 ┆ i64 │\n", | |
| "╞═════════╪════════════╪═══════════╪═══════════╪═══╪══════════╪═══════════╪════════════╪═══════════╡\n", | |
| "│ 1232627 ┆ Rainbow ┆ Walt ┆ 083000222 ┆ … ┆ null ┆ null ┆ 0 ┆ 0 │\n", | |
| "│ ┆ Brite ┆ Disney ┆ 7 ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ ┆ Happy ┆ Company ┆ ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ ┆ Birthday ┆ ┆ ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ 2100591 ┆ Writing to ┆ Barbara ┆ 083591891 ┆ … ┆ null ┆ null ┆ null ┆ 0 │\n", | |
| "│ ┆ Describe ┆ Levadi ┆ 2 ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ ┆ (Success ┆ ┆ ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ ┆ in … ┆ ┆ ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ 688952 ┆ I Know a ┆ David ┆ 039491281 ┆ … ┆ null ┆ null ┆ null ┆ 0 │\n", | |
| "│ ┆ Giraffe ┆ Omar ┆ 0 ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ ┆ ┆ White ┆ ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ 2604871 ┆ Bonhomme ┆ Laurent ┆ 039491095 ┆ … ┆ null ┆ Bonhomme, ┆ null ┆ 0 │\n", | |
| "│ ┆ ┆ de ┆ 8 ┆ ┆ ┆ Emilie's ┆ ┆ │\n", | |
| "│ ┆ ┆ Brunhoff ┆ ┆ ┆ ┆ unusual ┆ ┆ │\n", | |
| "│ ┆ ┆ ┆ ┆ ┆ ┆ frien… ┆ ┆ │\n", | |
| "│ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … │\n", | |
| "│ 348353 ┆ 2003 ┆ U.S. Depa ┆ 159248115 ┆ … ┆ null ┆ null ┆ null ┆ 18641 │\n", | |
| "│ ┆ Complete ┆ rtment of ┆ 9 ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ ┆ Guide to ┆ Defense ┆ ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ ┆ the CIA (… ┆ ┆ ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ 499 ┆ 21st ┆ U.S. Gove ┆ 142200484 ┆ … ┆ null ┆ null ┆ null ┆ 23931 │\n", | |
| "│ ┆ Century ┆ rnment ┆ 8 ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ ┆ Mysteries: ┆ ┆ ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ ┆ Nikola T… ┆ ┆ ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ 1209499 ┆ Encyclopae ┆ Encyclopæ ┆ 085229787 ┆ … ┆ null ┆ null ┆ 0 ┆ 32642 │\n", | |
| "│ ┆ dia ┆ dia Brita ┆ 4 ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ ┆ Britannica ┆ nnica ┆ ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ ┆ 2002 Pr… ┆ ┆ ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ 4538171 ┆ Gourmet's ┆ Gourmet ┆ 039454032 ┆ … ┆ null ┆ null ┆ null ┆ 65224 │\n", | |
| "│ ┆ Menu ┆ Magazine ┆ 8 ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ ┆ Cookbk ┆ ┆ ┆ ┆ ┆ ┆ ┆ │\n", | |
| "└─────────┴────────────┴───────────┴───────────┴───┴──────────┴───────────┴────────────┴───────────┘" | |
| ] | |
| }, | |
| "execution_count": 49, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "books_df.filter(books_df['Rating'] == 5)" | |
| ] | |
| }, | |
| { | |
| "attachments": {}, | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "Hmm... all these books have just few assessments. Let's restrict the search. Maybe we should check books with at least 1000 reviews" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 50, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/html": [ | |
| "<div><style>\n", | |
| ".dataframe > thead > tr > th,\n", | |
| ".dataframe > tbody > tr > td {\n", | |
| " text-align: right;\n", | |
| "}\n", | |
| "</style>\n", | |
| "<small>shape: (0, 20)</small><table border=\"1\" class=\"dataframe\"><thead><tr><th>Id</th><th>Name</th><th>Authors</th><th>ISBN</th><th>Rating</th><th>PublishYear</th><th>PublishMonth</th><th>PublishDay</th><th>Publisher</th><th>RatingDist5</th><th>RatingDist4</th><th>RatingDist3</th><th>RatingDist2</th><th>RatingDist1</th><th>RatingDistTotal</th><th>CountsOfReview</th><th>Language</th><th>Description</th><th>CountOfTextReviews</th><th>PagesNumber</th></tr><tr><td>i64</td><td>str</td><td>str</td><td>str</td><td>f64</td><td>i32</td><td>i8</td><td>i8</td><td>str</td><td>i32</td><td>i32</td><td>i32</td><td>i32</td><td>i32</td><td>i32</td><td>i64</td><td>str</td><td>str</td><td>i64</td><td>i64</td></tr></thead><tbody></tbody></table></div>" | |
| ], | |
| "text/plain": [ | |
| "shape: (0, 20)\n", | |
| "┌─────┬──────┬─────────┬──────┬───┬──────────┬─────────────┬────────────────────┬─────────────┐\n", | |
| "│ Id ┆ Name ┆ Authors ┆ ISBN ┆ … ┆ Language ┆ Description ┆ CountOfTextReviews ┆ PagesNumber │\n", | |
| "│ --- ┆ --- ┆ --- ┆ --- ┆ ┆ --- ┆ --- ┆ --- ┆ --- │\n", | |
| "│ i64 ┆ str ┆ str ┆ str ┆ ┆ str ┆ str ┆ i64 ┆ i64 │\n", | |
| "╞═════╪══════╪═════════╪══════╪═══╪══════════╪═════════════╪════════════════════╪═════════════╡\n", | |
| "└─────┴──────┴─────────┴──────┴───┴──────────┴─────────────┴────────────────────┴─────────────┘" | |
| ] | |
| }, | |
| "execution_count": 50, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "books_df.filter((books_df['Rating'] == 5) & (books_df['RatingDistTotal'] > 1000))" | |
| ] | |
| }, | |
| { | |
| "attachments": {}, | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "No matches. Let's reduce the rates" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 51, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/html": [ | |
| "<div><style>\n", | |
| ".dataframe > thead > tr > th,\n", | |
| ".dataframe > tbody > tr > td {\n", | |
| " text-align: right;\n", | |
| "}\n", | |
| "</style>\n", | |
| "<small>shape: (5, 20)</small><table border=\"1\" class=\"dataframe\"><thead><tr><th>Id</th><th>Name</th><th>Authors</th><th>ISBN</th><th>Rating</th><th>PublishYear</th><th>PublishMonth</th><th>PublishDay</th><th>Publisher</th><th>RatingDist5</th><th>RatingDist4</th><th>RatingDist3</th><th>RatingDist2</th><th>RatingDist1</th><th>RatingDistTotal</th><th>CountsOfReview</th><th>Language</th><th>Description</th><th>CountOfTextReviews</th><th>PagesNumber</th></tr><tr><td>i64</td><td>str</td><td>str</td><td>str</td><td>f64</td><td>i32</td><td>i8</td><td>i8</td><td>str</td><td>i32</td><td>i32</td><td>i32</td><td>i32</td><td>i32</td><td>i32</td><td>i64</td><td>str</td><td>str</td><td>i64</td><td>i64</td></tr></thead><tbody><tr><td>24812</td><td>"The Complete C…</td><td>"Bill Watterson…</td><td>"0740748475"</td><td>4.82</td><td>2005</td><td>6</td><td>9</td><td>"Andrews McMeel…</td><td>29520</td><td>3491</td><td>770</td><td>167</td><td>131</td><td>34079</td><td>940</td><td>"eng"</td><td>null</td><td>null</td><td>1456</td></tr><tr><td>257939</td><td>"Harry Potter B…</td><td>"J.K. Rowling"</td><td>"0439612551"</td><td>4.78</td><td>2003</td><td>15</td><td>10</td><td>"Scholastic Inc…</td><td>38097</td><td>4719</td><td>1214</td><td>285</td><td>410</td><td>44725</td><td>1</td><td>null</td><td>null</td><td>null</td><td>2000</td></tr><tr><td>8</td><td>"Harry Potter B…</td><td>"J.K. Rowling"</td><td>"0439682584"</td><td>4.78</td><td>2004</td><td>13</td><td>9</td><td>"Scholastic"</td><td>37432</td><td>4650</td><td>1201</td><td>283</td><td>402</td><td>43968</td><td>166</td><td>"eng"</td><td>null</td><td>null</td><td>2690</td></tr><tr><td>95602</td><td>"Mark of the Li…</td><td>"Francine River…</td><td>"0842339523"</td><td>4.77</td><td>1998</td><td>1</td><td>9</td><td>"Tyndale House"</td><td>9168</td><td>1526</td><td>347</td><td>74</td><td>37</td><td>11152</td><td>757</td><td>"eng"</td><td>null</td><td>null</td><td>1468</td></tr><tr><td>203674</td><td>"Girls Life App…</td><td>"Anonymous"</td><td>"1414302665"</td><td>4.77</td><td>2006</td><td>1</td><td>4</td><td>"Tyndale House …</td><td>1977</td><td>242</td><td>75</td><td>18</td><td>22</td><td>2334</td><td>3</td><td>null</td><td>null</td><td>null</td><td>1568</td></tr></tbody></table></div>" | |
| ], | |
| "text/plain": [ | |
| "shape: (5, 20)\n", | |
| "┌────────┬────────────┬────────────┬───────────┬───┬──────────┬───────────┬────────────┬───────────┐\n", | |
| "│ Id ┆ Name ┆ Authors ┆ ISBN ┆ … ┆ Language ┆ Descripti ┆ CountOfTex ┆ PagesNumb │\n", | |
| "│ --- ┆ --- ┆ --- ┆ --- ┆ ┆ --- ┆ on ┆ tReviews ┆ er │\n", | |
| "│ i64 ┆ str ┆ str ┆ str ┆ ┆ str ┆ --- ┆ --- ┆ --- │\n", | |
| "│ ┆ ┆ ┆ ┆ ┆ ┆ str ┆ i64 ┆ i64 │\n", | |
| "╞════════╪════════════╪════════════╪═══════════╪═══╪══════════╪═══════════╪════════════╪═══════════╡\n", | |
| "│ 24812 ┆ The ┆ Bill ┆ 074074847 ┆ … ┆ eng ┆ null ┆ null ┆ 1456 │\n", | |
| "│ ┆ Complete ┆ Watterson ┆ 5 ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ ┆ Calvin and ┆ ┆ ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ ┆ Hobbes ┆ ┆ ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ 257939 ┆ Harry ┆ J.K. ┆ 043961255 ┆ … ┆ null ┆ null ┆ null ┆ 2000 │\n", | |
| "│ ┆ Potter ┆ Rowling ┆ 1 ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ ┆ Boxed Set ┆ ┆ ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ ┆ (Harry Po… ┆ ┆ ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ 8 ┆ Harry ┆ J.K. ┆ 043968258 ┆ … ┆ eng ┆ null ┆ null ┆ 2690 │\n", | |
| "│ ┆ Potter ┆ Rowling ┆ 4 ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ ┆ Boxed Set, ┆ ┆ ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ ┆ Books 1-… ┆ ┆ ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ 95602 ┆ Mark of ┆ Francine ┆ 084233952 ┆ … ┆ eng ┆ null ┆ null ┆ 1468 │\n", | |
| "│ ┆ the Lion ┆ Rivers ┆ 3 ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ ┆ Trilogy ┆ ┆ ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ 203674 ┆ Girls Life ┆ Anonymous ┆ 141430266 ┆ … ┆ null ┆ null ┆ null ┆ 1568 │\n", | |
| "│ ┆ Applicatio ┆ ┆ 5 ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ ┆ n Study ┆ ┆ ┆ ┆ ┆ ┆ ┆ │\n", | |
| "│ ┆ Bib… ┆ ┆ ┆ ┆ ┆ ┆ ┆ │\n", | |
| "└────────┴────────────┴────────────┴───────────┴───┴──────────┴───────────┴────────────┴───────────┘" | |
| ] | |
| }, | |
| "execution_count": 51, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "books_df.filter((books_df['Rating'] > 4.5) & (books_df['RatingDistTotal'] > 1000)).sort('Rating', descending=True).head()" | |
| ] | |
| }, | |
| { | |
| "attachments": {}, | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "Here we can see, that the book with the best rating and number of reviews from 1000, is the Complete Calvin and Hobbes by Bill Watterson." | |
| ] | |
| }, | |
| { | |
| "attachments": {}, | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "#### 2. Which author is the most popular?" | |
| ] | |
| }, | |
| { | |
| "attachments": {}, | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "Unfortunately we don't have any statistics about how many people read the book, so again we will rely on ratings" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 52, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/html": [ | |
| "<div><style>\n", | |
| ".dataframe > thead > tr > th,\n", | |
| ".dataframe > tbody > tr > td {\n", | |
| " text-align: right;\n", | |
| "}\n", | |
| "</style>\n", | |
| "<small>shape: (5, 2)</small><table border=\"1\" class=\"dataframe\"><thead><tr><th>Authors</th><th>RatingDistTotal</th></tr><tr><td>str</td><td>i32</td></tr></thead><tbody><tr><td>"J.K. Rowling"</td><td>775018045</td></tr><tr><td>"William Shakes…</td><td>287115814</td></tr><tr><td>"J.R.R. Tolkien…</td><td>250990446</td></tr><tr><td>"Jane Austen"</td><td>191443454</td></tr><tr><td>"C.S. Lewis"</td><td>147243848</td></tr></tbody></table></div>" | |
| ], | |
| "text/plain": [ | |
| "shape: (5, 2)\n", | |
| "┌─────────────────────┬─────────────────┐\n", | |
| "│ Authors ┆ RatingDistTotal │\n", | |
| "│ --- ┆ --- │\n", | |
| "│ str ┆ i32 │\n", | |
| "╞═════════════════════╪═════════════════╡\n", | |
| "│ J.K. Rowling ┆ 775018045 │\n", | |
| "│ William Shakespeare ┆ 287115814 │\n", | |
| "│ J.R.R. Tolkien ┆ 250990446 │\n", | |
| "│ Jane Austen ┆ 191443454 │\n", | |
| "│ C.S. Lewis ┆ 147243848 │\n", | |
| "└─────────────────────┴─────────────────┘" | |
| ] | |
| }, | |
| "execution_count": 52, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "# The authors with biggest number of ratings\n", | |
| "books_df.groupby('Authors').agg(pl.sum('RatingDistTotal')).sort('RatingDistTotal', descending=True).head()" | |
| ] | |
| }, | |
| { | |
| "attachments": {}, | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "Definitely Rowling is the most rated author. Let's just confirm, that if we check 5-star ratings, then picture is still similar" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 53, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/html": [ | |
| "<div><style>\n", | |
| ".dataframe > thead > tr > th,\n", | |
| ".dataframe > tbody > tr > td {\n", | |
| " text-align: right;\n", | |
| "}\n", | |
| "</style>\n", | |
| "<small>shape: (5, 2)</small><table border=\"1\" class=\"dataframe\"><thead><tr><th>Authors</th><th>RatingDist5</th></tr><tr><td>str</td><td>i32</td></tr></thead><tbody><tr><td>"J.K. Rowling"</td><td>505200956</td></tr><tr><td>"J.R.R. Tolkien…</td><td>139530827</td></tr><tr><td>"William Shakes…</td><td>92773733</td></tr><tr><td>"Jane Austen"</td><td>92247983</td></tr><tr><td>"C.S. Lewis"</td><td>66033504</td></tr></tbody></table></div>" | |
| ], | |
| "text/plain": [ | |
| "shape: (5, 2)\n", | |
| "┌─────────────────────┬─────────────┐\n", | |
| "│ Authors ┆ RatingDist5 │\n", | |
| "│ --- ┆ --- │\n", | |
| "│ str ┆ i32 │\n", | |
| "╞═════════════════════╪═════════════╡\n", | |
| "│ J.K. Rowling ┆ 505200956 │\n", | |
| "│ J.R.R. Tolkien ┆ 139530827 │\n", | |
| "│ William Shakespeare ┆ 92773733 │\n", | |
| "│ Jane Austen ┆ 92247983 │\n", | |
| "│ C.S. Lewis ┆ 66033504 │\n", | |
| "└─────────────────────┴─────────────┘" | |
| ] | |
| }, | |
| "execution_count": 53, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "books_df.groupby('Authors').agg(pl.sum('RatingDist5')).sort('RatingDist5', descending=True).head()" | |
| ] | |
| }, | |
| { | |
| "attachments": {}, | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "#### 3. Which author wrote the biggest number of books?" | |
| ] | |
| }, | |
| { | |
| "attachments": {}, | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "This information was already mentioned above, but let's repeat" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 54, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/html": [ | |
| "<div><style>\n", | |
| ".dataframe > thead > tr > th,\n", | |
| ".dataframe > tbody > tr > td {\n", | |
| " text-align: right;\n", | |
| "}\n", | |
| "</style>\n", | |
| "<small>shape: (10, 2)</small><table border=\"1\" class=\"dataframe\"><thead><tr><th>Authors</th><th>Name</th></tr><tr><td>str</td><td>u32</td></tr></thead><tbody><tr><td>"Anonymous"</td><td>2893</td></tr><tr><td>"Unknown"</td><td>2029</td></tr><tr><td>"William Shakes…</td><td>1373</td></tr><tr><td>"Francine Pasca…</td><td>930</td></tr><tr><td>"Agatha Christi…</td><td>885</td></tr><tr><td>"National Resea…</td><td>883</td></tr><tr><td>"Cram101 Textbo…</td><td>876</td></tr><tr><td>"Fodor's Travel…</td><td>858</td></tr><tr><td>"Harold Bloom"</td><td>773</td></tr><tr><td>"Various"</td><td>739</td></tr></tbody></table></div>" | |
| ], | |
| "text/plain": [ | |
| "shape: (10, 2)\n", | |
| "┌──────────────────────────────────┬──────┐\n", | |
| "│ Authors ┆ Name │\n", | |
| "│ --- ┆ --- │\n", | |
| "│ str ┆ u32 │\n", | |
| "╞══════════════════════════════════╪══════╡\n", | |
| "│ Anonymous ┆ 2893 │\n", | |
| "│ Unknown ┆ 2029 │\n", | |
| "│ William Shakespeare ┆ 1373 │\n", | |
| "│ Francine Pascal ┆ 930 │\n", | |
| "│ … ┆ … │\n", | |
| "│ Cram101 Textbook Reviews ┆ 876 │\n", | |
| "│ Fodor's Travel Publications Inc. ┆ 858 │\n", | |
| "│ Harold Bloom ┆ 773 │\n", | |
| "│ Various ┆ 739 │\n", | |
| "└──────────────────────────────────┴──────┘" | |
| ] | |
| }, | |
| "execution_count": 54, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "books_df.groupby('Authors').agg(pl.count('Name')).sort('Name', descending=True).head(10)" | |
| ] | |
| }, | |
| { | |
| "attachments": {}, | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "Here we are, William Shakespeare was the most productive author" | |
| ] | |
| }, | |
| { | |
| "attachments": {}, | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "#### 4. Is number of pages correlated with rating or number of reviews?" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 55, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "<AxesSubplot: >" | |
| ] | |
| }, | |
| "execution_count": 55, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| }, | |
| { | |
| "data": { | |
| "image/png": "iVBORw0KGgoAAAANSUhEUgAAA4QAAALmCAYAAAAaBVreAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/P9b71AAAACXBIWXMAAA9hAAAPYQGoP6dpAADBlklEQVR4nOzddXRUV9cG8GcmnhB3JSTECIFAoEgDFCnuFCuFQnEtVqy4v7RQXJvi7lDcKcUhEIgAwSXuRMe+P8I3YWDSdlqSSXKf31qz1pubfe6cM+80zJ6977kihUKhABEREREREQmOWNsTICIiIiIiIu1gQkhERERERCRQTAiJiIiIiIgEigkhERERERGRQDEhJCIiIiIiEigmhERERERERALFhJCIiIiIiEigmBASEREREREJFBNCIiIiIiIigWJCSEREREREJFBMCImIiIiIiLTsxo0bGDRoEIKDg+Hj44PTp0//7Zhr166hQ4cOqFy5Mr788kvs27dP4+dlQkhERERERKRlWVlZ8PHxwbRp0/5R/MuXLzFw4EDUqlULBw8exLfffovJkyfjjz/+0Oh5df/NZImIiIiIiOjTadCgARo0aPCP43fs2AEXFxdMmDABAODp6Ylbt25hw4YNqFev3j8+DyuERERERERERSAvLw9v375VeeTl5X2Sc9+5cwd16tRRORYcHIw7d+5odJ4SUyGUJD7R9hQER7L9Z21PQXBELm7anoLgiCpU1vYUBEfH3lPbUxAcRW6mtqcgOI0/H6/tKQjO1YQobU9BcCR5r7U9hX+lJOUVa7YfwfLly1WODRs2DMOHD//P505MTISNjY3KMRsbG7x9+xY5OTkwNDT8R+cpMQkhERERERFRWTJw4ED06dNH5Zi+vr6WZqMeE0IiIiIiIqIioK+vX2QJoI2NDRITE1WOJSYmoly5cv+4OggwISQiIiIiorJELtP2DIpFYGAgLl68qHLs8uXLCAwM1Og83FSGiIiIiIhIyzIzMxEZGYnIyEgAwKtXrxAZGYk3b94AABYuXIhx48Yp47t164aXL19iwYIFePz4MbZu3Ypjx46hd+/eGj0vK4RERERERERadv/+ffTq1Uv587x58wAAHTp0wPz585GQkICYmBjl711dXbFmzRrMmzcPmzZtgoODA2bPnq3RLScAQKRQKBSfZgn/TUnaDUgouMto8eMuo8WPu4wWP+4yWvy4y2jx4y6jxY+7jBa/UrvLaNwDbU9BSc/eR9tT+FtsGSUiIiIiIhIotowSEREREVHZIZdrewalCiuEREREREREAsWEkIiIiIiISKDYMkpERERERGWGQsGWUU2wQkhERERERCRQTAiJiIiIiIgEii2jRERERERUdnCXUY2wQkhERERERCRQTAiJiIiIiIgEii2jRERERERUdnCXUY2wQkhERERERCRQrBASEREREVHZIZdpewalCiuEREREREREAsWEkIiIiIiISKDYMkpERERERGUHN5XRCCuEREREREREAsWEkIiIiIiISKDYMkpERERERGWHnC2jmmCFkIiIiIiISKBYISQiIiIiojJDwU1lNMIKIRERERERkUAxISQiIiIiIhIotowSEREREVHZwU1lNMIKIRERERERkUAxISQiIiIiIhIotowSEREREVHZwV1GNcIKIRERERERkUCxQkhERERERGWHXKbtGZQqrBASEREREREJFBNCIiIiIiIigWLL6L9w8849rN+2BxFR0UhISsaSeVPQuH5dbU+r1NoZ9hIbQ18gKSsP3jblML6+Nyrbm6uN7bfvFm69Sf3oeHB5ayxrEwgAyMqTYumVxzj3JAFpORI4mRmie1VXdK7sUoSrKF12XInExgv3kfQ2G96OlhjftjYCXG0Ljd9yKRy7r0YhNjUTFiYGaFLZHSOaB8FA7+M/Ib+dD8PS47fw9eeVMK5NraJcRqmy48QlbDx8HompGfAu74QJfTogoKKb2liJVIaQA2dw+OJNxCenwd3RFiN7tMbngb7KmJD9Z3Dm+j08fRMPA309BHqXx8gereHuZFdMKyr5tu8/ivU79iMxORU+Fd0xaUR/BPh5q42VSKX4deteHDxxFvEJyXB3c8boAb0QXKu6MiYzKxvLQrbizKVrSE5Jg69XBUwY3g8Bvl7FtaQSb/uhk9iw5wgSk9Pg4+GGiUO+RYCvp9pYiVSKX3ccwqHTfyA+MQXuLo4Y1bcbgmtWVcY06/U93sQlfjS2a5smmDysT5GtozTp8G07dB/cBVa2Vngc8RiLpyxD5J0HamPdvcuj79je8KniDUdXByydtgK7f92nErPr6lY4ujp8NHbfhoP45celRbKGkmzwoG8xevRgODjYIiwsAiNHTsGNm3cKje/UqTWmT/8B7uVdEB39FBMn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kLuLvm/37kOwtbHCtKlj4eBgi7t3w9G69TeIj8/faMbV1Qny9xKPK1dvomevYZgxYxxmzxqPR9FP0emrvgh/b+fcNq2bIiTkF+XP27auAgDMnLUQs2YtQk5OLoI//wwjhveDpaU54uIScenSVdRv0A4JvOcpFRGRQqH4V410EokEKSn5f3AsLS2hp/ffvpGWJD75+yD6pCTbf9b2FARH5OKm7SkIjqhC5b8Pok9Kx95T21MQHEVupranIDiNPx//90H0SV1NiNL2FARHkvda21P4V3LDSs7OuAZVmml7Cn/rX3+tqaenBzs7tkcSEREREVHJoVDItD2FUkXYuz0QEREREREJGBNCIiIiIiIigeKV8EREREREVHbwPoQaYYWQiIiIiIhIoFghJCIiIiKisoP3IdQIK4REREREREQCxYSQiIiIiIhIoNgySkREREREZQc3ldEIK4REREREREQCxYSQiIiIiIhIoNgySkREREREZYdcpu0ZlCqsEBIREREREQkUE0IiIiIiIiKBYssoERERERGVHdxlVCOsEBIREREREQkUK4RERERERFR2yFkh1AQrhERERERERALFhJCIiIiIiEig2DJKRERERERlBzeV0QgrhERERERERALFhJCIiIiIiEig2DJKRERERERlB3cZ1QgrhERERERERALFCiEREREREZUdrBBqhBVCIiIiIiIigWJCSEREREREJFBsGSUiIiIiojJDoZBpewqlCiuEREREREREAsWEkIiIiIiISKDYMkpERERERGUHdxnVCCuEREREREREAsUKIRERERERlR0KVgg1wQohERERERGRQDEhJCIiIiIiEii2jBIRERERUdnBTWU0wgohERERERGRQDEhJCIiIiIiEqgS0zIq2f6ztqcgOHrdx2p7CoIjj3uq7SkIjvzpXW1PQXAkF37X9hQEJ+/6Q21PQXAk3MWw2Cm0PQEqPfjfp0ZYISQiIiIiIhIoJoREREREREQCVWJaRomIiIiIiP4z7jKqEVYIiYiIiIiIBIoVQiIiIiIiKju4qYxGWCEkIiIiIiISKCaEREREREREAsWWUSIiIiIiKju4qYxGWCEkIiIiIiISKCaEREREREREAsWWUSIiIiIiKjvYMqoRVgiJiIiIiIgEihVCIiIiIiIqO3gfQo2wQkhERERERCRQTAiJiIiIiIgEii2j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W7NmDZYvX65ybNiwYRg+fLjKsZSUFMhkMlhbW6sct7a2xpMnT9Seu02bNkhJScHXX38NhUIBqVSKbt26YdCgQRrNkQkhERERERGVHQrNWjWL0sCBA9GnTx+VY/r6+p/k3NeuXcOaNWswbdo0VKlSBS9evMCcOXOwYsUKDB069B+fhwkhERERERFREdDX1/9HCaClpSV0dHQ+2kAmKSkJNjY2ascsWbIEbdu2RefOnQEAPj4+yMrKwtSpUzF48GCIxf/s6kBeQ0hERERERKRF+vr68Pf3x5UrV5TH5HI5rly5gmrVqqkdk5OT81HSp6OjAwBQKBT/+LlZISQiIiIiojJDIf/nyVBJ0qdPH4wfPx6VK1dGlSpVsHHjRmRnZ6Njx44AgHHjxsHe3h5jxowBADRs2BDr169HpUqVlC2jS5YsQcOGDZWJ4T/BhJCIiIiIiEjLWrZsieTkZCxduhQJCQnw8/PDr7/+qmwZjYmJUakIDh48GCKRCIsXL0ZcXBysrKzQsGFDjBo1SqPnFSk0qScWoaxlQ7Q9BcHR6z5W21MQHHncU21PQXDkT+9qewqCo3j8UNtTEJy863zNi1vzcyVn0wqhuJn4SNtTEBxp3mttT+FfyVr9vbanoGQ8aIm2p/C3eA0hERERERGRQDEhJCIiIiIiEiheQ0hERERERGVHCboPYWnACiEREREREZFAMSEkIiIiIiISKLaMEhERERFR2VFK70OoLawQEhERERERCRQTQiIiIiIiIoFiyygREREREZUdcu4yqglWCImIiIiIiASKFUIiIiIiIio7WCHUCCuEREREREREAsWEkIiIiIiISKDYMkpERERERGWHgvch1AQrhERERERERALFhJCIiIiIiEig2DJKRERERERlB3cZ1QgrhERERERERALFCiEREREREZUdcm4qowlWCImIiIiIiASKCSEREREREZFAsWWUiIiIiIjKDgU3ldEEK4REREREREQCxYSQiIiIiIhIoNgySkREREREZQd3GdUIK4REREREREQCxYSQiIiIiIhIoEpMy6jIxU3bUxAcedxTbU9BcMT2FbQ9BcERGZlqewqCIzM01vYUBEfn0QttT0FwRKJsbU+BiAqhkHOXUU2wQkhERERERCRQJaZCSERERERE9J9xUxmNsEJIREREREQkUEwIiYiIiIiIBIoto0RERERE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/++D6JMSe9fU9hQER2zPFrPipkhP/Psg+qRkT25rewqCIz1w6O+D6JNquj/774Pok7qR8PDvg+iTkua91vYU/pWMQc21PQUl09XHtT2Fv6VRv8vAgQMLTQaB/ITw3ySDREREREREn4JCoSgxj9KAF0AQEREREREJFBNCIiIiIiIigeLd0omIiIiIqOzgpjIaYYWQiIiIiIhIoJgQEhERERERCRRbRomIiIiIqOxgy6hGWCEkIiIiIiISKFYIiYiIiIiozFCwQqgRVgiJiIiIiIgEigkhERERERGRQLFllIiIiIiIyg62jGqEFUIiIiIiIiKBYkJIREREREQkUGwZJSIiIiKiskOu7QmULqwQEhERERERCRQrhEREREREVGbwPoSaYYWQiIiIiIhIoJgQEhERERERCRRbRomIiIiIqOxgy6hGWCEkIiIiIiISKCaEREREREREAsWWUSIiIiIiKjt4H0KNsEJIREREREQkUEwIiYiIiIiIBIoto0REREREVGbwxvSaYYWQiIiIiIhIoFghJCIiIiKisoObymiEFUIiIiIiIiKBYkJIREREREQkUGwZJSIiIiKiMoObymiGFUIiIiIiIiKBYkJIREREREQkUGwZJSIiIiKisoO7jGqEFUIiIiIiIiKBYoWQiIiIiIjKDAUrhBphhZCIiIiIiEigmBASEREREREJVIlpGRVVqKztKQiO/OldbU9BcERGptqeguCIzGy0PQXBEVcI1PYUBEe3WrS2pyA44v23tT0FIioMW0Y1wgohERERERGRQDEhJCIiIiIiEqgS0zJKRERERET0X3GXUc2wQkhERERERCRQTAiJiIiIiIgEii2jRERERERUdrBlVCOsEBIREREREQkUK4RERERERFRmcFMZzbBCSEREREREJFBMCImIiIiIiASKLaNERERERFRmsGVUM6wQEhERERERCRQTQiIiIiIiIoFiyygREREREZUZbBnVDCuEREREREREAsWEkIiIiIiIyg6FqOQ8NLR161Y0atQIAQEB6Ny5M8LCwv4yPj09HTNmzEBwcDAqV66MZs2a4cKFCxo9J1tGiYiIiIiItOzo0aOYN28eZsyYgapVq2Ljxo3o27cvjh8/Dmtr64/i8/Ly0KdPH1hbW2PJkiWwt7fHmzdvYGZmptHzMiEkIiIiIiLSsvXr16NLly7o1KkTAGDG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93lwjSqYO3aA6vvc2wO/TB6BJRt2Y822g3B2sMG4gT3QqmHdYl9fadDMzxkp2XlYdekBEjNz4WNnhpWda8H6XctoTHo23m/46F/XCyIRsOKPKMS/zYGlkT7qV3TAsHq89rswZw6dh4WVBfqN7QMrW0s8Cn+MMd+MR8q7jWbsneygeG+jOxt7a2w4uU7589eDu+LrwV1x+/IdDO88GkD+rSkm9puKQRP6offIXoh5GYMl01bi5P4zxbu4EmD37kOwtbHC9Klj4eBgi7t3w9Gq9TeIj8+vfLu5OkH+3ut75epNfNNrGGbOGIfZs8bjUfRTdPqqL8LDC7rn2rRuit9CflH+vH3rKgDAzFkLMXNWftI9cEBPTJ1S8Df//Ln9AIDv+o7Cps27im7BJFgiheKfN2Js374djo6O+OKLL9T+ftGiRUhKSsKcOYXfbLMwOXd+13gM/TeKVw//Pog+KZ1K3HiiuInM2M5X3ORp6ndmpqIjP79H21MQnCZTeY+44nYtoXRellSaSfNe/31QCfQkoKm2p6Dkca/kb8akUYWwe/fuf/n70aNH/6fJEBERERER/RcKBVtGNcEb0xMREREREQkUE0IiIiIiIiKB0niXUSIiIiIiopJKIf/7GCrACiEREREREZFAsUJIRERERERlhpybymiEFUIiIiIiIiKBYkJIREREREQkUGwZJSIiIiKiMoP3IdQMK4REREREREQCxYSQiIiIiIhIoNgySkREREREZYZCzpZRTbBCSEREREREJFCsEBIRERERUZmhUGh7BqULK4REREREREQCxYSQiIiIiIhIoNgySkREREREZQY3ldEMK4REREREREQCxYSQiIiIiIhIoNgySkREREREZYZcwZZRTbBCSEREREREJFBMCImIiIiIiASKLaNERERERFRmKNgyqhFWCImIiIiIiASKFUIiIiIiIiozFAptz6B0YYWQiIiIiIhIoJgQEhERERERCRRbRomIiIiIqMzgfQg1wwohERERERGRQDEhJCIiIiIiEii2jBIRERERUZnB+xBqhhVCIiIiIiIigWKFkIiIiIiIygzeh1AzrBASEREREREJFBNCIiIiIiIigWLLKBERERERlRm8D6FmWCEkIiIiIiISKCaEREREREREAlViWkZ17D21PQXBkVz4XdtTEByZobG2pyA44gqB2p6C4IjN7bQ9BcFRVKuv7SkIjp7ojranIDhsAqR/ivch1AwrhERERERERAJVYiqERERERERE/xU3ldEMK4REREREREQCxYSQiIiIiIhIoNgySkREREREZYZC2xMoZVghJCIiIiIiEigmhERERERERALFllEiIiIiIiozuMuoZlghJCIiIiIiEigmhERERERERALFllEiIiIiIiozFGwZ1QgrhERERERERALFCiEREREREZUZcm1PoJRhhZCIiIiIiEigmBASEREREREJFFtGiYiIiIiozFCAm8poghVCIiIiIiIigWJCSEREREREJFBsGSUiIiIiojJDrtD2DEoXVgiJiIiIiIgEihVCIiIiIiIqM+TcVEYjrBASEREREREJFBNCIiIiIiIigWLLKBERERERlRm8D6FmWCEkIiIiIiISKCaEREREREREAsWWUSIiIiIiKjPk2p5AKcMKIRERERERkUAxISQiIiIiIhIotowSEREREVGZwV1GNcMKIRERERERkUCxQkhERERERGUGN5XRDCuEREREREREAsWEkIiIiIiISKDYMkpERERERGUGW0Y1wwohERERERGRQLFC+IHt+49i/Y79SExOhU9Fd0wa0R8Bft5qYyVSKX7duhcHT5xFfEIy3N2cMXpALwTXqq6MyczKxrKQrThz6RqSU9Lg61UBE4b3Q4CvV3EtqcTTrdIAukFNITI2gzzxFSTnd0Ie90xtrEGn0dBx+fj/D9nTe8g9tAIAYPz9arVj8/7YC+ntU59s3qXZjgt3sPH0LSSlZ8Lb2RbjuzREgLtDofFbzt7G7j/CEJuSDgsTIzSp5oUR7YJhoJf/J6TFlBDEJKd/NK5L/aqY1LVRka2jNNlx+DQ27D2GxJQ0eFdwxcTB3yDAx1NtrEQqRciu33Ho9CXEJ6XC3cUBI/t0QXCNKipxcYnJWLx+Fy7dDENObh5cHe0xa1Q/+HtXKI4llQk379zD+m17EBEVjYSkZCyZNwWN69fV9rRKrR0n/8TGwxeQmJYBbzdHTOjdHgEV3dTGSqQyhBw8i8MXbyI+JR3ujrYY2b0lPg/0VcaEHDiLMzfu4embBBjo6yLQ2x0ju7eEu5NdcS2pxGv/bVt0G9QFVrZWiI58jKVTliPqzgO1se7e5dFnbG/4BHjBwdUBy6etxJ6QfSoxO65sgYPrx/8e7N9wEEsmLyuSNZRkgwd9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", | |
| "text/plain": [ | |
| "<Figure size 1200x900 with 2 Axes>" | |
| ] | |
| }, | |
| "metadata": {}, | |
| "output_type": "display_data" | |
| } | |
| ], | |
| "source": [ | |
| "corr = books_df.select([\n", | |
| " 'RatingDistTotal', \n", | |
| " 'RatingDist1', \n", | |
| " 'RatingDist2', \n", | |
| " 'RatingDist3', \n", | |
| " 'RatingDist4', \n", | |
| " 'RatingDist5', \n", | |
| " 'CountsOfReview', \n", | |
| " 'PagesNumber',\n", | |
| " ]).corr()\n", | |
| "plt.figure(figsize=(12, 9))\n", | |
| "sns.heatmap(corr, annot=True)" | |
| ] | |
| }, | |
| { | |
| "attachments": {}, | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "Seems, the number of reviews doesn't depend on number of pages and it's good news for authors" | |
| ] | |
| }, | |
| { | |
| "attachments": {}, | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "#### 5. Which years had the biggest number of books written?" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 56, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "Text(0, 0.5, 'Number of books')" | |
| ] | |
| }, | |
| "execution_count": 56, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| }, | |
| { | |
| "data": { | |
| "image/png": "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eDyhm/Hjjz8qIiJC/fv315YtW1S+fHl17txZTz31lCTpxIkTio6OVnh4uKPG19dXtWrV0vbt29W6dWtt375dxYsXdwQDkhQeHi673a5du3apefPm2rFjh+rUqSMfHx/HmIiICM2cOVMJCQny8/PTjh071L17d6f5RURE6Pvvv/f4fl1/WAQAAEBmihQposDAwJuq3b9/vyTdVH12aulN77zunZSUdFO1AP6Px+HA9d/i57aoqCh9/vnn6tGjh/7xj39o9+7dGjt2rAoVKqT27dsrOjpaklS6dGmnutKlSysmJkaSFBMTo1KlSjmt9/b2lp+fn6M+JiZGlSpVchpTpkwZxzo/Pz/FxMQ4lmXUxxNBQUE3nYwCAAC4y9/fP19q6U3vgtIbsILU1FS3vqD2OBzIS8YY1axZU//85z8lXU0TDx48qC+++ELt27fP59ndPC8vL8IBAACQ67LzfiO771XoTe+C0BvA//E4HGjSpIlsNpvL9T/88EO2JnS9smXLqkqVKk7L7r//fn377beO9ZIUGxurcuXKOcbExsYqICBA0tU9AOLi4pxuIyUlRQkJCY76MmXKpNsD4Nrv1/YWyGhMbGxsur0JAAAAAAAoaDwOB5577jmn31NSUvTHH3/ol19+Uc+ePXNsYpIUFhamo0ePOi07duyYKlasKEmqVKmSypYtq40bN6p69eqSrl55YOfOnXrmmWckSaGhoTp37pz27NmjmjVrSpI2bdqktLQ0BQcHS5JCQkI0ZcoUJScnq1ChQpKkDRs26L777nNcGSEkJESbNm1yOu/Ahg0bFBISkqP3GQAAAACAvJbtcOCaRYsWac+ePdme0I29nnnmGc2YMUOPPfaYdu3apcWLFzuuDmCz2dStWzd99NFHuueee1SpUiVNnTpV5cqVc1y9oEqVKmrYsKFGjBih0aNHKzk5WW+99ZZat26t8uXLS5Latm2rDz74QG+88YZefPFFHTx4UPPnz9fQoUMdc+nWrZueffZZffrpp2rUqJG+/vpr7dmzx+MrFQAAAAAAcKux59QNPfzww47d/XNKcHCwpk+frlWrVqlNmzb68MMPNWzYMP397393jHnxxRfVtWtXjRw5Uk888YQuXryoWbNmqXDhwo4xkyZN0v3336/nnntOvXr1UlhYmNOHel9fX82ePVsnTpxQhw4dNGHCBL388suOyxhKV/dimDRpkv7973/r8ccf17fffqsPPvhA1apVy9H7DAAAAABAXsuxExJ+8803KlGiRE7dnEPjxo3VuHFjl+ttNpsGDBigAQMGuBxTokQJvffee5n2CQgI0GeffZbpmMcee0yPPfZY5hMGAAAAAKCA8TgcaNeundMJCY0xiomJUVxcnN58880cnRwAAAAAAMh9HocD147lv8Zms6lUqVKqW7duuisLAAAA4Ko0Y2TP5IpP2R0PAEB2eBwO9O3bNzfmAQAAcFuz22x6b/Pviko8n+XYyr7FNKheWB7MCgCAq3LsnAMAAADIXFTieR2JT8jvaQAAkI7b4UBAQIDTuQYyYrPZ9Mcff2R7UgAAAAAAIO+4HQ5Mnz7d5bodO3ZowYIFSktLy5FJAQAAAACAvON2OHDjiQgl6ciRI3rvvfe0du1atW3bVv3798/RyQEAAAAAgNx3U+ccOH36tKZNm6YVK1YoIiJCK1asULVq1XJ6bgAAAAAAIA94FA4kJiZqxowZWrhwoapXr665c+eqTp06uTU3AAAAAACQB9wOB2bOnKlZs2apTJkyeu+99zI8zAAAAAAAABQ8bocD7733nu644w7dfffdWrFihVasWJHhuMxOXAgAAAAAAG49bocD7dq1y/JShgAAAAAAoOBxOxyYMGFCbs4DAAAAAADkE3t+TwAAAAAAAOQvwgEAAAAAACyOcAAAAAAAAIsjHAAAAAAAwOIIBwAAAAAAsDjCAQAAAAAALI5wAAAAAAAAiyMcAAAAAADA4ggHAAAAAACwOMIBAAAAAAAsjnAAAAAAAACLIxwAAAAAAMDiCAcAAAAAALA4wgEAAAAAACyOcAAAAAAAAIsjHAAAAAAAwOIIBwAAAAAAsDjCAQAAAAAALI5wAAAAAAAAiyMcAAAAAADA4ggHAAAAAACwOMIBAAAAAAAsjnAAAAAAAACLIxwAAABwQ5oxeVIDAEB+8M7vCQAAABQEdptNkzZv0YnERLfGV/L11eB6D+byrAAAyBmEAwAAAG46kZiow/Hx+T0NAAByHIcVAAAAAABgcYQDAAAAAABYHOEAAAAAAAAWRzgAAAAAAIDFEQ4AAAAAAGBxhAMAAAAAAFgc4QAAAAAAABZHOAAAAAAAgMURDgAAAAAAYHGEAwAAAAAAWBzhAAAAAAAAFkc4AAAAAACAxREOAAAAAABgcYQDAAAAAABYHOEAAAAAAAAWRzgAAAAAAIDFEQ4AAAAAAGBxhAMAAAAAAFgc4QAAALCMNGNydTwAAAWVd35PAAAAIK/YbTZN2rxJUYnnshxb2be4Btd7KA9mBQBA/iMcAAAAlhKVeE6H48/m9zQAALilcFgBAAAAAAAWRzgAAAAAAIDFEQ4AAAAAAGBxhAMAAAAAAFgc4QAAAAAAABZHOAAAAAAAgMURDgAAAAAAYHGEAwAAAAAAWBzhAAAAKDDSjMmTGgAArMY7vycAAADgLrvNpkmbf1VUYoJb4yv7+mlwvQa5PCsAAAo+wgEAAFCgRCUm6HD82fyeBgAAtxUOKwAAAAAAwOIIBwAAAAAAsDjCAQAAAAAALI5wAAAAAAAAiyMcAAAAAADA4ggHAAAAAACwOMIBAAAAAAAsjnAAAAAAAACLIxwAAAAAAMDiCAcAAAAAALA4wgEAAAAAACyOcAAAAAAAAIsjHAAAAAAAwOIIBwAAAAAAsDjCAQAAAAAALI5wAAAAAAAAiyMcAAAAeSrNpOXqeAAA4Dnv/J4AAACwFrvNrkm//ayoxIQsx1b29dPgug/nwawAALA2wgEAAJDnohITdDg+Lr+nAQAA/j8OKwAAAAAAwOIKVDjwySefyN/fX2+//bZj2eXLlzV69GjVq1dPoaGh6tevn2JiYpzqTp48qV69eqlWrVqqX7++3nnnHaWkpDiN2bx5s9q3b6+aNWuqefPmWrZsWbr+ixYtUpMmTRQUFKQnn3xSu3btyp07CgAAAABAHiow4cCuXbv0xRdfyN/f32n5uHHjtHbtWk2ZMkULFizQmTNn1LdvX8f61NRU9e7dW8nJyfriiy80YcIELV++XO+//75jTFRUlHr37q169erpq6++0nPPPafhw4dr/fr1jjFff/21xo8frz59+mj58uUKCAhQz549FRsbm/t3HgAAAACAXFQgzjlw4cIFvfrqqxo7dqw++ugjx/LExEQtXbpUkyZNUv369SVdDQtatWqlHTt2KCQkRL/88osOHTqkOXPmqEyZMqpevboGDBigSZMmqW/fvvLx8dEXX3yhSpUq6fXXX5ckValSRdu2bdPcuXPVsGFDSdKcOXP01FNPqWPHjpKk0aNHa926dVq6dKl69erl0f1JTU3NiYcFAIACycvLy+Oaa387b6Y2u/X0pje9C0ZvABlz9zlSIMKBMWPGqFGjRgoPD3cKB/bs2aPk5GSFh4c7llWpUkUVKlRwhAM7duxQtWrVVKZMGceYiIgIjRo1SocOHVJgYKB27NjhCBeuHzNu3DhJ0pUrV7R371717t3bsd5utys8PFzbt2/3+P7s3r3b4xoAAG4HRYoUUWBgoMd1+/fvl6Sbqs1uPb3pTe9bv3dSUtJN1QL4P7d8OLBq1Sr98ccf+vLLL9Oti4mJUaFChVS8eHGn5aVLl1Z0dLRjzPXBgCTH71mNOX/+vC5duqSEhASlpqaqdOnS6focOXLE4/sUFBR008koAABWdONhhXlZT2960/v27Q1YQWpqqltfUN/S4cD//vc/vf322/r0009VuHDh/J5OjvHy8iIcAADAA9n9u5mdenrTm963b28A/+eWDgf27t2r2NhYdejQwbEsNTVVW7Zs0aJFizR79mwlJyfr3LlzTnsPxMbGqmzZspKu7gFw41UFrl3N4PoxN17hICYmRsWKFdMdd9whu90uLy+vdCcfjI2NTbfHAQAAAAAABc0tfbWChx56SP/5z3+0YsUKx0/NmjXVtm1bx/8XKlRIGzdudNQcOXJEJ0+eVEhIiCQpJCREBw4ccPpgv2HDBhUrVkwPPPCAY8ymTZucem/YsMFxGz4+PqpRo4ZTn7S0NG3cuFGhoaG5dO8BAAAAAMgbt/SeA8WKFVO1atWclt15550qUaKEY3nHjh01YcIE+fn5qVixYho7dqxCQ0MdH+wjIiL0wAMPaMiQIXr11VcVHR2tKVOmqEuXLvLx8ZEkPf3001q0aJEmTpyojh07atOmTVq9erU+/vhjR98ePXrotddeU82aNRUcHKx58+YpKSnJaa8GAAAAAAAKols6HHDHsGHDZLfb1b9/f125ckURERF68803Heu9vLw0Y8YMjRo1Sp06dVKRIkXUvn179e/f3zGmcuXK+vjjjzV+/HjNnz9fd911l8aOHeu4jKEktWrVSnFxcXr//fcVHR2t6tWra9asWRxWAAAAAAAo8ApcOLBgwQKn3wsXLqw333zTKRC4UcWKFTVz5sxMb7devXpasWJFpmO6du2qrl27uj1XAAAAAAAKglv6nAMAAAAAACD3EQ4AAAAAAGBxhAMAAMAjaSYtT2oAAEDeKXDnHAAAAPnLbrPr3d/WKiox3q3xlX1L6NW6jXN3UgAAIFsIBwAAgMeiEuN1OD42v6cBAAByCIcVAAAAAABgcYQDAAAAAABYHOEAAAAAAAAWRzgAAAAAAIDFEQ4AAAAAAGBxhAMAAAAAAFgc4QAAAAAAABZHOAAAAAAAgMURDgAAAAAAYHGEAwAAAAAAWBzhAAAAAAAAFkc4AAAAAACAxREOAAAAAABgcYQDAAAAAABYHOEAAAAAAAAWRzgAAAAAAIDFEQ4AAAAAAGBxhAMAAAAAAFgc4QAAAAAAABZHOAAAAAAAgMURDgAAAAAAYHGEAwAAAAAAWBzhAAAAFpRm0nJ1PAAAKFi883sCAAAg79ltdr275XtFJZ7Ncmxl35J69cFmeTArAACQXwgHAACwqKjEszocH5Pf0wAAALcADisAAAAAAMDiCAcAAAAAALA4wgEAAAAAACyOcAAAAAAAAIsjHAAAAAAAwOIIBwAAAAAAsDjCAQAAAAAALI5wAAAAAAAAiyMcAAAAAADA4ggHAAAAAACwOMIBAAAAAAAsjnAAAAAAAACLIxwAAAAAAMDiCAcAAAAAALA4wgEAAAAAACyOcAAAgAIozaTlSQ0AALAG7/yeAAAA8JzdZte7W75VVGKcW+Mr+5bSqw8+msuzAgAABRXhAAAABVRUYpwOx0fn9zQAAMBtgMMKAAAAAACwOMIBAAAAAAAsjnAAAAAAAACLIxwAAAAAAMDiCAcAAAAAALA4wgEAAAAAACyOcAAAAAAAAIsjHAAAAAAAwOIIBwAAAAAAsDjCAQAAAAAALI5wAAAAAAAAiyMcAAAgn6SZtFwdDwAA4C7v/J4AAABWZbfZ9e6W/yoqMTbLsZV9S+vVB9vkwawAAIAVEQ4AAJCPohJjdTjhTH5PAwAAWByHFQAAAAAAYHGEAwAAAAAAWBzhAAAAAAAAFkc4AAAAAACAxREOAAAAAABgcYQDAAAAAABYHOEAAAAAAAAWRzgAAAAAAIDFEQ4AAAAAAGBxhAMAAAAAAFgc4QAAAAAAABZHOAAAAAAAgMURDgAAAAAAYHGEAwAAAAAAWBzhAAAANynNpOVJDQAAQG7zzu8JAABQUNltdk3cskJRiTFuja/sW0ZDHmyXu5MCAAC4CYQDAABkQ1RijA4nnMrvaQAAAGQLhxUAAAAAAGBxhAMAAAAAAFgc4QAAAAAAABZHOAAAAAAAgMURDgAAAAAAYHGEAwAAAAAAWBzhAAAAAAAAFkc4AAAAAACAxREOAAAsLc2k5ep4AACAgsA7vycAAEB+stvsmrj134pKjM5ybGXfshpSp1MezAoAACBvEQ4AACwvKjFahxNO5vc0AAAA8g2HFQAAAAAAYHG3dDjw8ccfq2PHjgoNDVX9+vX18ssv68iRI05jLl++rNGjR6tevXoKDQ1Vv379FBMT4zTm5MmT6tWrl2rVqqX69evrnXfeUUpKitOYzZs3q3379qpZs6aaN2+uZcuWpZvPokWL1KRJEwUFBenJJ5/Url27cv5OAwAAAACQx27pcOC3335Tly5dtHjxYs2ZM0cpKSnq2bOnLl686Bgzbtw4rV27VlOmTNGCBQt05swZ9e3b17E+NTVVvXv3VnJysr744gtNmDBBy5cv1/vvv+8YExUVpd69e6tevXr66quv9Nxzz2n48OFav369Y8zXX3+t8ePHq0+fPlq+fLkCAgLUs2dPxcbG5s2DAQAAAABALrmlzzkwe/Zsp98nTJig+vXra+/evXrwwQeVmJiopUuXatKkSapfv76kq2FBq1attGPHDoWEhOiXX37RoUOHNGfOHJUpU0bVq1fXgAEDNGnSJPXt21c+Pj764osvVKlSJb3++uuSpCpVqmjbtm2aO3euGjZsKEmaM2eOnnrqKXXs2FGSNHr0aK1bt05Lly5Vr169PLpfqamp2X1oAAA5xMvLy+Oaa6/jN1Ob3Xp605ve9KZ3xvUAMubuc+SWDgdulJiYKEny8/OTJO3Zs0fJyckKDw93jKlSpYoqVKjgCAd27NihatWqqUyZMo4xERERGjVqlA4dOqTAwEDt2LHDES5cP2bcuHGSpCtXrmjv3r3q3bu3Y73dbld4eLi2b9/u8f3YvXu3xzUAgJxXpEgRBQYGely3f/9+Sbqp2uzW05ve9KY3vdPXJyUl3VQtgP9TYMKBtLQ0jRs3TmFhYapWrZokKSYmRoUKFVLx4sWdxpYuXVrR0dGOMdcHA5Icv2c15vz587p06ZISEhKUmpqq0qVLp+tz4zkQ3BEUFHTTySgAIP/5+/vnWz296U1vetM7Z+uB211qaqpbX1AXmHBg9OjROnjwoD777LP8nkq2eXl5EQ4AQAGW3dfw7NTTm970pje9c7YewFW39AkJrxkzZozWrVunefPm6a677nIsL1OmjJKTk3Xu3Dmn8bGxsSpbtqxjzI1XL7j2e1ZjihUrpjvuuEMlS5aUl5dXupMPxsbGptvjAAAAAACAguaWDgeMMRozZozWrFmjefPmqXLlyk7ra9asqUKFCmnjxo2OZUeOHNHJkycVEhIiSQoJCdGBAwecPthv2LBBxYoV0wMPPOAYs2nTJqfb3rBhg+M2fHx8VKNGDac+aWlp2rhxo0JDQ3PyLgMAAAAAkOdu6XBg9OjRWrlypd577z0VLVpU0dHRio6O1qVLlyRJvr6+6tixoyZMmKBNmzZpz549GjZsmEJDQx0f7CMiIvTAAw9oyJAh2rdvn9avX68pU6aoS5cu8vHxkSQ9/fTTioqK0sSJE3X48GEtWrRIq1evVvfu3R1z6dGjhxYvXqzly5fr8OHDGjVqlJKSktShQ4e8flgAANdJM2l5UgMAAHA7u6XPOfD5559Lkp599lmn5ePHj3d8KB82bJjsdrv69++vK1euKCIiQm+++aZjrJeXl2bMmKFRo0apU6dOKlKkiNq3b6/+/fs7xlSuXFkff/yxxo8fr/nz5+uuu+7S2LFjHZcxlKRWrVopLi5O77//vqKjo1W9enXNmjWLwwoAIJ/ZbXZN3DZXfyaecmv83b53aUjt7rk7KQAAgALmlg4Hrl3WJDOFCxfWm2++6RQI3KhixYqaOXNmprdTr149rVixItMxXbt2VdeuXbOcEwAgb/2ZeEqHE6LyexoAAAAF1i19WAEAAAAAAMh9hAMAAAAAAFgc4QAAAAAAABZHOAAAAAAAgMURDgAAAAAAYHGEAwAAAAAAWBzhAAAAAAAAFkc4AAAAAACAxREOAAAAAABgcYQDAIB8l2bScnU8AAAAMued3xMAAMBus2vitin6M/FElmPv9q2kIbUH5v6kAAAALIRwAABwS/gz8YQOJxzN72kAAABYEocVAAAAAABgcYQDAAAAAABYHOEAAAAAAAAWRzgAAAAAAIDFEQ4AAAAAAGBxhAMAgGxLM6l5UgMAAIDcwaUMAQDZZrd56eMt7+h/iVFujf+bb2X1fvC1XJ4VAAAA3EU4AADIEf9LjNLxhEP5PQ0AAADcBA4rAAAAAADA4ggHAAAAAACwOMIBAAAAAAAsjnAAAAAAAACLIxwAAAAAAMDiCAcAAJKkNJOaq+MBAABw6+JShgAASZLd5qVFm9/RmcSoLMeW862sLvVey4NZAQAAIC8QDgAAHM4kRumv+EP5PQ0AAADkMQ4rAAAAAADA4ggHAAAAAACwOMIBALhN3MwJAjmpIAAAACTOOQAAtw27zUtLN01QzLmsTygoSWWKV1bHh17P5VkBAACgICAcAIDbSMy5KP2PEwoCAADAQxxWAAAAAACAxREOAAAAACjwTJrJ1fHA7Y7DCgAAAAAUeDa7TQd/PqekhKxPtlvEz0tVHy6eB7MCCg7CAQAAAAC3haSEVF2IS8nvaQAFEocVAMAtxNNLC3IpQgAAAOQE9hwAgFuI3eal/26YoFg3LkdYunhltQnnUoQAAADIPsIBAMhBaSZVdptXtmpiz0Xp9FkuRwgAAIC8QzgAADnIbvPSt79OUFxC1t/8S1Ipv8p6tAHf/gMAACB/EQ4AwA3S0lJlt7v/7f+N4+MSohTNN/8AAAAoQAgHAOAGdruXfvhlguLd+Pa/hF9lNY3gm38AAAAUbIQDAJCB+IQoxcTx7T8AAACsgUsZAgAAAABgcYQDAAAAAABYHOEAAAAAAAAWRzgAAAAAAIDFEQ4AuO2kpaXmSQ0AAABwu+BqBQBuO3a7l376eYISEv50a7yf391q9DCXIwQAAIB1EQ4AuC0lJPypWC5FCAAAALiFwwoA3JKMh7v5ezoeAAAAwP9hzwEAtySb3Usbfp6ghPioLMf6laiscA4LAAAAAG4a4QCAW1ZCfJTOcmgAAAAAkOs4rAAAAAAAAIsjHAAAAAAAwOIIBwAAAAAAsDjCAQC54mauHsAVBwAAAID8wQkJAbhk0tJks7ufIV4/3mb30uaf3lFiQtZXG5AkX7/KqtfotZuaJwAAAIDsIRwA4JLNbtfv6ybqfMKfWY4t5ne3wh4Z4rQsMSFK8bFcbQAAAAC41REOAMjU+YQ/lRB7OL+nAQAAACAXcc4BAAAAAAAsjnAAuI2ZtLQ8qQEAAABQsHFYAXAbs9nt2rVuos7Hu3dSwGIlKiv4hvMGAAAAALj9EQ4At7nz8VFK5JwBAAAAADLBYQXALc7T3fw5LAAAAACAp9hzALjF2ex2/fHju7roxqEBd5aorMAmr+bBrAAAAG4fJs3IZrfleg1wKyMcAAqAi/FROs+hAQAAALnCZrfp2NoEXYpPdWv8HSW8dG9jv1yeFZC3CAeAXGbS0mSze3YEz83UAAAA4OZdik9VUmxKfk8DyDeEA0Aus9ntOvjjJCWdde+KAUVKVlbVJoNzeVYAAAAA8H8IB4A8kHQ2Shc4LAAAAADALYr9lgEAAAAAsDjCAQAAAAAALI5wAAAAAAAAiyMcAAAAAIBsMGkmV8cDeYETEgIAAABANtjsNv31fYKunM36Uog+Jb1VsZlfHswK8AzhAAAAAABk05WzKboUk3U4ANyqOKwAcINJS8vV8QAAAACQn9hzAHCDzW7XsR8m6dLZE1mOvaNkJd3bdHAezAoAAAAAcgbhAOCmS2dPKCnmcH5PAwAAAAByHIcVAAAAAEA+uZkrF3C1A+QG9hwAAAAAgHxis9sUvTpeyXHuncywUClvlX2sRO5OCpZEOAAAAAAA+Sg5LkVXom/uSgcmzchmt+XaeFgH4QAAAAAAFFA2u01n/xunlNiswwXv0t4q2aZUjvUmmLi9EA4AAAAAQAGWEpuilNPJHtfdzIf162tsdpvivz6hlLjLWdZ5lyqsEq0qeTxH5B3CAViCSUuTze7Z+TdvpgYAAAAoKGx2m+JXnVJKrHvBgnfpQirR+i6nZSlxl5Vy5lJuTA95jHAAlmCz23VyzWRdjotya3zhUpVVofk/c3lWAAAAQP5KiU1Wypmsv/nH7Y9wAJZxOS5Kl2OO5Pc0AAAAAOCWwz7TAAAAAABYHOEACgyTlpar4wEAAADkDZNm8qTmVut9K+OwAg8tWrRIs2fPVnR0tAICAjRixAgFBwfn97TyjKcn6bt+fHZPCmiz2xXz7VQlx53Isq5QqUoq8+gAj3oBAAAAyBs2u00Jq48qJS7JrfHepYrI77H7HL9n5zKKNrtNCd/+oZS4i272vlN+jwa63augIhzwwNdff63x48dr9OjRqlWrlubNm6eePXvqm2++UenSpfNsHvn9AT3++xVKORuTZZ13yTIq0ayd43eb3a6zaxYqJe60W329S5VXyeZdnZYlx51QcvRR9ycPAAAA4JaUEpeklGj3woEb2ew2JXxz0K1wwbtUEfm1rHpD74tKiT5/U72zE0zcyggHPDBnzhw99dRT6tixoyRp9OjRWrdunZYuXapevXq5fTsmLU3y8vKo940f0M/9sFapZ+OzrPMqWULFmzZ2/G6z25Xww7dKPRvnVl+vkqXk1/RRp2UpZ2OUEnPK/clfXxt3Wskxf91ULQAAAABcczVcuJDnfW12mxK+26XUs1n39ipZVH4tCsae5oQDbrpy5Yr27t2r3r17O5bZ7XaFh4dr+/btbt2GMVePU0kzRue27lLaefd2Y7EXu1NFQ2so9coVSZKXl5dSJaXZ3EufUlNTlZqa6qhNk01pNvf2HrDJlq7eXrKs7G7U20uUTl9b6m/ysrkXjNhLlktX71X6HqXZs95svUpWTFdbqNS9MrZCbvUulEG9T8l73Kr3KVEhXe0dJd3vfUeJ9L2LlLhXcqO+iF/62qJu1kpS0Yzq/e5zq75o8Urpan393O/tWzx9b78S98rmRn3xDObt53efW7WSVDyDuZfwc6+3XwbzLu13r+xu9i6ZQX2Z4u7Vl/JNX1vWzVpJKp1B/V2+98pLWdeXzaC2ou+98najVpLKZ1B/n+89KuTGn6VKGdZWUCG599pSybd8uvp7fcu5VV/RN/3r2r2+ZVXIzVP4ZFxfxq36ir6lMqgt7UHvkhnUl1QhZf23pKJviQxqS7hVe7XeL4N6Pzd7F7/pWtf1xd3s7Zuu9h5fXze3cqlCBvX3+hZ1q76ib9EMau90u3dF3zszmHsRt974VfQt4qLWveNtM66/w636ir53pKu927eQ270r+BbKoN7LrdemCr5e6Wor+HrJS+6dw6h8BvVlfe2yu/EcLe1rT1dbytcum5vP75IZ1Pv5yq364r7p3yv6+tokN59jvr7p3ysWLW6T3HifWjSD2jv9JLn5PvXO4unnfoefZNyovyODWp8SNrdqJcnHL/3cvUvaVdiNeu8S6f+9vErb5e3m3r1eJdPX28vYZbdn/XfMXiqjWi/Z7e69uthLpd/O7aULyW7P+jlqL5n++WkvfYdbtVfr078+uFufcW0RubtDtb1k+te1NJtRmhtPE5vNONXabXaP9yIwaUZp5ubPp3at97XPo67YTFYjIEk6ffq0Hn74YX3xxRcKDQ11LJ84caK2bNmiJUuWZHkbV65c0e7du3NzmgAAAAAApBMUFCQfHx+X69lzIA95e3srKChIdrtdNje/9QcAAAAA4GYZY5SWliZv78w//hMOuKlkyZLy8vJSbGys0/LY2FiVKVPGrduw2+2ZJjUAAAAAAOQHz05bb2E+Pj6qUaOGNm7c6FiWlpamjRs3Oh1mAAAAAABAQcOeAx7o0aOHXnvtNdWsWVPBwcGaN2+ekpKS1KFDh/yeGgAAAAAAN41wwAOtWrVSXFyc3n//fUVHR6t69eqaNWuW24cVAAAAAABwK+JqBQAAAAAAWBznHAAAAAAAwOIIBwAAAAAAsDjCAQAAAAAALI5wAAAAAAAAiyMcAAAAAADA4ggHAAAAAACwOMIBAAAAFBhXrlzRlStX8nsa+Wbz5s26dOlSnve9cuWK/vzzz3x77GNiYhQdHe32+NTUVMXExCguLu6m+iUmJurIkSM6cuSIEhMTb+o28psxRqmpqTddv2zZsny578eOHdPGjRt1/PjxPOl342O0a9cu7dixw+1t/eTJk9q5c6d27dqls2fP3tQcbpXXNZsxxuT3JHDzUlNT5eXl5fh9586dunLlikJCQlSoUCGPbmvo0KEaOHCgypcv7/E8kpOT9ddff6l06dLy9fV1u+7cuXP65ptvdPLkSVWsWFEtW7bMtH7Pnj2qWbOmx/O7JjY2VgcOHFDNmjXl6+urmJgYLV++XMYYNWrUSP7+/lneRlRUlLZt26YzZ87IbrercuXKatCggYoVK5ZlbUpKig4dOuT441a2bFlVqVLF43+rjG73zJkzqlChQrZuxxMxMTG6cuXKTfWcPn26OnfurFKlSt1U7+TkZI8fs5SUFG3evNmxrdWrV8/puXOjuLi4m56fdPW5ea2X3W7XlStX9P3338sYo3r16qlMmTJZ3sbFixe1d+9eRUdHy2azqXLlyqpRo4ZsNluWtdHR0dq5c6diYmIkSWXKlFGtWrVUtmzZm75P18/pwQcfzNbtZIbXNc/k9+sa29pVbGu5u639+uuvmjt3rnbs2KHz589LkooVK6aQkBD16NFD4eHhN3WfDh8+rF69eumHH35wOWbfvn368ccf5efnp8cee8zpb8P58+f19ttva/z48RnWLlmyRFu3blXdunXVsWNHff3115o2bZquXLmixx9/XP379/d4zjVr1tRXX32lKlWquBwTGxur0qVLO36PjIzU3Llzdfz4cZUrV05dunRRvXr1XNYvW7ZM9913n0JDQ3X58mWNHj1aK1askDFGdrtdHTt21PDhw+Xj45Outm3btmrZsqU6dOigv/3tbx7fv/j4eI0cOVK7du1So0aNNHLkSI0cOVJLly6VzWZTrVq19P7776tcuXIZ1q9bt04zZ87Url27lJKSIkkqWrSoGjdurFdeeSXL9y1LlizRnDlzdPToUafl9913n3r06KEnn3zS4/skXd2O2rdvr8jISJdjfvrpJ3333Xfy8/NTx44dnf6NExIS1K9fP82fPz9dXUpKiqZNm6Zt27apbt266t+/v2bNmqXp06crJSVFrVu31ltvvZXhv1dm3NnWdu3apRo1ajheS9euXavZs2fr+PHjKlu2rLp166Z27dq5rP/4448VHBys+vXrKyEhQQMGDNCmTZskSTabTQ0aNNDkyZNVvHjxdLWhoaF67LHH9MQTTygsLMyj+yZJf/31l/r166d9+/YpPDxcU6ZMUb9+/bRx40ZJUqVKlTRz5kzdd999GdYvWrRIs2bN0qlTp5yWh4SE6I033sjy9TY/X9dcMsgXV65cMe+8845p1qyZ6dixo1myZInT+ujoaBMQEOCy/vTp0+bpp5821atXN126dDHx8fGmV69ext/f3/j7+5sWLVqY06dPZ1gbGRmZ4U+NGjXMmjVrHL+78sknn5ikpCRjjDEpKSlmwoQJpkaNGiYgIMAEBgaa119/3Vy5ciXD2j59+pjVq1cbY4w5cOCAqVevnnnooYfMk08+acLDw02DBg3MoUOHXPb29/c3zZo1Mx999JE5deqUy3EZ2bRpkwkJCTH+/v6mQYMGJjIy0jz88MOmRYsW5tFHHzU1a9Y069evd1l/4cIF069fP8djHBAQYBo0aGCqV69uQkJCzMKFC13WpqammsmTJ5s6deo46q/91KlTx/zrX/8yqampHt2f60VGRma6vSxcuNA899xzpn///mbDhg1O62JjY02TJk1c1iYmJppBgwaZRx55xAwZMsRcvnzZjBo1yvEYdOnSxSQmJrqsvfHn3LlzpkaNGmbnzp2OZa6sWrXKXL582fH7ggULzCOPPGICAgJM3bp1zbRp01zWjhkzxvz444/GGGP+97//mZYtW5rq1aub8PBwU716ddOmTZtMt6GAgADTrVs3s3LlSqc5uCMyMtI0aNDABAQEmDZt2piTJ0+aNm3amJCQEBMSEmIefPBBs3PnTpf1qamp5p133jG1atUyAQEBJiAgwLG9NG7c2Pzwww8uay9cuGAGDRpkqlevbgIDA039+vVN/fr1TWBgoKlevboZPHiwuXjxokf358b75mpb43XNWq9rbGtsa3m1rS1btswEBgaaV155xSxdutSsW7fOrFu3zixdutT885//NDVq1DDLly/36P5ck9Xfz/Xr15saNWqY1q1bm0ceecTUrVvXbNy40bE+s21tzpw5JiQkxPTt29c0aNDAfPjhh6Zu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umRYU6hQIV2+fFnS1eM709LSHL9L0qVLl+Tt7e2yZ2pqqtMxkXfeeadSU1OVlJQkSWrQoIGOHDmSYe2FCxdcHhsnXX0srt1ORg4dOiR/f381bdo0w5/Mjsk9ceKE079RWFiY5s2bp8WLF+u9995zWXdNbGys7rnnHklS+fLldccdd+jee+91rK9atWq6Y62uWblypby9vfXhhx/qnnvuUd26dVWvXj3ZbDYFBwerbt26qlu3bqb9r21rUVFRioiIcFoXERHh8mQ19957r3bv3i3p6rGG147luubChQsybpxypVSpUnr++ee1atUqffbZZwoICNCkSZMUERGhIUOGZFhjjHEce3fjfyXJbrdn2vvixYtOxy2XLVtWV65cUUJCgiTp0Ucf1b59+zKsTUtLy/RY6UKFCiktLc3l+itXrqhjx44aOnRohj89evRwWcvrmrVe19jW2NbyalurWrWqvvzyS5e3vXTpUj3wwAMZrrv77rv13HPPacGCBRn+jB071uXtSpKPj4/OnTvntKxt27YaO3asXnnlFa1Zs8Zl7R133OH0t71UqVK68847ncZcOyY+I7Vr19ayZct07NgxPf300/rzzz8zneuNLly4oPPnz6tw4cLpjjUvXLhwpic1bNu2raZMmaJz587p8ccf1wcffKALFy5IkpKSkjRt2jSXx3jfeF6ccuXKqXfv3vr22281d+5cVa5cWW+//bbL3vfcc4/WrVsn6eox+D4+Pvr1118d63/55RfHc+5GFStW1J49exy/7927VzabzXGeHz8/v0wf86CgIH3yyScZjklNTdXMmTMVFBSUYe3999+vFi1aaPz48Rn+ZHV+iaJFiyo2NtZp2UMPPaSPP/5YEydO1IIFC1zW+vr6Om2ngYGBTs+3K1euZHq+onvuuUdffPGFypQpo3bt2mnbtm2ZzvVGhw4d0r59+3THHXdk+Lqf2WP+1FNPaeLEiTp+/Li6du2qiRMnOrb1qKgojRs3Tg0aNMiw9sb75OPjozZt2mju3Llas2aN2rdvr+XLl7vsXbVqVS1dulSStHz5cpUoUUKrVq1yrP/vf//r9J73evfee682bNjg+H3Tpk0qVKiQ43w7Pj4+mT7m+fm6lhnXr+LIVWXKlFFUVJTTi1v58uU1f/58devWTUOHDs20vnTp0oqOjnac6KVLly7y8/NzrD937pyKFCmSYa2Pj4/eeOMN/fTTT3rppZfUuXNnvfjiix7Nf/HixbrzzjtVqFAhxweWay5cuODyhCcvv/yyXnvtNXl7e+vZZ5/VuHHjdPbsWVWpUkVHjx7VtGnT9Pe//91l34yeZOXLl1efPn3Up08fbdy40eUTLSwsTO+9955efPFFffXVVwoMDNRHH32kf/3rX7LZbPrwww8zPXFIUFCQ5s+fr5EjR0qS5s+fr5IlSzpOTHTx4sV0f/SvqVu3riZOnKh333033Unu4uLiNGnSpEw/JFetWlXBwcHq3LlzhusjIyO1ZMmSDNeVLFlSp06dctrWqlWrpnnz5um5557TmTNnXPaVrr5xjouLc2xrTZs2dTopzMWLF13+e5coUUIffPCBPvvsMz3xxBN67bXX1KZNm0z73ejnn3+Wr6+vChcunC5AuXz5sssX3u7du+udd95R6dKl1atXL40dO1YjRozQ/fffr6NHj+rtt99W8+bNXfbN6HZDQ0MVGhqq4cOHa9WqVY4/KDeqUaOGZs6cqf79+2vJkiWqVKmSFi5c6Dhh1cKFC50+2NyoWrVq+u9//6uXXnpJkrR69Wrdeeedjj84aWlpLh/zRx55RCNHjtTbb7+twMBAp3V//PGHRo0apcaNG7vsHRAQoLvuukvt27fPcP2+ffv0wQcfZLiO1zVrva6xrbGt5dW29tprr+kf//iH1q9fr/DwcMeJ9mJjY7Vx40ZFRUXpk08+ybC2Zs2a2rt3rx5//HGXj0lmYW316tW1efPmdPetdevWMsbo9ddfd1l7//33a//+/Y6Tuf30009O648cOeLyQ+41vr6+mjx5spYuXarOnTurX79+bp2UVroaJEtXA+s9e/Y4PU8PHjyY6ZcWffr00YEDB9SsWTPVrFlTW7duVYMGDVS+fHmdOXNGJUqU0KeffpphbWaPZ7169VSvXr10gf31evbsqddff13z5s3T//73P7377rt6++23tXPnTtntdn333Xcun+NdunTR8OHDtXv3bhUuXFhLlizR448/7gjod+7c6fLDniSNGDFCL7zwgho0aKAHH3zQaVvbsmWLChUq5PJ+16xZU3/88YfL2/bx8cn0BI3BwcH6+eefFRIS4rS8bt26mjFjhv7xj3+4rK1SpYr++OMPx0lBv/jiC6f1Bw4ccHzR44q3t7deffVVRUREaPDgwWrbtq3b21r37t0d/+6///67goODHesiIyMzPQlkz5499b///U+tW7dW5cqV9ddff+nRRx+Vl5eXUlNTFRgYqMmTJ2dYm9m2VqlSJQ0cOFADBgxwOaZv377q06ePZs2aJbvdrtmzZ2v48OHatGmT7Ha7du/erUmTJmVY26tXLw0ZMkQbNmxQ4cKF9d133+nZZ591PGa//fabqlWr5rJ3fr6uZYZwIJ889NBD+s9//qP69es7Lb/25ubZZ5/NtD4gIEDbt293PPkGDx7stH7btm1ZnjW4UaNGWrp0qYYOHaqff/7Z7blXqFBBixcvlnT1he7Gs0lv3rzZ5Vk9H3nkEY0ZM0bjxo3TmTNnZIzRiBEjHLf19NNPa9CgQS57Z7Wh169fP91jes2QIUPUu3dvdenSRffff7/mzJmjUaNGOeZevHhxzZo1y+VtDxo0SM8//7y+++47FSpUSNHR0XrnnXcc67dv365GjRplWDt69Gj16tVLDRs2VLVq1ZxeAA4cOKAqVaro448/dtk7LCws3Vlzr1e0aFHVqVMnw3W1a9fWd999l279Aw88oLlz56pbt24ub1e6+k3V7t27VaNGDUlKt7fB7t27df/992d6G507d1bdunU1aNAgrV27NtOxN7r+jdemTZucvmXbsWOH7r777gzrOnTooISEBPXu3dtxKZ/nn3/esb5JkyaZfoDIbFu788479eSTT7o8Y/E///lPvfjii1q2bJlKlCih+fPn64033lBERIRsNpvOnTunGTNmuLz9AQMGqFevXvrxxx9VuHBhbd++Xa+++qpj/fr161W9evUMa0eOHKlBgwapQ4cO8vPzc7zxjouL07lz5xQREeF4c56RRx55JNPLFvn5+bk86zCva9Z6XWNbY1vLq22tXr16+s9//qPPP/9cO3fudLriz8MPP6ynn37a5Yfs119/PdPLgwUEBLjcE0uSnnnmGW3ZsiXDdW3atJExxvHveaPBgwe7DDykq3t6dOrUyeX663Xs2FG1a9fW4MGDM/0W9pobz2h/49VDTpw4oaeeesplvY+Pjz766CP9/PPPWrt2rWOPt7JlyyosLExt2rRxed/at2+vwoULZzq/zK5O8fe//10VK1bUzp07FRISorCwMD3wwAP65JNPdOnSJb311lsuQ8UuXbrIZrNp5cqVunLlijp06KCXX37ZsT44ONjlhz3p6vbwzTffaOXKldq5c6djL54yZcpo4MCBatu2rcu5jx49OtO9lqpUqaIff/zR5fru3btr+/btGa6rV6+ePvroI3311Vcue2e2505KSopeeOEFl+uvV79+fS1btkwjRoxQkSJFZLdnvqP5jWfEv3G7SE5OzjJAHT58uJ555hmtXbtWUVFRTttaeHi4y5Cib9++mT7HpIxD0WsaNmyor7/+Wnv37lWNGjVUqVIlLVq0SIsWLdKlS5f0yiuv6KGHHsqwtlWrVipatKhWrlyppKQkDR061Ok59eijjzoCuozk5+taZriUYT7566+/dOTIETVs2DDD9adPn9aGDRtcvvhlZdeuXbrjjjsyTayuN3/+fG3evFkjRozQXXfddVM9r9mxY4d8fHzSfZN0vdTUVO3du1cnTpxQWlqaypYtqxo1amR5KaPffvtNYWFhmb4AZuXs2bMqWbKk4/eNGzfq0qVLCgkJcVqekTNnzmjdunW6cuWKHnroIZe7+2QkLS1N69evT3fJr5CQEEVERGT54nuz9u3bp71796pjx44Zrj9w4IC+++479e3bN8P18fHxstvtGV5CRrr6Tcgdd9yR6SWRrrly5Yree+89bd68WdOmTVPlypXdvyMZWLt2rby9vV0+j6Sr3wD++uuv6f7YZPbNgXR197LWrVt7fNmfay5evKgjR47ovvvuU9GiRXX58mWtXLlSly9fVnh4eJaByr59+7R69WpduXJFERERLnepc+Xw4cPasWNHum0ts8sRZReva9Z7XZPY1iS2tbza1nD1vcSFCxdUrFgxt7/VBQB3EQ4AAADglpeSkqJDhw45fcNWpUqVTM99kRO19LZeb1eSk5MVHR2d6W7ymc3pzJkzN1Wb3fqC3Nuqj3l+4bCCfHLtxCDXXqT+/PNPLV26VCdPnlSFChX0xBNPZPqtanbq6Z33vb/99ls9/PDDLo9hzUp26ultrd7S1b0O9uzZo3r16qly5co6ePCgFi1apLS0NDVv3jzTPS2yW09va/WWrn5zvG3bNkVHR8tut6ty5cpq0qRJlnvn5ET9rdT77rvvVuPGjS13v/Oid1pamqZOnarPPvss3aEovr6+6tKli/r375/hHnjZqaW39Xpn5fDhw2rfvr0iIyM9rj106NBN12a3viD3vp0f80WLFmnNmjXy8/PT008/7XRYV1xcnJ588sl0h23kRG2mbuoaB8i2rl27mtWrVxtjrl6qpmbNmqZt27Zm4MCBpl27dqZWrVrm999/z5V6eud9b39/fxMWFmaGDx9uduzY4bKHK9mpp7e1en/77bemevXqpm7duiYkJMT8+uuvpk6dOqZ79+7m+eefN9WrV3d5LfHs1tPbWr1jYmLME088YQICAkxgYKDj0koNGjQw1atXN++8847Lvtmtp7e1er/zzjvmoYceMp9//rmJiooySUlJJikpyURFRZkvvvjC1K9f30ycODHHa+ltvd5ZiYyMvOlLxGWnlt63X+958+aZWrVqmdGjR5vBgwebGjVqmBkzZjjWZ3bpyuzUZoVwIJ+EhYWZo0ePGmOufugcN26c0/p//etf5umnn86VenrnfW9/f38zffp0065dO+Pv729at25t5syZY+Li4lz2y6l6elurd/v27c2HH35ojDHmv//9r6lTp46ZPn26Y/3s2bNdXks8u/X0tlbvgQMHmpdfftkkJiaay5cvmzFjxpghQ4YYY4zZsGGDqVu3rpk7d67L3tmpp7e1eoeHh5uff/7Z5W3//PPPpn79+jleS2/r9W7Xrl2mPy1btnT5oSs7tfS2Xu9WrVo5he/btm0zDz30kJkyZYoxJvMP+NmpzUrunAENWUpLS3Oc0fTIkSPpTprUoUOHTM8ymZ16eud9b0l6+umntXz5cn355ZeqU6eOPvjgAz388MMaMGCA0/V7c6Oe3tbpffToUbVt21bS1TPpJiUlqVmzZo71zZs31/Hjx3Olnt7W6v3zzz9r4MCBKlasmHx8fDRo0CCtWrVK58+fV/369TVs2DB9/vnnLntnp57e1up94cKFTC+7V7Zs2XSXus2JWnpbr/ehQ4fk7++vpk2bZvhz/ZVFcrKW3tbrfeLECacrcIWFhWnevHlavHhxuiuD5WRtVjjnQD4JDg7W2rVrVaVKFVWuXFn79u1TQECAY31kZKRKlCiRK/X0zvve16tZs6Zq1qypoUOHavXq1Vq6dKleeOEF/e1vf8v0Ejc5UU/v27930aJFFR8fr0qVKuncuXNKSUlRfHy8Y/3Zs2dVtGhRl/2yU09va/X28fFxOlu63W5Xamqq4zJrYWFh+uuvv1z2zk49va3Vu27dupo4caLeffddxyUzr4mLi9OkSZNUt27dHK+lt/V6V61aVcHBwercuXOG6yMjI7VkyZIcr6W39XqXLFlSp06dcrpcYbVq1TRv3jw999xzOnPmTK7UZoVwIJ8MHDhQL774opKSktSmTRtNmDBBx44dU5UqVXT06FEtWLBAvXr1ypV6eud974wuN1S4cGG1a9dO7dq10/Hjx7Vs2TKXvbNTT29r9a5fv77GjBmjrl276uuvv1aDBg00efJkjRs3TjabTe+++67CwsJc9s5OPb2t1bt27dp6//33NWHCBBUqVEiTJ09W5cqVHSFpXFyc/Pz8XPbOTj29rdV79OjR6tWrlxo2bKhq1aqpdOnSkqTY2FgdOHBAVapU0ccff5zjtfS2Xu+wsDAdPXrU5fqiRYuqTp06OV5Lb+v1rl27tr777rt0Yx544AHNnTtX3bp1y5XarHApw3y0fft2TZgwQTt37nRaXq5cOfXs2VPPPfdcrtXTO297BwQE6Ndff3X8kfJUdurpba3eMTExGjJkiLZv366wsDBNmTJFU6ZM0aJFi2Sz2XT33Xdr5syZuvvuu3O8nt7W6h0VFaXnn39eJ0+elM1mU5EiRTR16lSFh4dLkpYtW6ajR49q0KBBGfbOTj29rdVbunpo3/r167Vz507FxMRIksqUKaOQkBBFRERkevb57NTS23q9gbywb98+7d27Vx07dsxw/YEDB/Tdd9+pb9++OVqbFcKBW0BcXJyioqKUlpamsmXLOu0iktv19M6b3n/99ZcqVKiQ4TfC7shOPb2t1duVqKgoJSUl6f7775e3t+c7jWWnnt63b++kpCRt27ZNycnJqlWrVrrdeLOSnXp6W6s3ACD3EQ4AAADglrdr1y5t377d6dvg0NBQBQcH52otvelNb3rfjr0zQjiQjy5duqT//ve/2rZtm6Kjo2W321W5cmU1a9ZM9evXz9V6etOb3vSmN73pTe+C0Ds2Nlb9+vXT77//rgoVKjgdR37y5EmFhYVp2rRpGR6KlZ1aetOb3vTOzd59+/bV9u3bb6r3zdZmhXAgnxw/flw9evTQpUuX5OPjo1OnTqlRo0Y6e/as9uzZo+bNm+u9995zuTtndurpTW9605ve9KY3vQtK7/79++vMmTMaN26c7r//fqd1R44c0bBhw1SuXDm9//77OVpLb3rTm963Y+9MGeSLF154wYwYMcKkpaUZY4z5+OOPzQsvvGCMMebo0aOmcePG5v3338+VenrTm970pje96U3vgtI7JCTE7N271+Vt796924SEhOR4Lb3pTW963469M0M4kE9q1apljh496vj98uXLpkaNGiYuLs4YY8yaNWtM48aNc6We3vSmN73pTW9607ug9K5bt67ZvHmzy9vetGmTqVu3bo7X0pve9Kb37dg7M1zLI5/4+vrqwoULjt8vXbqklJQUFSpUSJLk7++v6OjoXKmnN73pTW9605ve9C4ovVu1aqXXX39da9as0fnz5x3Lz58/rzVr1mjo0KFq06ZNjtfSm970pvft2Dsznl/fCDmiQYMGmjBhgkaNGiUfHx9NnjxZ1atXV7FixSRJ//vf/zI9iUR26ulNb3rTm970pje9C0rvoUOHKi0tTa+88opSU1MdgUJycrK8vLz0xBNP6LXXXsvxWnrTm970vh17Z4YTEuaT2NhYvfzyy9q5c6dsNpv+9re/afr06QoMDJQkffPNN4qOjtazzz6b4/X0pje96U1vetOb3gWl9zXnz5/Xnj17nC7bVbNmTUfAkJns1NKb3vSm9+3YOyOEA/ns2LFjunLliu6//36XZ/jNrXp605ve9KY3velN74LSGwCQy27qTAXIdSdPnjSvv/56vtTTm970pje96U1vet9KvZOSksyWLVvMwYMH0627dOmSWb58ea7U0pve9Kb37djbFcKBW1RkZKQJCAjIl3p605ve9KY3velN71ul95EjR0zjxo2Nv7+/CQgIMF26dDGnTp1yrI+Ojs6VWnrTm970vh17Z4b9ufLJDz/8kOn6qKioXKunN73pTW9605ve9C4ovSdNmqSqVavqyy+/VGJiosaNG6fOnTtrwYIFqlChQqa3m51aetOb3vS+HXtnhnMO5JOAgADZbDZl9vDbbDZFRkbmeD296U1vetOb3vSmd0HpHR4erjlz5sjf31+SZIzRqFGj9PPPP2v+/PkqUqSIGjZsmOO19KY3vel9O/bO1E3tb4Bsi4iIMGvWrHG5/o8//sh0d5Ds1NOb3vSmN73pTW96F5TeoaGh5tChQ+mWjx492jz88MNmy5YtuVJLb3rTm963Y+/M2D2PE5ATatSoob1797pcn1W6np16etOb3vSmN73pTe+C0vv+++/X7t270y0fOXKkmjZtqpdeesnl7Wanlt70pje9b8fembqpSAHZtmXLFvPTTz+5XH/hwgWzefPmXKmnN73pTW9605ve9C4ovWfMmGFeeOEF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", | |
| "text/plain": [ | |
| "<Figure size 1200x900 with 1 Axes>" | |
| ] | |
| }, | |
| "metadata": {}, | |
| "output_type": "display_data" | |
| } | |
| ], | |
| "source": [ | |
| "plt.figure(figsize=(12, 9))\n", | |
| "books_years = sns.barplot(\n", | |
| " x=books_df.groupby('PublishYear').agg(pl.count('Name')).sort('PublishYear').tail(60)['PublishYear'].to_pandas(),\n", | |
| " y=books_df.groupby('PublishYear').agg(pl.count('Name')).sort('PublishYear').tail(60)['Name'].to_pandas()\n", | |
| ")\n", | |
| "books_years.set_xticklabels(books_years.get_xticklabels(), rotation=90)\n", | |
| "books_years.set_xlabel('Publish Year')\n", | |
| "books_years.set_ylabel('Number of books')" | |
| ] | |
| }, | |
| { | |
| "attachments": {}, | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "That's very interesting, that since 2008 such a big decrease has place! Maybe data hasn't collected well" | |
| ] | |
| }, | |
| { | |
| "attachments": {}, | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "#### 6. Is there tendency to reduce number of pages in nowaday books?" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 57, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "books = books_df.groupby('PublishYear').agg(pl.mean('PagesNumber')).sort('PublishYear').tail(50)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 58, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "<AxesSubplot: xlabel='PublishYear', ylabel='PagesNumber'>" | |
| ] | |
| }, | |
| "execution_count": 58, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| }, | |
| { | |
| "data": { | |
| "image/png": "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uHGaN2+eJGny5MnavXt381YHAAAAAIgZDpeve3xiGMvjpbpZ7S1xp71JoT09PV3ffPPNIY9/8803Sk9PlyTZ7XYlJyc3b3UAAAAAgJgRyfJ4SapytrxZ7U2qWZg6daoeeOABLVq0KHCmfc2aNfr+++/1wAMPSJIWLFig0aNHB22hAAAAAIDoVlceH97QHpjV3gJ32psU2i+55BL17t1bc+bM0RdffCFJys7O1uzZszVixAhJ0nXXXRe8VQIAAAAAol6ge3zYd9pbbnl8k7sDjBw5UiNHjgzmWgAAAAAAMSyw0x7mM+3+EXMOyuMPVVNTI5fL1eCxlJSU5l4WAAAAABBjHJEqj4/3vR877bUcDocef/xxffLJJyotLT3k+Q0bNjR3XQAAAACAGFNXHh/+kW+SVNUCQ3uTusf/7W9/06JFi/TAAw/IZrPpoYce0m9/+1u1b99ejz32WLDXCAAAAACIAfba8vRwn2n3/5CgJZbHNym0f/PNN7r//vt15plnymKxaNSoUZo6daruvPNOffDBB8FeIwAAAAAgBvjL0xPCfKbdf4a+JZbHNym0l5WVqVu3bpJ859fLysok+ZrTLV26NHirAwAAAADEjOoIdY9Pjm+5I9+aFNq7du2qPXv2SJJ69eqlTz75RJJvBz41NTV4qwMAAAAAxASXxyuXx5AUuZFvVZTH+0yZMkUbN26UJN14442aM2eOBg8erEceeUTXX399UBcIAAAAAIh+9UvTw949vgWXxzeqpZ/X69ULL7ygr7/+Wi6XS4WFhbr11lv1ySefaN26derevbv69et33Nd75ZVX9Oqrryo/P1+S1KdPH02dOlWTJ0+W5Bsn9+ijj+rjjz+W0+nUxIkTdf/99yszMzNwjYKCAj3wwAP68ccflZSUpPPPP1+/+93vZLWGt1shAAAAALRm/tJ0s0myWZq0P9xk/p39llge36hk++yzz+rpp5/W+PHjFR8fr1mzZqmkpESPPPKIunTp0ug379ixo+6++2716NFDhmHo3Xff1S233KJ33nlHffr00cMPP6zvvvtOTz31lFJTU/WXv/xFt956q1577TVJksfj0U033aTMzEy99tprKiws1LRp0xQXF6e77rqr0esBAAAAADRN/XFvJpMprO+dFO+Lti1xp71RP/547733dP/992vmzJl65plnNGPGDH3wwQfyer1N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W2+9JUlavHixcnJyNGPGDFVXV+u5555T//79ZbVa9atf/UqbNm1yvvfUqVOaMGGC+vfvr9TUVN15551aunSpy7lHjRqlqVOn6tlnn1WfPn00bty4S/jNAgBgTFf+p3MAAOA1YWFhKikpUWhoqFvt58+fr4ceekiPPvqo1q9fr2effVYdO3ZUv379LvreV155Rfv27dObb76pa665RgUFBaqsrHRp89JLL2nSpEnq0KGDXnrpJT3++OP69NNPFRwcLIvFomnTpmnChAnq1q2bZsyYoaeeekqtW7fW008/rb179+qll15Sy5YttWrVKt1///365JNP1LFjR1VVVal79+76/e9/r6ioKGVnZ2vixIlq3769evbs6Tz/kiVL9Otf/1offPDBpf0iAQAwKEI7AAA+yOFwaOPGjVq/fr1++9vfKjc31633paen64EHHpAkderUSTk5OXr77bfdCu1Hjx7Vddddp5SUFElS27ZtG7QZO3asbrnlFknSH//4Rw0ZMkQHDx5Uly5dJEkDBw7Uz3/+c91///362c9+pszMTB09elSLFy/W2rVr1apVK0nSuHHjtG7dOi1evFgTJkxQq1atXO6cjxo1SuvXr9fy5ctdQnvHjh01ceJEt34XAAD4AkI7AAA+JDs7W2lpaaqurpbD4dAvf/lLPfroo3rwwQfder/Vam3w+p133nHrvb/+9a/1xz/+Ud9995369eungQMHKj093aVNcnKy8+f4+HhJ0smTJ52hXaodtv/hhx/q4YcfliTt2bNHNptNd9xxh8uxqqqq1Lx5c0mSzWbTG2+8oRUrVuj7779XdXW1qqqqFB4e7vKe7t27u3UtAAD4CkI7AAA+pE+fPpoyZYpCQkLUsmVL5yRxJpNJDofDpa2nZ5W/+eabtXbtWn3++ef64osvNHr0aI0cOVKTJk1ytgkJCXH+bDKZJMll4jmpdoI7Sc6+V1RUyGw2a9GiRc599Zo1ayapdlj/u+++q7/+9a9KTk5WRESEpk+frurqapf2ERERHrpaAACMgdAOAIAPiYiIUIcOHRpst1gsKiwsdL622WzKy8tTnz59XNp9++23DV7/+C74xVgsFmVmZiozM1P//ve/9fzzz7uE9stx3XXXyWaz6eTJk+rVq9d52+Tk5Oi2227T0KFDJdX+ISA/P/+S+g4AgC9i9ngAAPxA37599fnnnys7O1v79u3TlClTVFpa2qBdTk6O3nzzTR04cEALFy7UihUrdN9997l1jldeeUWrV6/WwYMHlZeXp+zsbI+E5k6dOunOO+/UxIkT9emnn+rQoUPatm2b5s2bp+zsbElShw4dtGHDBuXk5Gjfvn165plnVFRUdMXnBgDA6LjTDgCAHxgxYoR27dqlSZMmyWw2a/To0Q3uskvSmDFjlJubq7lz5yoqKkqTJ09W//793TpHSEiIZs2apSNHjig8PFz/9V//pVmzZnmk/zNmzNDrr7+umTNn6sSJE2revLmsVqtzUruHH35Yhw4d0rhx4xQREaG7775bAwcOVFlZmUfODwCAUZkcP30ADgAAAAAAGALD4wEAAAAAMChCOwAAAAAABkVoBwAAAADAoAjtAAAAAAAYFKEdAAAAAACDIrQDAAAAAGBQhHYAAAAAAAyK0A4AAAAAgEER2gEAAAAAMChCOwAAAAAABkVoBwAAAADAoAjtAAAAAAAY1P8DxGy+8oWZfwUAAAAASUVORK5CYII=", | |
| "text/plain": [ | |
| "<Figure size 1200x900 with 1 Axes>" | |
| ] | |
| }, | |
| "metadata": {}, | |
| "output_type": "display_data" | |
| } | |
| ], | |
| "source": [ | |
| "plt.figure(figsize=(12, 9))\n", | |
| "sns.lineplot(x='PublishYear', y='PagesNumber', data=books)" | |
| ] | |
| }, | |
| { | |
| "attachments": {}, | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "After 1950 we see decaying curve and already nowadays number of pages is more or less stable and is near 250-300. It is hard to explain the fall to 200 pages near 2010-2015 years. Again, maybe the data was not collected efficiently. Or maybe it is somehow related to active transition to electronic devices, but at the same time slow process of e-books supply (at least in my country). Everyday people have less and less time for reading, so authors dedicate themselves less for writing. However that is terrifying situation and already a lot of organizations noticed that, so last few years I can see more actions, that attract youth to read books, more apps that make reading easier, more e-books are now available." | |
| ] | |
| } | |
| ], | |
| "metadata": { | |
| "deepnote": {}, | |
| "deepnote_execution_queue": [], | |
| "deepnote_notebook_id": "00ffa1d5dd1442afbdfbf5ca782be673", | |
| "kernelspec": { | |
| "display_name": "project-zhl6RxJh", | |
| "language": "python", | |
| "name": "python3" | |
| }, | |
| "language_info": { | |
| "codemirror_mode": { | |
| "name": "ipython", | |
| "version": 3 | |
| }, | |
| "file_extension": ".py", | |
| "mimetype": "text/x-python", | |
| "name": "python", | |
| "nbconvert_exporter": "python", | |
| "pygments_lexer": "ipython3", | |
| "version": "3.10.6" | |
| }, | |
| "orig_nbformat": 4 | |
| }, | |
| "nbformat": 4, | |
| "nbformat_minor": 0 | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment