diff --git "a/data-exploration.ipynb" "b/data-exploration.ipynb" new file mode 100644--- /dev/null +++ "b/data-exploration.ipynb" @@ -0,0 +1,2209 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "b5b85c82", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "e:\\learning\\book_recommender\\book_env\\Lib\\site-packages\\tqdm\\auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n", + " from .autonotebook import tqdm as notebook_tqdm\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Downloading from https://www.kaggle.com/api/v1/datasets/download/dylanjcastillo/7k-books-with-metadata?dataset_version_number=3...\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|██████████| 1.47M/1.47M [00:00<00:00, 2.76MB/s]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Extracting files...\n", + "Path to dataset files: C:\\Users\\USER\\.cache\\kagglehub\\datasets\\dylanjcastillo\\7k-books-with-metadata\\versions\\3\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "import kagglehub\n", + "\n", + "# Download latest version\n", + "path = kagglehub.dataset_download(\"dylanjcastillo/7k-books-with-metadata\")\n", + "\n", + "print(\"Path to dataset files:\", path)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "8d15edd6", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
isbn13isbn10titlesubtitleauthorscategoriesthumbnaildescriptionpublished_yearaverage_ratingnum_pagesratings_count
097800020058830002005883GileadNaNMarilynne RobinsonFictionhttp://books.google.com/books/content?id=KQZCP...A NOVEL THAT READERS and critics have been eag...2004.03.85247.0361.0
197800022619820002261987Spider's WebA NovelCharles Osborne;Agatha ChristieDetective and mystery storieshttp://books.google.com/books/content?id=gA5GP...A new 'Christie for Christmas' -- a full-lengt...2000.03.83241.05164.0
297800061638310006163831The One TreeNaNStephen R. DonaldsonAmerican fictionhttp://books.google.com/books/content?id=OmQaw...Volume Two of Stephen Donaldson's acclaimed se...1982.03.97479.0172.0
397800061787360006178731Rage of angelsNaNSidney SheldonFictionhttp://books.google.com/books/content?id=FKo2T...A memorable, mesmerizing heroine Jennifer -- b...1993.03.93512.029532.0
497800062808970006280897The Four LovesNaNClive Staples LewisChristian lifehttp://books.google.com/books/content?id=XhQ5X...Lewis' work on the nature of love divides love...2002.04.15170.033684.0
.......................................
680597881853005358185300534I Am thatTalks with Sri Nisargadatta MaharajSri Nisargadatta Maharaj;Sudhakar S. DikshitPhilosophyhttp://books.google.com/books/content?id=Fv_JP...This collection of the timeless teachings of o...1999.04.51531.0104.0
680697881859446098185944601Secrets Of The HeartNaNKhalil GibranMysticismhttp://books.google.com/books/content?id=XcrVp...NaN1993.04.0874.0324.0
680797884450748798445074873Fahrenheit 451NaNRay BradburyBook burningNaNNaN2004.03.98186.05733.0
680897890277120599027712050The Berlin PhenomenologyNaNGeorg Wilhelm Friedrich HegelHistoryhttp://books.google.com/books/content?id=Vy7Sk...Since the three volume edition ofHegel's Philo...1981.00.00210.00.0
680997890420034089042003405'I'm Telling You Stories'Jeanette Winterson and the Politics of ReadingHelena Grice;Tim WoodsLiterary Criticismhttp://books.google.com/books/content?id=2lVyR...This is a jubilant and rewarding collection of...1998.03.70136.010.0
\n", + "

6810 rows × 12 columns

\n", + "
" + ], + "text/plain": [ + " isbn13 isbn10 title \\\n", + "0 9780002005883 0002005883 Gilead \n", + "1 9780002261982 0002261987 Spider's Web \n", + "2 9780006163831 0006163831 The One Tree \n", + "3 9780006178736 0006178731 Rage of angels \n", + "4 9780006280897 0006280897 The Four Loves \n", + "... ... ... ... \n", + "6805 9788185300535 8185300534 I Am that \n", + "6806 9788185944609 8185944601 Secrets Of The Heart \n", + "6807 9788445074879 8445074873 Fahrenheit 451 \n", + "6808 9789027712059 9027712050 The Berlin Phenomenology \n", + "6809 9789042003408 9042003405 'I'm Telling You Stories' \n", + "\n", + " subtitle \\\n", + "0 NaN \n", + "1 A Novel \n", + "2 NaN \n", + "3 NaN \n", + "4 NaN \n", + "... ... \n", + "6805 Talks with Sri Nisargadatta Maharaj \n", + "6806 NaN \n", + "6807 NaN \n", + "6808 NaN \n", + "6809 Jeanette Winterson and the Politics of Reading \n", + "\n", + " authors \\\n", + "0 Marilynne Robinson \n", + "1 Charles Osborne;Agatha Christie \n", + "2 Stephen R. Donaldson \n", + "3 Sidney Sheldon \n", + "4 Clive Staples Lewis \n", + "... ... \n", + "6805 Sri Nisargadatta Maharaj;Sudhakar S. Dikshit \n", + "6806 Khalil Gibran \n", + "6807 Ray Bradbury \n", + "6808 Georg Wilhelm Friedrich Hegel \n", + "6809 Helena Grice;Tim Woods \n", + "\n", + " categories \\\n", + "0 Fiction \n", + "1 Detective and mystery stories \n", + "2 American fiction \n", + "3 Fiction \n", + "4 Christian life \n", + "... ... \n", + "6805 Philosophy \n", + "6806 Mysticism \n", + "6807 Book burning \n", + "6808 History \n", + "6809 Literary Criticism \n", + "\n", + " thumbnail \\\n", + "0 http://books.google.com/books/content?id=KQZCP... \n", + "1 http://books.google.com/books/content?id=gA5GP... \n", + "2 http://books.google.com/books/content?id=OmQaw... \n", + "3 http://books.google.com/books/content?id=FKo2T... \n", + "4 http://books.google.com/books/content?id=XhQ5X... \n", + "... ... \n", + "6805 http://books.google.com/books/content?id=Fv_JP... \n", + "6806 http://books.google.com/books/content?id=XcrVp... \n", + "6807 NaN \n", + "6808 http://books.google.com/books/content?id=Vy7Sk... \n", + "6809 http://books.google.com/books/content?id=2lVyR... \n", + "\n", + " description published_year \\\n", + "0 A NOVEL THAT READERS and critics have been eag... 2004.0 \n", + "1 A new 'Christie for Christmas' -- a full-lengt... 2000.0 \n", + "2 Volume Two of Stephen Donaldson's acclaimed se... 1982.0 \n", + "3 A memorable, mesmerizing heroine Jennifer -- b... 1993.0 \n", + "4 Lewis' work on the nature of love divides love... 2002.0 \n", + "... ... ... \n", + "6805 This collection of the timeless teachings of o... 1999.0 \n", + "6806 NaN 1993.0 \n", + "6807 NaN 2004.0 \n", + "6808 Since the three volume edition ofHegel's Philo... 1981.0 \n", + "6809 This is a jubilant and rewarding collection of... 1998.0 \n", + "\n", + " average_rating num_pages ratings_count \n", + "0 3.85 247.0 361.0 \n", + "1 3.83 241.0 5164.0 \n", + "2 3.97 479.0 172.0 \n", + "3 3.93 512.0 29532.0 \n", + "4 4.15 170.0 33684.0 \n", + "... ... ... ... \n", + "6805 4.51 531.0 104.0 \n", + "6806 4.08 74.0 324.0 \n", + "6807 3.98 186.0 5733.0 \n", + "6808 0.00 210.0 0.0 \n", + "6809 3.70 136.0 10.0 \n", + "\n", + "[6810 rows x 12 columns]" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import pandas as pd\n", + "\n", + "books= pd.read_csv(r\"C:\\Users\\USER\\.cache\\kagglehub\\datasets\\dylanjcastillo\\7k-books-with-metadata\\versions\\3\\books.csv\")\n", + "books" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "17807788", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAooAAAHGCAYAAADzBqoGAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQAAcSFJREFUeJzt3QeUE+XXBvC7sPTepEmR3osC0juCCApSLEgVUIqAFIE/RUCK0puggggqYkEEpPciSK8iTboIgvRe853nfmdyJtnJbjIJm83u8zsnZzeZTMlkMrm57/veCXM4HA4hIiIiInITz/0BIiIiIiJgoEhERERElhgoEhEREZElBopEREREZImBIhERERFZYqBIRERERJYYKBIRERGRJQaKRERERGSJgSIRERERWQq3fpjIe+EJswZ7E4iIiMhHD++fjfI5zCgSERERkSUGikRERERkiYEiEREREVlioEhERERElhgoEhEREZElBopEREREZImBIhERERFZYqAYTapWrSrdunUL2POIiIiInjQGitFk3rx58tFHH0Xb+oYNGybly5eXpEmTSurUqSNMv3TpktSpU0eyZMkiiRIlkmzZsknnzp3l+vXr0baNREREFLMxUIwmadOmlRQpUkTb+u7fvy9NmjSRDh06WE6PFy+evPLKK7Jw4UI5cuSIzJw5U1atWiXvvvtutG0jERERxWwMFKOJuUl5ypQpkjdvXkmcOLFkzJhRGjdu7PLchw8fanYvVapUkj59ehkwYIA4HA7n9Jw5c8rw4cOlTZs2Gnxmz55dvvjiC5dlDB48WN5//30pWrSo5fakSZNGg8hSpUpJjhw5pEaNGtKxY0fZuHHjE3n9REREFHoYKEazHTt2SJcuXWTIkCFy+PBhWbZsmVSuXNnlObNmzZLw8HDZtm2bTJgwQcaOHSvTp093ec6YMWM0yNu9e7cGeAj6sDy7/vnnH20er1Kliu1lEBERUezCQDGanT59WpIlSyb16tXTTF7JkiU1cDRDf8Fx48ZJ/vz5pVmzZvLee+/pfbO6detqgJgnTx7p3bu3Zh7Xrl3r8/a88cYb2o8xa9askjJlyggBKREREcVdDBSjWa1atTRAzJUrlzRv3lxmz54tt2/fdnlO2bJlJSwszHm/XLlycvToUXn06JHzsWLFijn/x3MzZcokFy5c8Hl7EIDu2rVLFixYIMeOHZPu3btH+vx79+7pgBfzzdwsTkRERLEHA8Vohj6FCMzmzJkjmTNnloEDB0rx4sXl6tWrPi0nQYIELvcRLD5+/Njn7UGAWaBAAXn55Zfl888/l6lTp8q5c+c8Pn/EiBHad9J8czy+4fN6iYiIKOZjoBgE6H9Ys2ZNGTlypOzbt09Onjwpa9ascU7funWry/O3bNmig1/ix4//RLfLCDSRNfSkb9++cu3aNZdbWLzoG81NRERE0Sc8GtdFIrJo0SI5fvy4DmDByOMlS5ZogIb+iOZ+jGgCfueddzT7OGnSJB284gss4/Lly/oXTdZ79uzRx9GnMXny5Lref//9V0qXLq33Dxw4IL169ZIKFSroqGpPUHMRNzNzMzkRERHFHgwUoxmKX2N08aBBg+Tu3buaKUQzdOHChZ3PadGihdy5c0fKlCmjWcSuXbtK+/btfVoPmrQxetqAQTOAAS8o1ZMkSRKZNm2altBBBhEDaF599VXp06dPAF8tERERhbIwB0cikJ/CE2YN9iYQERGRjx7ePxvlc9hHkYiIiIgsMVAkIiIiIksMFImIiIjIEgNFIiIiIrLEQJGIiIiILDFQJCIiIiJLDBSJiIiIyBIDRSIiIiKyxECRiIiIiCwxUCQiIiIiSwwUiYiIiMgSA0UiIiIissRAkYiIiIgsMVAkIiIiIksMFImIiIjIEgNFIiIiIrLEQJGIiIiILDFQJCIiIiJLDBSJiIiIyBIDxWhStWpV6datW8CeR0RERPSkMVCMJvPmzZOPPvoo2tY3bNgwKV++vCRNmlRSp05t+ZzTp0/LSy+9pM956qmnpFevXvLw4cNo20YiIiKK2cKDvQFxRdq0aaN1fffv35cmTZpIuXLl5Msvv4ww/dGjRxokZsqUSTZv3iznzp2TFi1aSIIECWT48OHRuq1EREQUMzGjGE3MTcpTpkyRvHnzSuLEiSVjxozSuHFjl+ciq9e5c2dJlSqVpE+fXgYMGCAOh8M5PWfOnBrMtWnTRlKkSCHZs2eXL774wmUZgwcPlvfff1+KFi1quT0rVqyQP//8U7799lspUaKEvPjii5rx/PTTTzXIJCIiImKgGM127NghXbp0kSFDhsjhw4dl2bJlUrlyZZfnzJo1S8LDw2Xbtm0yYcIEGTt2rEyfPt3lOWPGjJFSpUrJ7t27pWPHjtKhQwddnrd+//13DSIRqBpq164t169flwMHDgTglRIREVGoY9NzNEO/wGTJkkm9evU0G5gjRw4pWbKky3OyZcsm48aNk7CwMMmfP7/s379f77dr1875nLp162qACL1799bpa9eu1ed74/z58y5BIhj3MY2IiIiIGcVoVqtWLQ0Oc+XKJc2bN5fZs2fL7du3XZ5TtmxZDRIN6Gd49OhR7VdoKFasmPN/PBd9DS9cuPDEt//evXuadTTfzM3iREREFHswUIxmyCLu2rVL5syZI5kzZ5aBAwdK8eLF5erVqz4tB4NOzBAsPn782Ov5EVj++++/Lo8Z9zHNkxEjRmjfSfPN8fiGT9tOREREoYGBYhCg/2HNmjVl5MiRsm/fPjl58qSsWbPGOX3r1q0uz9+yZYsOfokfP37AtgFZSjRpm7OQK1eulJQpU0qhQoU8zte3b1+5du2ayy0sXoqAbRcRERHFHOyjGM0WLVokx48f1wEsadKkkSVLlmgm0Ny3EP0Yu3fvLu+8845mHydNmqSDV3yBZVy+fFn/osl6z549+niePHkkefLk8sILL2hAiOZvBKzol9i/f3/p1KmTJEqUyONyMc19urmZnIiIiGIPBorRDMWvUXx70KBBcvfuXc0Uohm6cOHCzuegnuGdO3ekTJkymkXs2rWrtG/f3qf1oEkbo6cNxoAZDHhBqR4sF0ErRksju4gBNi1bttTR2EREREQQ5uBIBPJTeMKswd4EIiIi8tHD+2ejfA77KBIRERGRJQaKRERERGSJgSIRERERWWKgSERERESWGCgSERERkSUGikRERERkiYEiEREREVlioEhERERElhgoEhEREZElBopEREREZImBIhERERFZYqBIRERERJYYKBIRERGRJQaKRERERGSJgSIRERERWWKgSERERESWGCgSERERkSUGikRERERkiYEiEREREVlioBgLrFu3TsLCwuTq1auRPi9nzpwyfvz4aNsuIiIiCm0MFENQ1apVpVu3bs775cuXl3PnzkmqVKn0/syZMyV16tRB3EIiIiKKDcKDvQHkv4QJE0qmTJmCvRlEREQUyzCjGGJatWol69evlwkTJmhzM27IIBpNz2iGbt26tVy7ds05fdCgQZbLwvPbtm0rGTJkkJQpU0r16tVl79690f6aiIiIKGZioBhiECCWK1dO2rVrp83NuGXLls2lGRr9EBH4GdN7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iYiIiMgSA0UiIiIishTmcL+mG5GPwhNmDfYmEEXqzj8bJUmWShKqQn37A437g0LJnRh8vD68fzbK5zCjSERERESWGCgSERERkSUGikRERERkiYEiEREREVlioEhERERElhgoEhEREZElBopEREREZImBIhERERFZYqAYInLmzCnjx48P9mYQERFRHMJAMYaZOXOmpE6dOtibQURERMRAMS67f/9+sDeBiIiIYlOgeObMGfn777+d97dt2ybdunWTL774ItDbFpKWLVsmFStW1KxgunTppF69enLs2DGdtm7dOgkLC5OrV686n79nzx597OTJkzq9devWcu3aNX0Mt0GDBjmfe/v2bWnTpo2kSJFCsmfPHmGf79+/X6pXry5JkiTRdbdv315u3rzpnN6qVStp0KCBDBs2TLJkySL58+fXx6dMmSJ58+aVxIkTS8aMGaVx48bRsKeIiIgo1gWKb775pqxdu1b/P3/+vNSqVUuDxX79+smQIUMkrrt165Z0795dduzYIatXr5Z48eJJw4YN5fHjx1HOW758ee2HmDJlSjl37pzeevbs6Zw+ZswYKVWqlOzevVs6duwoHTp0kMOHDzvXW7t2bUmTJo1s375dfvrpJ1m1apV07tzZZR3YJsyzcuVKWbRokW5nly5d9L3D4wh0K1eu/AT2DBEREYWacF9n+OOPP6RMmTL6/48//ihFihSRTZs2yYoVK+Tdd9+VgQMHSlzWqFEjl/szZsyQDBkyyJ9//hnlvAkTJpRUqVJpJjFTpkwRptetW1cDROjdu7eMGzdOg3ZkBr/77ju5e/eufP3115IsWTJ9zuTJk6V+/fryySefaKYQMG369Om6Lpg3b54+hswnMpU5cuSQkiVLetzGe/fu6c3M4XDoNhMREVEczyg+ePBAEiVKpP8jY/Xyyy/r/wUKFNAMWFx39OhReeONNyRXrlyaGcRoZTh9+rTfyy5WrJjzfyOYvHDhgt4/ePCgFC9e3BkkQoUKFTSTaWQdoWjRos4gEZARRnCI7W3evLnMnj1bm7g9GTFihAaz5pvj8Q2/XxsRERHFgkCxcOHC8tlnn8nGjRu1+bJOnTr6+D///KP94uI6ZPAuX74s06ZNk61bt+rNGDiCZmgjA2cOvL2VIEECl/sIFr1p0jYzB5KALOKuXbtkzpw5kjlzZs0II+A096M069u3r/ah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EMh1uC/fl/0czHNFEg/rDaXjxLyt7tv98P7ZKOcPjc6FRERERBTtGCgSERERUWDrKNKTw94AREREFBMwo0hERERElhgoEhEREZElBopEREREZImBIhERERFZYqBIRERERJYYKBIRERGRJQaKRERERGSJl/Ajv/ESfhRKl7MiIqL/x0v4EREREZFtDBSJiIiIyBIDRSIiIiKyxECRiIiIiCwxUCQiIiIiSwwUiYiIiMgSA0UiIiIissRAkYiIiIhiX6B48uRJCQsLkz179nh8zrp16/Q5V69e1fszZ86U1KlTe7V8X54b6O0mIiIiCraQDhTteO211+TIkSPB3gwiIiKiGC9c4pgkSZLojSJ3//59SZgwYbA3g4iIiOJqRrFq1arSuXNnvaVKlUrSp08vAwYMEOPy02ienT9/vss8aApGk7DZoUOHpHz58pI4cWIpUqSIrF+/3uvm5L1790q1atUkRYoUkjJlSnnuuedkx44dLvMsX75cChYsKMmTJ5c6derIuXPnXKZPnz5dp2P9BQoUkClTprhM37Ztm5QsWVKnlypVSnbv3u3V/sF+yJMnj4wePdrlcTRZY9/89ddfeh/N6m3btpUMGTLoa6hevbq+LsOxY8fklVdekYwZM+prKF26tKxatcplmTlz5pSPPvpIWrRoocto3769V9tIREREsVfQm55nzZol4eHhGkxNmDBBxo4dq4GXL3r16iU9evTQAKxcuXJSv359uXTpklfzNmvWTJ5++mnZvn277Ny5U/r06SMJEiRwTr99+7YGat98841s2LBBTp8+LT179nROnz17tgwcOFCGDRsmBw8elOHDh2uwi9cFN2/elHr16kmhQoV0+YMGDXKZPzIIBtu0aSNfffWVy+O4X7lyZQ0ioUmTJnLhwgVZunSpruPZZ5+VGjVqyOXLl53bULduXVm9erXuIwS72Ed4LWZ4ncWLF9fn4DUQERFR3Bb0QDFbtmwybtw4yZ8/vwZt7733nt73BTKSjRo10qze1KlTNTv55ZdfejUvgqWaNWtqJjBv3rwadCFYMjx48EA+++wzzQQiAMO6EHAZPvzwQxkzZoy8+uqr8swzz+jf999/Xz7//HOd/t1338njx491ewoXLqxBIwJbb7Vq1UoOHz6sgbSxPVgmAkj47bffdNpPP/2k24jXgIAPWdO5c+fqc/B63nnnHc22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YKzT7nwYEb179275+OOP9Tk4H23btk2rOVSoUEHLNJUqVSpg8/kz7yeffKLTUY4I08eMGSPr1q3TkfKHDx/WSgEoPxYoLI9DFGQbN27UAKxOnTqW0zFtx44dEWqURfd8/gjGOolCzd9//63BHgLGZMmSBXtzKAa7evWqM8A015hEAPn+++97DE7tYKBIRERERJbiWT9MRERERHEdA0UiIiIissRAkYiIiIgsMVAkIopjBg0aJCVKlAj2ZhBRCGCgSEQUYs6fPy/vvfee5MqVSxIlSiTZsmWT+vXry+rVq4O9aUQUy7COIhFRCDl58qSWwEidOrWMGjVKihYtKg8ePJDly5dLp06d5NChQ8HeRCKKRZhRJCIKIR07dtQC5SjM26hRI8mXL58ULlxYunfvroV24fTp01rcHMWGU6ZMKU2bNpV///3X4zKrVq0q3bp1c3msQYMG0qpVK+f9nDlzytChQ6VFixa6XBR2XrhwoVy8eNG5rmLFimk9TMPMmTM1oEUQi2LAeA5qaZ47d875HBQKLlOmjNYNxHMRBJ86dSrAe42I7GKgSEQUIi5fvizLli3TzKFVQWYEWii8i8ANz12/fr2sXLlSC/K+9tprfq9/3LhxGsjhahIvvfSSXlEGgeNbb70lu3btkty5c+t9c3ne27dvy+jRo+Wbb76RDRs2aBDbs2dPnfbw4UMNSFFofd++ffL7779L+/btNRAmopiBTc9ERCHir7/+0iCsQIECHp+Dfor79++XEydOaN9F+PrrrzXruH37dildurTt9detW1feeecd/X/gwIEydepUXV6TJk30sd69e0u5cuU0e5kpUyZ9DM3iuAwhgkjo3LmzDBkyRP+/fv26XLt2TerVq+ecjswjEcUczCgSEYUIby6kdfDgQQ0QjSARChUqpNlGTPMHmpYNGTNm1L/oI+n+2IULF5yPJU2a1BkEAi4zZkxPmzatNm/Xrl1bB+NMmDDBpVmaiIKPgSIRUYjImzevNssGesBKvHjxIgShyAS6S5AggfN/o3nY6jE0f1vNYzzHvK6vvvpKm5zLly8vP/zwg/a5NPpaElHwMVAkIgoRyMAh+/bpp5/KrVu3Iky/evWqNt2eOXNGb4Y///xTpyGzaCVDhgwumbxHjx7JH3/8IdGlZMmS0rdvX9m8ebMUKVJEvvvuu2hbNxFFjoEiEVEIQZCIQA4jhX/++Wc5evSoNilPnDhR+wfWrFlTm4ObNWumA0wwOhoDTDBgpFSpUpbLrF69uixevFhvyFZ26NBBA8snDf0oESAio4iRzitWrNDXw36KRDEHB7MQEYUQFNlGADhs2DDp0aOHZgKREXzuued0cAmadhcsWKAFuStXrqzNyihJM2nSJI/LbNOmjezdu1cDyvDwcHn//felWrVqT/y1oP8iAtNZs2bJpUuXtP8iRnQbA2aIKPjCHN70jiYiIiKiOIdNz0RERERkiYEiEREREVlioEhERERElhgoEhEREZElBopEREREZImBIhERERFZYqBIRERERJYYKBIRERGRJQaKRERERGSJgSIRERERWWKgSERERESWGCgSERERkVj5P9/wPCpcPkO3AAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import seaborn as sns\n", + "import matplotlib.pyplot as plt\n", + "\n", + "ax = plt.axes()\n", + "sns.heatmap(books.isna().transpose(), cbar= False, ax=ax)\n", + "plt.xlabel(\"Columns\")\n", + "plt.ylabel(\"Missing Values\")\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "f5c566fe", + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "\n", + "books[\"missing_description\"] = np.where(books[\"description\"].isna(),1,0 )\n", + "books[\"age_of_book\"] = 2025- books[\"published_year\"]\n" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "c2f94b1e", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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A9rkjxkZMWKEGokMwyZjsIMPP/xQTaaIeWysiQEBEREREZEZMN8JZoTHxJUYyS0zhw8fViOOYchoDFcMEyZMkMGDB8vo0aPTzGqem9iHgIiIiIjIDCdPnhQXFxc1nHNWkw1iuGd/f39DMKBNvIjUIUx2aE1sISAiIiIiu9bm/pwmGdmyZUu6y5966in1yG5rgvF8NYBZ5H19fSUoKEisiQEB5bp1LpWsfQiUi77oMMfah0C5yCEXJioj21G/bR1rHwLloqmvez++ZYcWJSy7fxHVdwABQGqYfR2TTVoTAwIiIiIismkOLg4W3f+WDFoAHiV3d3c1s3lqCAY8PT3FmliVQ0RERERkYUWLFpXbt2+bLEOAEBYWJoULFxZrYkBARERERDbN0dnBoo/c0KBBAwkODparV68almHUIahXr55YEwMCIiIiIqJHLDk5WUJCQiQuLk49xyhEdevWlVGjRsmxY8dkz549MnbsWOnatatVhxwFBgREREREZNMcXBwt+rAEjBzUrFkzNe8AYHjRGTNmSIkSJaR///4ycuRIadGihYwfP16sjZ2KiYiIiIge0qRJk0yeo+B/9uxZk2UFCxaUadOmia1hQEBERERENi238vztFVOGiIiIiIjsGFsIiIiIiMiu5yGwdwwIiIiIiMimMWXIspgyRERERERkx9hCQEREREQ2jSlDlsUWAiIiIiIiO8YWAiIiIiKyaexDYFlsISAiIiIismNsISAiIiIim+bgxBYCS2ILARERERGRHWMLARERERHZNEe2EFgUWwiIiIiIiOwYWwiIiIiIyKY5OLKFwJIYEBARERGRTXNwYlKLJfHqEhERERHZMbYQEBEREZFNY6diy2ILARERERGRHWMLARERERHZNHYqtiy2EBARERER2TG2EBARERGRTWMfAstiCwERERERkR1jCwERERER2TQHthBYFAMCIiIiIrJpDo5MarEkXl0iIiIiIjvGFgIiIiIismkcdtSy2EJARERERGTH2EJARERERDaNw45aFlsIiIiIiIjsGFsIiIiIiMimsQ+BZbGFgIiIiIjIjrGFgIiIiIhsGuchsCwGBERERERk05gyZFkMt4iIiIiI7BhbCIiIiIjIpnHYUctiCwERERERkR1jCwERERER2TT2IbAsthAQEREREdkxthAQERERkU3jsKOWxatLRERERGTH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jqzDtiReXSIiIiIiO8YWAiIiIiKybQ7sQ2BJbCEgIiIiIrJjbCEgIiIiItvGPgQWxYCAiIiIiGwbU4YsiuEWEREREZEdYwsBEREREdk0DjtqWby6RERERER2jC0ERERERGTbHFiHbUm8ukREREREdowtBERERERk2xw5ypAlsYWAiIiIiMiOsYWAiIiIiGyaA/sQWBQDAiIiIiKybUwZsiiGW0REREREdowtBERERERk25gyZFG8ukREREREdowtBERERERk2xzYh8CS2EJARERERGTH2EJARERERLbNkXXYlsSrS0RERERkx9hCQERERES2jaMMWRQDAiIiIiKybZyYzKIYbhERERER2TG2EBARERGRbWPKkEXx6hIRERER2TG2EBARERGRbePEZBbFFgIiIiIiIjvGFgIiIiIism2cmMyieHWJiIiIiOwYWwiIiIiIyLaxD4FFMSAgIiIiItvGYUctileXiIiIiMiOsYWAiIiIiGwbOxVbFK8uEREREZEdYwsBEREREdk2dio2iIyMlD179khMTIzodDpJrWvXrpJTDAiIiIiIiPKAnTt3yogRIyQuLi7dYMDBwYEBARERERE9hjjKkPL1119LuXLl5P3335ciRYqI4yPqW8GAgIiIiIgoD7h48aLMnDlT6tev/0j3y4CAiIiIiGwb+xAoxYoVk6ioKHnU2P5CRERERLYNqTGWfOQRr776qnz//fdy/fr1R7pfthAQEREREeUBf/75p9y6dUvatm0rfn5+4u7unqZT8ebNm3O8XwYERERERGTTdEwZUooWLaoejxoDAiIiIiKiPOCLL76wyH4ZEBARERGRbeOwoyZ27Ngh+/btk4iICClQoIAadah58+ZiLgYERERERER5QEJCggwbNkx27dolTk5OKhgIDQ2VOXPmSOPGjWX27Nni6uqa4/0y3CIiIiIi228hsOQjj5g+fbocPHhQvvzySzl27JgKDI4ePapSiY4cOSI//PCDWfvNO1eAiIiIiMiOrV27Vl5//XXp3LmzaiEAZ2dn6dq1q1qOUYjMwZQhIjN5uDvK0AHlpGVTf/Fwd5KjJ8Nk2tyLEngjNtPtCvi6yBsvl5dGdf3EyclB9hy4J9PnXZS7oQmGdfx8XWRw37LSsE4B8cnnIoE3YmTJ74Hyz66QXDgzyoh78SLS4shaOfD8cLm3Y1+m6xbr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Z86cEUtgHwIiIiIiIjvGFgIiIiIismnsQ6D3/vvvS3Yhfejzzz/P1roMCIiIiIiI8oDg4GA1E3F4eLgUL15cihQpImFhYXL16lU1azEmKzMOCLKLAQERERER2TS2EOh17NhRzp8/L0uXLpW6deveXypy6dIlGTp0qPTp00f69+8vOcU+BEREREREecCsWbNkzJgxJsEAlCtXTkaOHCnz5s0za79sISAiIiIim8YWAr179+5J/vz5JT2Ojo4SGRkp5mALARERERFRHoDJyGbMmCGhoaEmy2/fvi3Tp0+XZs2ambVfthAQERERkU3jPAR67733nvTt21eeeuopqVOnjhQoUEDu3r0rhw8floIFC8oHH3wg5mALARERERHZtBRxsOgjr6hcubKsW7dOXnzxRYmKipITJ05IXFycDBo0SFauXCkBAQFm7ZctBEREREREeQSGGn333Xcf6T4ZEBARERGRTWOn4gdu3bqlWgYy6kDctWtXySkGBEREREREecD69etVP4KEhIR0X8dkZAwIiIiIiOixw07Fet9++63UrFlT3n//ffH19ZVHhQEBEREREVEegOFFJ0yYINWqVXuk++UoQ0RERERk830ILPnIK2rXri1nzpx55PtlCwERERERUR4wbtw4ee2119SQozVq1BBPT8806zRo0CDH+2VAQEREREQ2jX0I9K5cuSJ37txRsxVrnYg1Op1OPT99+rTkFAMCIiIiIrJpeSmtx5ImT54spUqVkiFDhkihQoUe2X4ZEBARERER5QE3b96UWbNmSdOmTR/pfhkQEBEREZFNY8qQXsWKFSUoKEgeNQYERERERER5AOYfGDNmjCQnJ6sRh7y9vdOsU6xYsRzvlwEBEREREdm0FGsfgI0YOHCgJCUlydixY006FBtjp2IiIiIiosfUJ598YpH9MiAgIiIiIpvGPgR66D/Qvn17KV++vDxKnKmYiIiIiMgMKSkpMm3aNGnevLnK6cdwoIGBgdna9o8//pBKlSrJ9evXs/1+s2fPztH62cWAgIiIiIhsfh4CSz7MNXPmTFm6dKl8+umnsmzZMhUgDB48WBISEjLd7saNGzJhwoQcv1+FChXk8uXL8qgxZYiIiIiIbJotpgwlJCTI/Pnz1ag/rVq1UsumTp2qWgv+/vtvefbZZ9PdDkHD22+/LdWqVZM9e/bk6D1bt24t33zz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TrhlT4YuyLhCjR4/nRL1adrW8L+PLduysujTALFneSplyFYhjQYTjWGIUqQiYSKvPXv2SOfOnSWvw9wDGIYV/QaQloS+GRi9CelYRERERJT35amUIVuFicmQxoTOzMjTR406Upay21kY/R4yGyYUHYfRP8Ea0BqAc8OoShEREaoTNSY7y8ncCUREREQPI4UpQxbFgOARKFGihMyYMcPs7dFhN7PMLfQ5sBZMvIaAgIiIiIgeTwwIbEBmoxwRERER2Tt2KrYs9iEgIiIiIrJjbCEgIiIiIpvGQTEtiy0ERERERER2jC0ERERERGTTdCkp1j6ExxoDAiIiIiKyaRx21LKYMkREREREZMfYQkBERERENo2dii2LLQRERERERHaMLQREREREZNM4MZllsYWAiIiIiMiOsYWAiIiIiGwaWwgsiy0ERERERER2jC0ERERERGTTUnScmMySGBAQERERkU1jypBlMWWIiIiIiMiOsYWAiIiIiGwaWwgsiy0ERERERER2jC0ERERERGTTdDq2EFgSWwiIiIiIiOwYWwiIiIiIyKalpHDYUUtiCwERERERkR1jCwERERER2TSOMmRZDAiIiIiIyKbpOFOxRTFliIiIiIjIjrGFgIiIiIhsGlOGLIstBEREREREdowtBERERERk09hCYFlsISAiIiIismNsISAiIiIim5bCUYYsii0ERERERER2jC0ERERERGTT2IfAshgQEBEREZFN06UwZciSmDJERERERGTH2EJARERERDaNKUOWxRYCIiIiIiI7xoCAiIiIiGyaTpdi0Ye5UlJSZNq0adK8eXOpXbu2DBkyRAIDAzNcPzQ0VN566y1p0KCBNGzYUD755BOJjY0Va2NAQERERERkhpkzZ8rSpUvl008/lWXLlqkAYfDgwZKQkJDu+iNGjJCrV6/KggUL5LvvvpPt27fL+PHjxdoYEBARERGRTUtJ0Vn0YQ4U+ufPn68K+a1atZLKlSvL1KlTJTg4WP7+++806x8+fFj27dsnkydPlmrVqkmTJk1kwoQJsmbNGrl165ZYEwMCIiIiIqIcOnPmjERHR6uCvcbHx0eqVq0q+/fvT7P+gQMHxN/fX8qXL29YhrQhBwcHOXjwoFgTRxkiIiIiIrueh6BNmzaZvr5ly5Y0y9ASAAEBASbLCxcubHjNGFoBUq/r6uoqvr6+EhQUJNbEgICIiIiIbJotDjsae78zMAr1xtzc3CQ8PDzd9VOvq60fHx8v1sSAgIiIiIjs2pZ0WgCy4u7ubuhLoP0OKNx7eHiku356nY2xvqenp1gT+xAQERERkU2zxWFHA+6n/9y+fdtkOZ4XKVIkzfpFixZNsy4ChLCwMJVmZE0MCIiIiIiIcgijCnl7e8vevXsNyyIiIuTUqVNqnoHUsAx9CzDsqAajDkG9evXEmpgyREREREQ2zRb7ELi6ukrfvn1lypQp4ufnJ8WLF5evvvpKtQS0a9dOkpOT5d69e5IvXz6VLlSrVi2pW7eujBo1Ss09EBMTI2PHjpWuXbum26KQm9hCQERERERkBsxB0KNHD/noo4+kd+/e4uTkJPPmzRMXFxc1clCzZs1k/fr1al0MLzpjxgwpUaKE9O/fX0aOHCktWrSwiYnJHHQ6ne2FXPRYGzUjytqHQLkoJCjC2odAuSjsdpi1D4Fy0dAF3ax9CJSLOiWetdp7N3tuu0X3v+vPlmLP2EJARERERGTH2EJARERERGTH2EJARERERGTHGBAQEREREdkxBgRERERERHaMAQERERERkR1jQEBEREREZMcYEBARERER2TEGBEREREREdowBARERERGRHWNAQERERERkxxgQEBERERHZMQYERERERER2jAEBEREREZEdY0BARERERGTHGBAQEVnAJ598InXq1JF69erJnTt3sly/X79+8t5771n0mPbu3SuVKlWS69evi7WsXLlSHcOjMH36dHnqqafE2nDfcP+sBfcT1xT3N7sOHjwoBw4cMHt7yj2JiYmyYMECm/vc0+OFAQER0SN25swZWbp0qbz77ruyZs0aKVSokLUPyWZ07NhRdu3a9Uj2NWjQIFmxYoXYu4CAAHVNEYBmV58+feTatWtmb0+5Z+3atfLFF18YnvNzT5bgbJG9EhHZsYiICPXzySeflBIlSlj7cGyKu7u7ejwKXl5e6mHvnJycxN/f32rbk2XpdDqT5/zckyWwhYAeO2j6Ru3JgAEDpGbNmtKsWTOZMWNGps2tqZdhH7/++quqRatRo4Y888wzcujQIbWsVatWUrduXRk5cqTExcVl+7iw/5kzZ8rLL7+sjqtt27by22+/mayD588995x6vXbt2ur9jx8/bng9NjZWxo0bJ40aNVLH8OGHH8pbb71lkmqC43zppZfUPnCsSF2JiooyvH7s2DG1X9QGNmjQQN544w25efOm5BXnzp2TV199VR179erVpU2bNjJ//nzD63/++ae6X7hvL7zwgixatMgkRSUyMlI+/vhjady4sUrn+d///mdyjbMjLCxMXdeWLVuq6/ziiy8a0i2QEqOljzz99NM5SgOKjo5W97NWrVrqcztt2jRJSUkxvH7x4kV57bXX1P3HsY8YMUJu3LhheD05OVmlFrRv316dP37+8ssvGb4fUkbwOZg6daqYK6ffldQpQ9u3b5fu3burc27SpIm6XuHh4YbX582bp64j7jW+Q99//72hgGT8vdXSXv766y9137X1cRzGcH2wHPdt4MCB6m9DTtIv8N74Hrdo0UJ9R99//32Jj483WefWrVsyatQoqV+/vrpXuGdXrlwxvH737l117/Ca9vnZt2+fSYrId999J61bt1bXBddn9+7d6jV8zqpWrSpz5sxR2+O1wMBAk5QffP4mTpwoo0ePVtvjWLG+dt20649jx/VOnTKU1edIOwbcu2effVZd6w4dOsjmzZsf6juM86hcubLarzEcZ+/evdXvCQkJ8tVXX0nz5s3VZ7dnz54mLU74fOFv62effaa+I8OGDVPLcWz4XOCe4Zxw3Xbu3GnYDueM7wG+d1gH9wfX0DgVDN+/IUOGqPfFeviuhoSEZOucM7p3+H7je4i/Q/iu4HrgO4SWRe18cP7afcM+rPG5JzugI3rMVKxYUVe/fn3d6tWrddeuXdP98MMPatm+ffvU69OmTdO1bt3aZJvUy7B+o0aNdFu2bNFdvHhR98ILL+gaNGigGzhwoO7s2bO6jRs36qpVq6ZbtGhRto8L+8c206dPV/v86aefdJUrV9atW7dOvf7333/rqlevro77+vXrusOHD+u6d++u69y5s2Efb7zxhq5Nmza63bt3q+PA80qVKuneffdd9frp06d1NWvWVOd8+fJl3f79+9Wx45GSkqJLSkrSNW7cWPfNN9+oa3PixAn1Hv3799flBTExMbonn3xS98477+guXLigzvHLL79U9+vUqVO6f/75R1elShXd3LlzdZcuXdItXbpUV6NGDfU64Br06tVLne+RI0fUPr7++mt1X06ePJmtY8A17Natm+7ZZ5/V7d27V3f+/Hndxx9/rPZx9OhRXWxsrO6vv/5S74nnERER2dpv37591Taffvqp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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "columns_of_interest = [\"num_pages\", \"age_of_book\", \"missing_description\", \"average_rating\"]\n", + "\n", + "correlation_matrix = books[columns_of_interest].corr(method=\"spearman\")\n", + "\n", + "sns.set_theme(style=\"white\")\n", + "plt.figure(figsize=(8,6))\n", + "heatmap = sns.heatmap(correlation_matrix, annot= True, fmt=\".2f\", cmap=\"coolwarm\",\n", + " cbar_kws={\"label\":\"Spearmqn correlation\"})\n", + "\n", + "heatmap.set_title(\"Correlation heatmap\")\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "f57e99be", + "metadata": {}, + "outputs": [], + "source": [ + "books_missing = books[~(books[\"description\"].isna())&\n", + " ~(books[\"num_pages\"].isna())&\n", + " ~(books[\"average_rating\"].isna())&\n", + " ~(books[\"published_year\"].isna())]" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "9da6e79a", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
isbn13isbn10titlesubtitleauthorscategoriesthumbnaildescriptionpublished_yearaverage_ratingnum_pagesratings_countmissing_descriptionagg_of_bookage_of_book
097800020058830002005883GileadNaNMarilynne RobinsonFictionhttp://books.google.com/books/content?id=KQZCP...A NOVEL THAT READERS and critics have been eag...2004.03.85247.0361.0021.021.0
197800022619820002261987Spider's WebA NovelCharles Osborne;Agatha ChristieDetective and mystery storieshttp://books.google.com/books/content?id=gA5GP...A new 'Christie for Christmas' -- a full-lengt...2000.03.83241.05164.0025.025.0
297800061638310006163831The One TreeNaNStephen R. DonaldsonAmerican fictionhttp://books.google.com/books/content?id=OmQaw...Volume Two of Stephen Donaldson's acclaimed se...1982.03.97479.0172.0043.043.0
397800061787360006178731Rage of angelsNaNSidney SheldonFictionhttp://books.google.com/books/content?id=FKo2T...A memorable, mesmerizing heroine Jennifer -- b...1993.03.93512.029532.0032.032.0
497800062808970006280897The Four LovesNaNClive Staples LewisChristian lifehttp://books.google.com/books/content?id=XhQ5X...Lewis' work on the nature of love divides love...2002.04.15170.033684.0023.023.0
................................................
680397881730310148173031010Journey to the EastNaNHermann HesseAdventure storieshttp://books.google.com/books/content?id=rq6JP...This book tells the tale of a man who goes on ...2002.03.70175.024.0023.023.0
68049788179921623817992162XThe Monk Who Sold His Ferrari: A Fable About F...NaNRobin SharmaHealth & Fitnesshttp://books.google.com/books/content?id=c_7mf...Wisdom to Create a Life of Passion, Purpose, a...2003.03.82198.01568.0022.022.0
680597881853005358185300534I Am thatTalks with Sri Nisargadatta MaharajSri Nisargadatta Maharaj;Sudhakar S. DikshitPhilosophyhttp://books.google.com/books/content?id=Fv_JP...This collection of the timeless teachings of o...1999.04.51531.0104.0026.026.0
680897890277120599027712050The Berlin PhenomenologyNaNGeorg Wilhelm Friedrich HegelHistoryhttp://books.google.com/books/content?id=Vy7Sk...Since the three volume edition ofHegel's Philo...1981.00.00210.00.0044.044.0
680997890420034089042003405'I'm Telling You Stories'Jeanette Winterson and the Politics of ReadingHelena Grice;Tim WoodsLiterary Criticismhttp://books.google.com/books/content?id=2lVyR...This is a jubilant and rewarding collection of...1998.03.70136.010.0027.027.0
\n", + "

6507 rows × 15 columns

\n", + "
" + ], + "text/plain": [ + " isbn13 isbn10 \\\n", + "0 9780002005883 0002005883 \n", + "1 9780002261982 0002261987 \n", + "2 9780006163831 0006163831 \n", + "3 9780006178736 0006178731 \n", + "4 9780006280897 0006280897 \n", + "... ... ... \n", + "6803 9788173031014 8173031010 \n", + "6804 9788179921623 817992162X \n", + "6805 9788185300535 8185300534 \n", + "6808 9789027712059 9027712050 \n", + "6809 9789042003408 9042003405 \n", + "\n", + " title \\\n", + "0 Gilead \n", + "1 Spider's Web \n", + "2 The One Tree \n", + "3 Rage of angels \n", + "4 The Four Loves \n", + "... ... \n", + "6803 Journey to the East \n", + "6804 The Monk Who Sold His Ferrari: A Fable About F... \n", + "6805 I Am that \n", + "6808 The Berlin Phenomenology \n", + "6809 'I'm Telling You Stories' \n", + "\n", + " subtitle \\\n", + "0 NaN \n", + "1 A Novel \n", + "2 NaN \n", + "3 NaN \n", + "4 NaN \n", + "... ... \n", + "6803 NaN \n", + "6804 NaN \n", + "6805 Talks with Sri Nisargadatta Maharaj \n", + "6808 NaN \n", + "6809 Jeanette Winterson and the Politics of Reading \n", + "\n", + " authors \\\n", + "0 Marilynne Robinson \n", + "1 Charles Osborne;Agatha Christie \n", + "2 Stephen R. Donaldson \n", + "3 Sidney Sheldon \n", + "4 Clive Staples Lewis \n", + "... ... \n", + "6803 Hermann Hesse \n", + "6804 Robin Sharma \n", + "6805 Sri Nisargadatta Maharaj;Sudhakar S. Dikshit \n", + "6808 Georg Wilhelm Friedrich Hegel \n", + "6809 Helena Grice;Tim Woods \n", + "\n", + " categories \\\n", + "0 Fiction \n", + "1 Detective and mystery stories \n", + "2 American fiction \n", + "3 Fiction \n", + "4 Christian life \n", + "... ... \n", + "6803 Adventure stories \n", + "6804 Health & Fitness \n", + "6805 Philosophy \n", + "6808 History \n", + "6809 Literary Criticism \n", + "\n", + " thumbnail \\\n", + "0 http://books.google.com/books/content?id=KQZCP... \n", + "1 http://books.google.com/books/content?id=gA5GP... \n", + "2 http://books.google.com/books/content?id=OmQaw... \n", + "3 http://books.google.com/books/content?id=FKo2T... \n", + "4 http://books.google.com/books/content?id=XhQ5X... \n", + "... ... \n", + "6803 http://books.google.com/books/content?id=rq6JP... \n", + "6804 http://books.google.com/books/content?id=c_7mf... \n", + "6805 http://books.google.com/books/content?id=Fv_JP... \n", + "6808 http://books.google.com/books/content?id=Vy7Sk... \n", + "6809 http://books.google.com/books/content?id=2lVyR... \n", + "\n", + " description published_year \\\n", + "0 A NOVEL THAT READERS and critics have been eag... 2004.0 \n", + "1 A new 'Christie for Christmas' -- a full-lengt... 2000.0 \n", + "2 Volume Two of Stephen Donaldson's acclaimed se... 1982.0 \n", + "3 A memorable, mesmerizing heroine Jennifer -- b... 1993.0 \n", + "4 Lewis' work on the nature of love divides love... 2002.0 \n", + "... ... ... \n", + "6803 This book tells the tale of a man who goes on ... 2002.0 \n", + "6804 Wisdom to Create a Life of Passion, Purpose, a... 2003.0 \n", + "6805 This collection of the timeless teachings of o... 1999.0 \n", + "6808 Since the three volume edition ofHegel's Philo... 1981.0 \n", + "6809 This is a jubilant and rewarding collection of... 1998.0 \n", + "\n", + " average_rating num_pages ratings_count missing_description \\\n", + "0 3.85 247.0 361.0 0 \n", + "1 3.83 241.0 5164.0 0 \n", + "2 3.97 479.0 172.0 0 \n", + "3 3.93 512.0 29532.0 0 \n", + "4 4.15 170.0 33684.0 0 \n", + "... ... ... ... ... \n", + "6803 3.70 175.0 24.0 0 \n", + "6804 3.82 198.0 1568.0 0 \n", + "6805 4.51 531.0 104.0 0 \n", + "6808 0.00 210.0 0.0 0 \n", + "6809 3.70 136.0 10.0 0 \n", + "\n", + " agg_of_book age_of_book \n", + "0 21.0 21.0 \n", + "1 25.0 25.0 \n", + "2 43.0 43.0 \n", + "3 32.0 32.0 \n", + "4 23.0 23.0 \n", + "... ... ... \n", + "6803 23.0 23.0 \n", + "6804 22.0 22.0 \n", + "6805 26.0 26.0 \n", + "6808 44.0 44.0 \n", + "6809 27.0 27.0 \n", + "\n", + "[6507 rows x 15 columns]" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "books_missing" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "ae3af5c4", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
categoriescount
0Fiction2523
1Juvenile Fiction534
2Biography & Autobiography391
3History258
4Literary Criticism164
.........
526Courage1
527Otherland (Imaginary place)1
528Animals1
529Children of divorced parents1
530Catholic women1
\n", + "

531 rows × 2 columns

\n", + "
" + ], + "text/plain": [ + " categories count\n", + "0 Fiction 2523\n", + "1 Juvenile Fiction 534\n", + "2 Biography & Autobiography 391\n", + "3 History 258\n", + "4 Literary Criticism 164\n", + ".. ... ...\n", + "526 Courage 1\n", + "527 Otherland (Imaginary place) 1\n", + "528 Animals 1\n", + "529 Children of divorced parents 1\n", + "530 Catholic women 1\n", + "\n", + "[531 rows x 2 columns]" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "books_missing[\"categories\"].value_counts().reset_index().sort_values(\"count\", ascending=False)" + ] + }, + { + "cell_type": "markdown", + "id": "e7f3cb9f", + "metadata": {}, + "source": [ + "The distribution of catagories of the books dataset is a longtail problem " + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "7f056424", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\USER\\AppData\\Local\\Temp\\ipykernel_10196\\4057519413.py:1: SettingWithCopyWarning: \n", + "A value is trying to be set on a copy of a slice from a DataFrame.\n", + "Try using .loc[row_indexer,col_indexer] = value instead\n", + "\n", + "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", + " books_missing[\"words_in_description\"] = books_missing[\"description\"].str.split().str.len()\n" + ] + } + ], + "source": [ + "books_missing[\"words_in_description\"] = books_missing[\"description\"].str.split().str.len()" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "id": "44ab400f", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
isbn13isbn10titlesubtitleauthorscategoriesthumbnaildescriptionpublished_yearaverage_ratingnum_pagesratings_countmissing_descriptionagg_of_bookage_of_bookwords_in_description
097800020058830002005883GileadNaNMarilynne RobinsonFictionhttp://books.google.com/books/content?id=KQZCP...A NOVEL THAT READERS and critics have been eag...2004.03.85247.0361.0021.021.0199
197800022619820002261987Spider's WebA NovelCharles Osborne;Agatha ChristieDetective and mystery storieshttp://books.google.com/books/content?id=gA5GP...A new 'Christie for Christmas' -- a full-lengt...2000.03.83241.05164.0025.025.0205
297800061638310006163831The One TreeNaNStephen R. DonaldsonAmerican fictionhttp://books.google.com/books/content?id=OmQaw...Volume Two of Stephen Donaldson's acclaimed se...1982.03.97479.0172.0043.043.014
397800061787360006178731Rage of angelsNaNSidney SheldonFictionhttp://books.google.com/books/content?id=FKo2T...A memorable, mesmerizing heroine Jennifer -- b...1993.03.93512.029532.0032.032.057
497800062808970006280897The Four LovesNaNClive Staples LewisChristian lifehttp://books.google.com/books/content?id=XhQ5X...Lewis' work on the nature of love divides love...2002.04.15170.033684.0023.023.045
\n", + "
" + ], + "text/plain": [ + " isbn13 isbn10 title subtitle \\\n", + "0 9780002005883 0002005883 Gilead NaN \n", + "1 9780002261982 0002261987 Spider's Web A Novel \n", + "2 9780006163831 0006163831 The One Tree NaN \n", + "3 9780006178736 0006178731 Rage of angels NaN \n", + "4 9780006280897 0006280897 The Four Loves NaN \n", + "\n", + " authors categories \\\n", + "0 Marilynne Robinson Fiction \n", + "1 Charles Osborne;Agatha Christie Detective and mystery stories \n", + "2 Stephen R. Donaldson American fiction \n", + "3 Sidney Sheldon Fiction \n", + "4 Clive Staples Lewis Christian life \n", + "\n", + " thumbnail \\\n", + "0 http://books.google.com/books/content?id=KQZCP... \n", + "1 http://books.google.com/books/content?id=gA5GP... \n", + "2 http://books.google.com/books/content?id=OmQaw... \n", + "3 http://books.google.com/books/content?id=FKo2T... \n", + "4 http://books.google.com/books/content?id=XhQ5X... \n", + "\n", + " description published_year \\\n", + "0 A NOVEL THAT READERS and critics have been eag... 2004.0 \n", + "1 A new 'Christie for Christmas' -- a full-lengt... 2000.0 \n", + "2 Volume Two of Stephen Donaldson's acclaimed se... 1982.0 \n", + "3 A memorable, mesmerizing heroine Jennifer -- b... 1993.0 \n", + "4 Lewis' work on the nature of love divides love... 2002.0 \n", + "\n", + " average_rating num_pages ratings_count missing_description agg_of_book \\\n", + "0 3.85 247.0 361.0 0 21.0 \n", + "1 3.83 241.0 5164.0 0 25.0 \n", + "2 3.97 479.0 172.0 0 43.0 \n", + "3 3.93 512.0 29532.0 0 32.0 \n", + "4 4.15 170.0 33684.0 0 23.0 \n", + "\n", + " age_of_book words_in_description \n", + "0 21.0 199 \n", + "1 25.0 205 \n", + "2 43.0 14 \n", + "3 32.0 57 \n", + "4 23.0 45 " + ] + }, + "execution_count": 32, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "books_missing.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "id": "ca0ac08b", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "6 Donation.\n", + "11 Fantasy-roman.\n", + "77 Nonsense rhyming story. 4 yrs+\n", + "104 Library of Liberal Arts title.\n", + "682 Biography of John Wesley Powell.\n", + " ... \n", + "6695 No Marketing Blurb\n", + "6704 Accessible and affordable illustrated biography\n", + "6721 Horror.\n", + "6757 Audio Book- unabriged on CD\n", + "6794 源氏物語54帖、「宮田切り絵」の真骨頂。\n", + "Name: description, Length: 66, dtype: object" + ] + }, + "execution_count": 36, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "books_missing.loc[books_missing[\"words_in_description\"].between(1,5), \"description\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "id": "729326fa", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "2 Volume Two of Stephen Donaldson's acclaimed se...\n", + "38 Koko is Peter Straub's foray into the psycholo...\n", + "70 A matter of life and death - and the Throne of...\n", + "77 Nonsense rhyming story. 4 yrs+\n", + "84 A study guide for the novel There's a Boy in t...\n", + " ... \n", + "6715 The first comprehensive guide to addressing Na...\n", + "6726 Presents two complete novels from Henry James.\n", + "6757 Audio Book- unabriged on CD\n", + "6776 Raymond Chandler meets The Exorcist. Classic n...\n", + "6795 Book Of Five Rings is a Kodansha International...\n", + "Name: description, Length: 308, dtype: object" + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "books_missing.loc[books_missing[\"words_in_description\"].between(5,14), \"description\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "id": "40144115", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "10 One of Sidney Sheldon's most popular and bests...\n", + "32 Tells the story of three generations of Chines...\n", + "36 A magical and fantastic collection of early st...\n", + "57 A young drifter finds more than he bargained f...\n", + "68 A new 'The Doors of Perception' for the 21st c...\n", + " ... \n", + "6767 Everything from the fingerprints of the gods t...\n", + "6782 Displays one of America's leading physicist's ...\n", + "6783 Basics Illustration 01: Thinking Visually expl...\n", + "6789 Provides an introduction to the American artis...\n", + "6809 This is a jubilant and rewarding collection of...\n", + "Name: description, Length: 947, dtype: object" + ] + }, + "execution_count": 35, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "books_missing.loc[books_missing[\"words_in_description\"].between(15,24), \"description\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "id": "9343f1d3", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "9 Kate Blackwell is an enigma and one of the mos...\n", + "14 Available in the U.S. for the first time, this...\n", + "20 It is 1937, and Charles Ashworth, a Canon to t...\n", + "21 Reissue of the author's most famous and well-l...\n", + "46 No one believes a little girl when she insists...\n", + " ... \n", + "6760 Joel, an English teacher, has never really lik...\n", + "6766 Discusses the historical and intellectual back...\n", + "6775 Presents nearly one thousand recipes--from app...\n", + "6779 Edited by the creator and executive producer o...\n", + "6799 This book is the story of a young girl obsesse...\n", + "Name: description, Length: 1229, dtype: object" + ] + }, + "execution_count": 37, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "books_missing.loc[books_missing[\"words_in_description\"].between(25,34), \"description\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "id": "e2ee3a1d", + "metadata": {}, + "outputs": [], + "source": [ + "books_missing_25_words = books_missing[books_missing[\"words_in_description\"] >=25] " + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "id": "da420f09", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
isbn13isbn10titlesubtitleauthorscategoriesthumbnaildescriptionpublished_yearaverage_ratingnum_pagesratings_countmissing_descriptionagg_of_bookage_of_bookwords_in_description
097800020058830002005883GileadNaNMarilynne RobinsonFictionhttp://books.google.com/books/content?id=KQZCP...A NOVEL THAT READERS and critics have been eag...2004.03.85247.0361.0021.021.0199
197800022619820002261987Spider's WebA NovelCharles Osborne;Agatha ChristieDetective and mystery storieshttp://books.google.com/books/content?id=gA5GP...A new 'Christie for Christmas' -- a full-lengt...2000.03.83241.05164.0025.025.0205
397800061787360006178731Rage of angelsNaNSidney SheldonFictionhttp://books.google.com/books/content?id=FKo2T...A memorable, mesmerizing heroine Jennifer -- b...1993.03.93512.029532.0032.032.057
497800062808970006280897The Four LovesNaNClive Staples LewisChristian lifehttp://books.google.com/books/content?id=XhQ5X...Lewis' work on the nature of love divides love...2002.04.15170.033684.0023.023.045
597800062809340006280935The Problem of PainNaNClive Staples LewisChristian lifehttp://books.google.com/books/content?id=Kk-uV...\"In The Problem of Pain, C.S. Lewis, one of th...2002.04.09176.037569.0023.023.075
...................................................
680297881722352228172235224Mistaken IdentityNaNNayantara SahgalIndic fiction (English)http://books.google.com/books/content?id=q-tKP...On A Train Journey Home To North India After L...2003.02.93324.00.0022.022.0288
680397881730310148173031010Journey to the EastNaNHermann HesseAdventure storieshttp://books.google.com/books/content?id=rq6JP...This book tells the tale of a man who goes on ...2002.03.70175.024.0023.023.063
68049788179921623817992162XThe Monk Who Sold His Ferrari: A Fable About F...NaNRobin SharmaHealth & Fitnesshttp://books.google.com/books/content?id=c_7mf...Wisdom to Create a Life of Passion, Purpose, a...2003.03.82198.01568.0022.022.0117
680597881853005358185300534I Am thatTalks with Sri Nisargadatta MaharajSri Nisargadatta Maharaj;Sudhakar S. DikshitPhilosophyhttp://books.google.com/books/content?id=Fv_JP...This collection of the timeless teachings of o...1999.04.51531.0104.0026.026.0174
680897890277120599027712050The Berlin PhenomenologyNaNGeorg Wilhelm Friedrich HegelHistoryhttp://books.google.com/books/content?id=Vy7Sk...Since the three volume edition ofHegel's Philo...1981.00.00210.00.0044.044.0245
\n", + "

5197 rows × 16 columns

\n", + "
" + ], + "text/plain": [ + " isbn13 isbn10 \\\n", + "0 9780002005883 0002005883 \n", + "1 9780002261982 0002261987 \n", + "3 9780006178736 0006178731 \n", + "4 9780006280897 0006280897 \n", + "5 9780006280934 0006280935 \n", + "... ... ... \n", + "6802 9788172235222 8172235224 \n", + "6803 9788173031014 8173031010 \n", + "6804 9788179921623 817992162X \n", + "6805 9788185300535 8185300534 \n", + "6808 9789027712059 9027712050 \n", + "\n", + " title \\\n", + "0 Gilead \n", + "1 Spider's Web \n", + "3 Rage of angels \n", + "4 The Four Loves \n", + "5 The Problem of Pain \n", + "... ... \n", + "6802 Mistaken Identity \n", + "6803 Journey to the East \n", + "6804 The Monk Who Sold His Ferrari: A Fable About F... \n", + "6805 I Am that \n", + "6808 The Berlin Phenomenology \n", + "\n", + " subtitle \\\n", + "0 NaN \n", + "1 A Novel \n", + "3 NaN \n", + "4 NaN \n", + "5 NaN \n", + "... ... \n", + "6802 NaN \n", + "6803 NaN \n", + "6804 NaN \n", + "6805 Talks with Sri Nisargadatta Maharaj \n", + "6808 NaN \n", + "\n", + " authors \\\n", + "0 Marilynne Robinson \n", + "1 Charles Osborne;Agatha Christie \n", + "3 Sidney Sheldon \n", + "4 Clive Staples Lewis \n", + "5 Clive Staples Lewis \n", + "... ... \n", + "6802 Nayantara Sahgal \n", + "6803 Hermann Hesse \n", + "6804 Robin Sharma \n", + "6805 Sri Nisargadatta Maharaj;Sudhakar S. Dikshit \n", + "6808 Georg Wilhelm Friedrich Hegel \n", + "\n", + " categories \\\n", + "0 Fiction \n", + "1 Detective and mystery stories \n", + "3 Fiction \n", + "4 Christian life \n", + "5 Christian life \n", + "... ... \n", + "6802 Indic fiction (English) \n", + "6803 Adventure stories \n", + "6804 Health & Fitness \n", + "6805 Philosophy \n", + "6808 History \n", + "\n", + " thumbnail \\\n", + "0 http://books.google.com/books/content?id=KQZCP... \n", + "1 http://books.google.com/books/content?id=gA5GP... \n", + "3 http://books.google.com/books/content?id=FKo2T... \n", + "4 http://books.google.com/books/content?id=XhQ5X... \n", + "5 http://books.google.com/books/content?id=Kk-uV... \n", + "... ... \n", + "6802 http://books.google.com/books/content?id=q-tKP... \n", + "6803 http://books.google.com/books/content?id=rq6JP... \n", + "6804 http://books.google.com/books/content?id=c_7mf... \n", + "6805 http://books.google.com/books/content?id=Fv_JP... \n", + "6808 http://books.google.com/books/content?id=Vy7Sk... \n", + "\n", + " description published_year \\\n", + "0 A NOVEL THAT READERS and critics have been eag... 2004.0 \n", + "1 A new 'Christie for Christmas' -- a full-lengt... 2000.0 \n", + "3 A memorable, mesmerizing heroine Jennifer -- b... 1993.0 \n", + "4 Lewis' work on the nature of love divides love... 2002.0 \n", + "5 \"In The Problem of Pain, C.S. Lewis, one of th... 2002.0 \n", + "... ... ... \n", + "6802 On A Train Journey Home To North India After L... 2003.0 \n", + "6803 This book tells the tale of a man who goes on ... 2002.0 \n", + "6804 Wisdom to Create a Life of Passion, Purpose, a... 2003.0 \n", + "6805 This collection of the timeless teachings of o... 1999.0 \n", + "6808 Since the three volume edition ofHegel's Philo... 1981.0 \n", + "\n", + " average_rating num_pages ratings_count missing_description \\\n", + "0 3.85 247.0 361.0 0 \n", + "1 3.83 241.0 5164.0 0 \n", + "3 3.93 512.0 29532.0 0 \n", + "4 4.15 170.0 33684.0 0 \n", + "5 4.09 176.0 37569.0 0 \n", + "... ... ... ... ... \n", + "6802 2.93 324.0 0.0 0 \n", + "6803 3.70 175.0 24.0 0 \n", + "6804 3.82 198.0 1568.0 0 \n", + "6805 4.51 531.0 104.0 0 \n", + "6808 0.00 210.0 0.0 0 \n", + "\n", + " agg_of_book age_of_book words_in_description \n", + "0 21.0 21.0 199 \n", + "1 25.0 25.0 205 \n", + "3 32.0 32.0 57 \n", + "4 23.0 23.0 45 \n", + "5 23.0 23.0 75 \n", + "... ... ... ... \n", + "6802 22.0 22.0 288 \n", + "6803 23.0 23.0 63 \n", + "6804 22.0 22.0 117 \n", + "6805 26.0 26.0 174 \n", + "6808 44.0 44.0 245 \n", + "\n", + "[5197 rows x 16 columns]" + ] + }, + "execution_count": 39, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "books_missing_25_words" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "id": "33939d7f", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\USER\\AppData\\Local\\Temp\\ipykernel_10196\\1996634102.py:1: SettingWithCopyWarning: \n", + "A value is trying to be set on a copy of a slice from a DataFrame.\n", + "Try using .loc[row_indexer,col_indexer] = value instead\n", + "\n", + "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", + " books_missing_25_words[\"title_and_subtitle\"] = (\n" + ] + } + ], + "source": [ + "books_missing_25_words[\"title_and_subtitle\"] = (\n", + " np.where(books_missing_25_words[\"subtitle\"].isna(), books_missing_25_words[\"title\"],\n", + " books_missing_25_words[[\"title\", \"subtitle\"]].astype(str).agg(\": \".join, axis=1))\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "id": "4755d682", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
isbn13isbn10titlesubtitleauthorscategoriesthumbnaildescriptionpublished_yearaverage_ratingnum_pagesratings_countmissing_descriptionagg_of_bookage_of_bookwords_in_descriptiontitle_and_subtitle
097800020058830002005883GileadNaNMarilynne RobinsonFictionhttp://books.google.com/books/content?id=KQZCP...A NOVEL THAT READERS and critics have been eag...2004.03.85247.0361.0021.021.0199Gilead
197800022619820002261987Spider's WebA NovelCharles Osborne;Agatha ChristieDetective and mystery storieshttp://books.google.com/books/content?id=gA5GP...A new 'Christie for Christmas' -- a full-lengt...2000.03.83241.05164.0025.025.0205Spider's Web: A Novel
397800061787360006178731Rage of angelsNaNSidney SheldonFictionhttp://books.google.com/books/content?id=FKo2T...A memorable, mesmerizing heroine Jennifer -- b...1993.03.93512.029532.0032.032.057Rage of angels
497800062808970006280897The Four LovesNaNClive Staples LewisChristian lifehttp://books.google.com/books/content?id=XhQ5X...Lewis' work on the nature of love divides love...2002.04.15170.033684.0023.023.045The Four Loves
597800062809340006280935The Problem of PainNaNClive Staples LewisChristian lifehttp://books.google.com/books/content?id=Kk-uV...\"In The Problem of Pain, C.S. Lewis, one of th...2002.04.09176.037569.0023.023.075The Problem of Pain
\n", + "
" + ], + "text/plain": [ + " isbn13 isbn10 title subtitle \\\n", + "0 9780002005883 0002005883 Gilead NaN \n", + "1 9780002261982 0002261987 Spider's Web A Novel \n", + "3 9780006178736 0006178731 Rage of angels NaN \n", + "4 9780006280897 0006280897 The Four Loves NaN \n", + "5 9780006280934 0006280935 The Problem of Pain NaN \n", + "\n", + " authors categories \\\n", + "0 Marilynne Robinson Fiction \n", + "1 Charles Osborne;Agatha Christie Detective and mystery stories \n", + "3 Sidney Sheldon Fiction \n", + "4 Clive Staples Lewis Christian life \n", + "5 Clive Staples Lewis Christian life \n", + "\n", + " thumbnail \\\n", + "0 http://books.google.com/books/content?id=KQZCP... \n", + "1 http://books.google.com/books/content?id=gA5GP... \n", + "3 http://books.google.com/books/content?id=FKo2T... \n", + "4 http://books.google.com/books/content?id=XhQ5X... \n", + "5 http://books.google.com/books/content?id=Kk-uV... \n", + "\n", + " description published_year \\\n", + "0 A NOVEL THAT READERS and critics have been eag... 2004.0 \n", + "1 A new 'Christie for Christmas' -- a full-lengt... 2000.0 \n", + "3 A memorable, mesmerizing heroine Jennifer -- b... 1993.0 \n", + "4 Lewis' work on the nature of love divides love... 2002.0 \n", + "5 \"In The Problem of Pain, C.S. Lewis, one of th... 2002.0 \n", + "\n", + " average_rating num_pages ratings_count missing_description agg_of_book \\\n", + "0 3.85 247.0 361.0 0 21.0 \n", + "1 3.83 241.0 5164.0 0 25.0 \n", + "3 3.93 512.0 29532.0 0 32.0 \n", + "4 4.15 170.0 33684.0 0 23.0 \n", + "5 4.09 176.0 37569.0 0 23.0 \n", + "\n", + " age_of_book words_in_description title_and_subtitle \n", + "0 21.0 199 Gilead \n", + "1 25.0 205 Spider's Web: A Novel \n", + "3 32.0 57 Rage of angels \n", + "4 23.0 45 The Four Loves \n", + "5 23.0 75 The Problem of Pain " + ] + }, + "execution_count": 42, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "books_missing_25_words.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "id": "fec5a4cb", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\USER\\AppData\\Local\\Temp\\ipykernel_10196\\1188956569.py:1: SettingWithCopyWarning: \n", + "A value is trying to be set on a copy of a slice from a DataFrame.\n", + "Try using .loc[row_indexer,col_indexer] = value instead\n", + "\n", + "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", + " books_missing_25_words[\"tagged_description\"] = books_missing_25_words[[\"isbn13\", \"description\"]].astype(str).agg(\" \".join, axis=1)\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
isbn13isbn10titlesubtitleauthorscategoriesthumbnaildescriptionpublished_yearaverage_ratingnum_pagesratings_countmissing_descriptionagg_of_bookage_of_bookwords_in_descriptiontitle_and_subtitletagged_description
097800020058830002005883GileadNaNMarilynne RobinsonFictionhttp://books.google.com/books/content?id=KQZCP...A NOVEL THAT READERS and critics have been eag...2004.03.85247.0361.0021.021.0199Gilead9780002005883 A NOVEL THAT READERS and critics...
197800022619820002261987Spider's WebA NovelCharles Osborne;Agatha ChristieDetective and mystery storieshttp://books.google.com/books/content?id=gA5GP...A new 'Christie for Christmas' -- a full-lengt...2000.03.83241.05164.0025.025.0205Spider's Web: A Novel9780002261982 A new 'Christie for Christmas' -...
397800061787360006178731Rage of angelsNaNSidney SheldonFictionhttp://books.google.com/books/content?id=FKo2T...A memorable, mesmerizing heroine Jennifer -- b...1993.03.93512.029532.0032.032.057Rage of angels9780006178736 A memorable, mesmerizing heroine...
497800062808970006280897The Four LovesNaNClive Staples LewisChristian lifehttp://books.google.com/books/content?id=XhQ5X...Lewis' work on the nature of love divides love...2002.04.15170.033684.0023.023.045The Four Loves9780006280897 Lewis' work on the nature of lov...
597800062809340006280935The Problem of PainNaNClive Staples LewisChristian lifehttp://books.google.com/books/content?id=Kk-uV...\"In The Problem of Pain, C.S. Lewis, one of th...2002.04.09176.037569.0023.023.075The Problem of Pain9780006280934 \"In The Problem of Pain, C.S. Le...
\n", + "
" + ], + "text/plain": [ + " isbn13 isbn10 title subtitle \\\n", + "0 9780002005883 0002005883 Gilead NaN \n", + "1 9780002261982 0002261987 Spider's Web A Novel \n", + "3 9780006178736 0006178731 Rage of angels NaN \n", + "4 9780006280897 0006280897 The Four Loves NaN \n", + "5 9780006280934 0006280935 The Problem of Pain NaN \n", + "\n", + " authors categories \\\n", + "0 Marilynne Robinson Fiction \n", + "1 Charles Osborne;Agatha Christie Detective and mystery stories \n", + "3 Sidney Sheldon Fiction \n", + "4 Clive Staples Lewis Christian life \n", + "5 Clive Staples Lewis Christian life \n", + "\n", + " thumbnail \\\n", + "0 http://books.google.com/books/content?id=KQZCP... \n", + "1 http://books.google.com/books/content?id=gA5GP... \n", + "3 http://books.google.com/books/content?id=FKo2T... \n", + "4 http://books.google.com/books/content?id=XhQ5X... \n", + "5 http://books.google.com/books/content?id=Kk-uV... \n", + "\n", + " description published_year \\\n", + "0 A NOVEL THAT READERS and critics have been eag... 2004.0 \n", + "1 A new 'Christie for Christmas' -- a full-lengt... 2000.0 \n", + "3 A memorable, mesmerizing heroine Jennifer -- b... 1993.0 \n", + "4 Lewis' work on the nature of love divides love... 2002.0 \n", + "5 \"In The Problem of Pain, C.S. Lewis, one of th... 2002.0 \n", + "\n", + " average_rating num_pages ratings_count missing_description agg_of_book \\\n", + "0 3.85 247.0 361.0 0 21.0 \n", + "1 3.83 241.0 5164.0 0 25.0 \n", + "3 3.93 512.0 29532.0 0 32.0 \n", + "4 4.15 170.0 33684.0 0 23.0 \n", + "5 4.09 176.0 37569.0 0 23.0 \n", + "\n", + " age_of_book words_in_description title_and_subtitle \\\n", + "0 21.0 199 Gilead \n", + "1 25.0 205 Spider's Web: A Novel \n", + "3 32.0 57 Rage of angels \n", + "4 23.0 45 The Four Loves \n", + "5 23.0 75 The Problem of Pain \n", + "\n", + " tagged_description \n", + "0 9780002005883 A NOVEL THAT READERS and critics... \n", + "1 9780002261982 A new 'Christie for Christmas' -... \n", + "3 9780006178736 A memorable, mesmerizing heroine... \n", + "4 9780006280897 Lewis' work on the nature of lov... \n", + "5 9780006280934 \"In The Problem of Pain, C.S. Le... " + ] + }, + "execution_count": 43, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "books_missing_25_words[\"tagged_description\"] = books_missing_25_words[[\"isbn13\", \"description\"]].astype(str).agg(\" \".join, axis=1)\n", + "books_missing_25_words.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "id": "4ccce38a", + "metadata": {}, + "outputs": [], + "source": [ + "(\n", + " books_missing_25_words\n", + " .drop([\"subtitle\", \"missing_description\", \"age_of_book\", \"words_in_description\"], axis=1)\n", + " .to_csv(\"books_cleaned.csv\", index = False)\n", + ")" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "book_env", + "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.11.7" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +}