{
"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",
" isbn13 \n",
" isbn10 \n",
" title \n",
" subtitle \n",
" authors \n",
" categories \n",
" thumbnail \n",
" description \n",
" published_year \n",
" average_rating \n",
" num_pages \n",
" ratings_count \n",
" \n",
" \n",
" \n",
" \n",
" 0 \n",
" 9780002005883 \n",
" 0002005883 \n",
" Gilead \n",
" NaN \n",
" Marilynne Robinson \n",
" Fiction \n",
" http://books.google.com/books/content?id=KQZCP... \n",
" A NOVEL THAT READERS and critics have been eag... \n",
" 2004.0 \n",
" 3.85 \n",
" 247.0 \n",
" 361.0 \n",
" \n",
" \n",
" 1 \n",
" 9780002261982 \n",
" 0002261987 \n",
" Spider's Web \n",
" A Novel \n",
" Charles Osborne;Agatha Christie \n",
" Detective and mystery stories \n",
" http://books.google.com/books/content?id=gA5GP... \n",
" A new 'Christie for Christmas' -- a full-lengt... \n",
" 2000.0 \n",
" 3.83 \n",
" 241.0 \n",
" 5164.0 \n",
" \n",
" \n",
" 2 \n",
" 9780006163831 \n",
" 0006163831 \n",
" The One Tree \n",
" NaN \n",
" Stephen R. Donaldson \n",
" American fiction \n",
" http://books.google.com/books/content?id=OmQaw... \n",
" Volume Two of Stephen Donaldson's acclaimed se... \n",
" 1982.0 \n",
" 3.97 \n",
" 479.0 \n",
" 172.0 \n",
" \n",
" \n",
" 3 \n",
" 9780006178736 \n",
" 0006178731 \n",
" Rage of angels \n",
" NaN \n",
" Sidney Sheldon \n",
" Fiction \n",
" http://books.google.com/books/content?id=FKo2T... \n",
" A memorable, mesmerizing heroine Jennifer -- b... \n",
" 1993.0 \n",
" 3.93 \n",
" 512.0 \n",
" 29532.0 \n",
" \n",
" \n",
" 4 \n",
" 9780006280897 \n",
" 0006280897 \n",
" The Four Loves \n",
" NaN \n",
" Clive Staples Lewis \n",
" Christian life \n",
" http://books.google.com/books/content?id=XhQ5X... \n",
" Lewis' work on the nature of love divides love... \n",
" 2002.0 \n",
" 4.15 \n",
" 170.0 \n",
" 33684.0 \n",
" \n",
" \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" \n",
" \n",
" 6805 \n",
" 9788185300535 \n",
" 8185300534 \n",
" I Am that \n",
" Talks with Sri Nisargadatta Maharaj \n",
" Sri Nisargadatta Maharaj;Sudhakar S. Dikshit \n",
" Philosophy \n",
" http://books.google.com/books/content?id=Fv_JP... \n",
" This collection of the timeless teachings of o... \n",
" 1999.0 \n",
" 4.51 \n",
" 531.0 \n",
" 104.0 \n",
" \n",
" \n",
" 6806 \n",
" 9788185944609 \n",
" 8185944601 \n",
" Secrets Of The Heart \n",
" NaN \n",
" Khalil Gibran \n",
" Mysticism \n",
" http://books.google.com/books/content?id=XcrVp... \n",
" NaN \n",
" 1993.0 \n",
" 4.08 \n",
" 74.0 \n",
" 324.0 \n",
" \n",
" \n",
" 6807 \n",
" 9788445074879 \n",
" 8445074873 \n",
" Fahrenheit 451 \n",
" NaN \n",
" Ray Bradbury \n",
" Book burning \n",
" NaN \n",
" NaN \n",
" 2004.0 \n",
" 3.98 \n",
" 186.0 \n",
" 5733.0 \n",
" \n",
" \n",
" 6808 \n",
" 9789027712059 \n",
" 9027712050 \n",
" The Berlin Phenomenology \n",
" NaN \n",
" Georg Wilhelm Friedrich Hegel \n",
" History \n",
" http://books.google.com/books/content?id=Vy7Sk... \n",
" Since the three volume edition ofHegel's Philo... \n",
" 1981.0 \n",
" 0.00 \n",
" 210.0 \n",
" 0.0 \n",
" \n",
" \n",
" 6809 \n",
" 9789042003408 \n",
" 9042003405 \n",
" 'I'm Telling You Stories' \n",
" Jeanette Winterson and the Politics of Reading \n",
" Helena Grice;Tim Woods \n",
" Literary Criticism \n",
" http://books.google.com/books/content?id=2lVyR... \n",
" This is a jubilant and rewarding collection of... \n",
" 1998.0 \n",
" 3.70 \n",
" 136.0 \n",
" 10.0 \n",
" \n",
" \n",
"
\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/syZMyV16tRB3EIiIiKKDcKDvQHkv4QJE0qmTJmCvRlEREQUyzCjGGJatWol69evlwkTJmhzM27IIBpNz2iGbt26tVy7ds05fdCgQZbLwvPbtm0rGTJkkJQpU0r16tVl79690f6aiIiIKGZioBhiECCWK1dO2rVrp83NuGXLls2lGRr9EBH4GdN79uxpuawmTZrIhQsXZOnSpbJz50559tlnpUaNGnL58uVofEVEREQUU7HpOcSgHyKampMmTepsbj506JBzOqbhOcgkRtYc/dtvv8m2bds0UEyUKJE+Nnr0aJk/f77MnTtX2rdvHw2vhoiIiGIyBopxFJqYb968KenSpXN5/M6dO3Ls2DGP8927d09vZg6HQwNTIiIiil0YKMZRCBIzZ86sfRrdRTZiesSIETJ48GCXx8LiJZew+CmfyHYSERFR8DBQDEFoXn706JHt6YD+iOfPn5fw8HCtr+itvn37Svfu3V0eS5OugNfzExERUejgYJYQhMBu69atcvLkSfnvv//k8ePHEaYjY7h69Wqdfvv27QjLqFmzpg6KadCggaxYsUKXtXnzZunXr5/s2LHD47rRnxEDZcw3NjsTERHFTgwUQxBGMcePH18KFSqkpW1Onz7tMh0jn99991157bXXdPrIkSMjLAPB3ZIlS6Ry5cpaTidfvnzy+uuvy6lTpyRjxozR+GqIiIgopgpzYCQCkR/CE2YN9iYQERGRjx7ePxvlc5hRJCIiIiJLDBSJiIiIyBIDRSIiIiKyxECRiIiIiCwxUCQiIiIiSwwUiYiIiMgSA0UiIiIissRAkYiIiIgsMVAkIiIiIksMFImIiIjIUrj1w0S+ufPPRuf/SbJUcrlvfgx/3edxf77xHPN08zzm+1br95XV9no73ddpUb1WT8txf/2e9o2nxyJblpmn50f1/ro/15ttjGq/RfW+RDaP1d/I1u/pfbCzLVG9Pl+e6+ty3Hl6n6z2UaB4e0xHdgxFtu3u063ey8j2p6fle7PuyI4lf/djVOeLyN63yP43ttXTMe9pelTP8eW86ek8Yn7M0/Eb2f71dP7ytI/ctyGy7fV2fybxYh/5sh3eiOzz48151by93mBGkYiIiIgsMVAkIiIiIksMFImIiIjIEgNFIiIiIrLEQJGIiIiILDFQJCIiIiJLDBSJiIiIyBIDRSIiIiKyxEAxhsmZM6eMHz/e5/kGDRokJUqUiPQ5J0+elLCwMNmzZ48fW0hERERxBQPFEIRgb/78+S6P9ezZU1avXu2836pVK2nQoEEQto6IiIhiC17CL5ZInjy53oiIiIgChRnFJ2Du3LlStGhRSZIkiaRLl05q1qwpt27dkqpVq0q3bt1cnousH7J/Zjdu3JA33nhDkiVLJlmzZpVPP/3UpWkaGjZsqJlF47656Rn/z5o1SxYsWKDPwW3dunWW2/rHH3/Iiy++qEFmxowZpXnz5vLff/8FfJ8QERFR6GGgGGDnzp3TIK9NmzZy8OBBDdBeffVVcTgcXi9j1KhRUrx4cdm9e7f06dNHunbtKitXrtRp27dv179fffWVrsu4794M3bRpU6lTp44+B7fy5ctHeN7Vq1elevXqUrJkSdmxY4csW7ZM/v33X52XiIiIiE3PAYag7OHDhxoc5siRQx9DdtEXFSpU0AAR8uXLJ5s2bZJx48ZJrVq1JEOGDPp46tSpJVOmTJbzIzuIbOa9e/c8PgcmT56sQeLw4cOdj82YMUOyZcsmR44c0XUTERFR3MWMYoAhE1ijRg0NDps0aSLTpk2TK1eu+LSMcuXKRbiP7GSg7d27V9auXevs34hbgQIFdNqxY8cs50Hwef36dZebL9lSIiIiCh0MFAMsfvz42ky8dOlSKVSokEyaNEny588vJ06ckHjx4kUIqh48eBC0bb1586bUr19fy+WYb0ePHpXKlStbzjNixAhJlSqVy83x+Ea0bzsRERE9eQwUnwAMHkHz8eDBg7WfYcKECeWXX37RZmM0TRsePXqkg0ncbdmyJcL9ggULOu8nSJBA540M1hnVc5599lk5cOCADojJkyePyw0Daaz07dtXrl275nILi5ci0vUQERFRaGKgGGBbt27VPn8YHHL69GmZN2+eXLx4UQM9DBxZvHix3g4dOiQdOnTQASXu0Cdx5MiR2k8QI55/+uknHdBiQGCHmonnz5/32KyN5+zbt08OHz6so5itMpedOnWSy5cv6+AbDIpBc/Py5culdevWHoPMRIkSScqUKV1uCIyJiIgo9mGgGGAInDZs2CB169bVwSD9+/eXMWPGaAkajIRu2bKltGjRQqpUqSK5cuWSatWqRVhGjx49NNDEQJOhQ4fK2LFjpXbt2s7pWB6atzHoBM+x0q5dO23yLlWqlGYyEXy6y5Iliz6OoPCFF17QfpUo34OBMmgmJyIioriNo54DDJlDlJmxgibjKVOm6C2yy+xFBf0KcTND7UTcDAgOV6xYEWFe9z6SefPm1awnERERkTumjYiIiIjIEgNFIiIiIrLEQJGIiIiILDFQJCIiIiJLDBSJiIiIyBIDRSIiIiKyxECRiIiIiCwxUCQiIiIiSwwUiYiIiMgSA0UiIiIishTmcL+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",
" isbn13 \n",
" isbn10 \n",
" title \n",
" subtitle \n",
" authors \n",
" categories \n",
" thumbnail \n",
" description \n",
" published_year \n",
" average_rating \n",
" num_pages \n",
" ratings_count \n",
" missing_description \n",
" agg_of_book \n",
" age_of_book \n",
" \n",
" \n",
" \n",
" \n",
" 0 \n",
" 9780002005883 \n",
" 0002005883 \n",
" Gilead \n",
" NaN \n",
" Marilynne Robinson \n",
" Fiction \n",
" http://books.google.com/books/content?id=KQZCP... \n",
" A NOVEL THAT READERS and critics have been eag... \n",
" 2004.0 \n",
" 3.85 \n",
" 247.0 \n",
" 361.0 \n",
" 0 \n",
" 21.0 \n",
" 21.0 \n",
" \n",
" \n",
" 1 \n",
" 9780002261982 \n",
" 0002261987 \n",
" Spider's Web \n",
" A Novel \n",
" Charles Osborne;Agatha Christie \n",
" Detective and mystery stories \n",
" http://books.google.com/books/content?id=gA5GP... \n",
" A new 'Christie for Christmas' -- a full-lengt... \n",
" 2000.0 \n",
" 3.83 \n",
" 241.0 \n",
" 5164.0 \n",
" 0 \n",
" 25.0 \n",
" 25.0 \n",
" \n",
" \n",
" 2 \n",
" 9780006163831 \n",
" 0006163831 \n",
" The One Tree \n",
" NaN \n",
" Stephen R. Donaldson \n",
" American fiction \n",
" http://books.google.com/books/content?id=OmQaw... \n",
" Volume Two of Stephen Donaldson's acclaimed se... \n",
" 1982.0 \n",
" 3.97 \n",
" 479.0 \n",
" 172.0 \n",
" 0 \n",
" 43.0 \n",
" 43.0 \n",
" \n",
" \n",
" 3 \n",
" 9780006178736 \n",
" 0006178731 \n",
" Rage of angels \n",
" NaN \n",
" Sidney Sheldon \n",
" Fiction \n",
" http://books.google.com/books/content?id=FKo2T... \n",
" A memorable, mesmerizing heroine Jennifer -- b... \n",
" 1993.0 \n",
" 3.93 \n",
" 512.0 \n",
" 29532.0 \n",
" 0 \n",
" 32.0 \n",
" 32.0 \n",
" \n",
" \n",
" 4 \n",
" 9780006280897 \n",
" 0006280897 \n",
" The Four Loves \n",
" NaN \n",
" Clive Staples Lewis \n",
" Christian life \n",
" http://books.google.com/books/content?id=XhQ5X... \n",
" Lewis' work on the nature of love divides love... \n",
" 2002.0 \n",
" 4.15 \n",
" 170.0 \n",
" 33684.0 \n",
" 0 \n",
" 23.0 \n",
" 23.0 \n",
" \n",
" \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" \n",
" \n",
" 6803 \n",
" 9788173031014 \n",
" 8173031010 \n",
" Journey to the East \n",
" NaN \n",
" Hermann Hesse \n",
" Adventure stories \n",
" http://books.google.com/books/content?id=rq6JP... \n",
" This book tells the tale of a man who goes on ... \n",
" 2002.0 \n",
" 3.70 \n",
" 175.0 \n",
" 24.0 \n",
" 0 \n",
" 23.0 \n",
" 23.0 \n",
" \n",
" \n",
" 6804 \n",
" 9788179921623 \n",
" 817992162X \n",
" The Monk Who Sold His Ferrari: A Fable About F... \n",
" NaN \n",
" Robin Sharma \n",
" Health & Fitness \n",
" http://books.google.com/books/content?id=c_7mf... \n",
" Wisdom to Create a Life of Passion, Purpose, a... \n",
" 2003.0 \n",
" 3.82 \n",
" 198.0 \n",
" 1568.0 \n",
" 0 \n",
" 22.0 \n",
" 22.0 \n",
" \n",
" \n",
" 6805 \n",
" 9788185300535 \n",
" 8185300534 \n",
" I Am that \n",
" Talks with Sri Nisargadatta Maharaj \n",
" Sri Nisargadatta Maharaj;Sudhakar S. Dikshit \n",
" Philosophy \n",
" http://books.google.com/books/content?id=Fv_JP... \n",
" This collection of the timeless teachings of o... \n",
" 1999.0 \n",
" 4.51 \n",
" 531.0 \n",
" 104.0 \n",
" 0 \n",
" 26.0 \n",
" 26.0 \n",
" \n",
" \n",
" 6808 \n",
" 9789027712059 \n",
" 9027712050 \n",
" The Berlin Phenomenology \n",
" NaN \n",
" Georg Wilhelm Friedrich Hegel \n",
" History \n",
" http://books.google.com/books/content?id=Vy7Sk... \n",
" Since the three volume edition ofHegel's Philo... \n",
" 1981.0 \n",
" 0.00 \n",
" 210.0 \n",
" 0.0 \n",
" 0 \n",
" 44.0 \n",
" 44.0 \n",
" \n",
" \n",
" 6809 \n",
" 9789042003408 \n",
" 9042003405 \n",
" 'I'm Telling You Stories' \n",
" Jeanette Winterson and the Politics of Reading \n",
" Helena Grice;Tim Woods \n",
" Literary Criticism \n",
" http://books.google.com/books/content?id=2lVyR... \n",
" This is a jubilant and rewarding collection of... \n",
" 1998.0 \n",
" 3.70 \n",
" 136.0 \n",
" 10.0 \n",
" 0 \n",
" 27.0 \n",
" 27.0 \n",
" \n",
" \n",
"
\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",
" categories \n",
" count \n",
" \n",
" \n",
" \n",
" \n",
" 0 \n",
" Fiction \n",
" 2523 \n",
" \n",
" \n",
" 1 \n",
" Juvenile Fiction \n",
" 534 \n",
" \n",
" \n",
" 2 \n",
" Biography & Autobiography \n",
" 391 \n",
" \n",
" \n",
" 3 \n",
" History \n",
" 258 \n",
" \n",
" \n",
" 4 \n",
" Literary Criticism \n",
" 164 \n",
" \n",
" \n",
" ... \n",
" ... \n",
" ... \n",
" \n",
" \n",
" 526 \n",
" Courage \n",
" 1 \n",
" \n",
" \n",
" 527 \n",
" Otherland (Imaginary place) \n",
" 1 \n",
" \n",
" \n",
" 528 \n",
" Animals \n",
" 1 \n",
" \n",
" \n",
" 529 \n",
" Children of divorced parents \n",
" 1 \n",
" \n",
" \n",
" 530 \n",
" Catholic women \n",
" 1 \n",
" \n",
" \n",
"
\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",
" isbn13 \n",
" isbn10 \n",
" title \n",
" subtitle \n",
" authors \n",
" categories \n",
" thumbnail \n",
" description \n",
" published_year \n",
" average_rating \n",
" num_pages \n",
" ratings_count \n",
" missing_description \n",
" agg_of_book \n",
" age_of_book \n",
" words_in_description \n",
" \n",
" \n",
" \n",
" \n",
" 0 \n",
" 9780002005883 \n",
" 0002005883 \n",
" Gilead \n",
" NaN \n",
" Marilynne Robinson \n",
" Fiction \n",
" http://books.google.com/books/content?id=KQZCP... \n",
" A NOVEL THAT READERS and critics have been eag... \n",
" 2004.0 \n",
" 3.85 \n",
" 247.0 \n",
" 361.0 \n",
" 0 \n",
" 21.0 \n",
" 21.0 \n",
" 199 \n",
" \n",
" \n",
" 1 \n",
" 9780002261982 \n",
" 0002261987 \n",
" Spider's Web \n",
" A Novel \n",
" Charles Osborne;Agatha Christie \n",
" Detective and mystery stories \n",
" http://books.google.com/books/content?id=gA5GP... \n",
" A new 'Christie for Christmas' -- a full-lengt... \n",
" 2000.0 \n",
" 3.83 \n",
" 241.0 \n",
" 5164.0 \n",
" 0 \n",
" 25.0 \n",
" 25.0 \n",
" 205 \n",
" \n",
" \n",
" 2 \n",
" 9780006163831 \n",
" 0006163831 \n",
" The One Tree \n",
" NaN \n",
" Stephen R. Donaldson \n",
" American fiction \n",
" http://books.google.com/books/content?id=OmQaw... \n",
" Volume Two of Stephen Donaldson's acclaimed se... \n",
" 1982.0 \n",
" 3.97 \n",
" 479.0 \n",
" 172.0 \n",
" 0 \n",
" 43.0 \n",
" 43.0 \n",
" 14 \n",
" \n",
" \n",
" 3 \n",
" 9780006178736 \n",
" 0006178731 \n",
" Rage of angels \n",
" NaN \n",
" Sidney Sheldon \n",
" Fiction \n",
" http://books.google.com/books/content?id=FKo2T... \n",
" A memorable, mesmerizing heroine Jennifer -- b... \n",
" 1993.0 \n",
" 3.93 \n",
" 512.0 \n",
" 29532.0 \n",
" 0 \n",
" 32.0 \n",
" 32.0 \n",
" 57 \n",
" \n",
" \n",
" 4 \n",
" 9780006280897 \n",
" 0006280897 \n",
" The Four Loves \n",
" NaN \n",
" Clive Staples Lewis \n",
" Christian life \n",
" http://books.google.com/books/content?id=XhQ5X... \n",
" Lewis' work on the nature of love divides love... \n",
" 2002.0 \n",
" 4.15 \n",
" 170.0 \n",
" 33684.0 \n",
" 0 \n",
" 23.0 \n",
" 23.0 \n",
" 45 \n",
" \n",
" \n",
"
\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",
" isbn13 \n",
" isbn10 \n",
" title \n",
" subtitle \n",
" authors \n",
" categories \n",
" thumbnail \n",
" description \n",
" published_year \n",
" average_rating \n",
" num_pages \n",
" ratings_count \n",
" missing_description \n",
" agg_of_book \n",
" age_of_book \n",
" words_in_description \n",
" \n",
" \n",
" \n",
" \n",
" 0 \n",
" 9780002005883 \n",
" 0002005883 \n",
" Gilead \n",
" NaN \n",
" Marilynne Robinson \n",
" Fiction \n",
" http://books.google.com/books/content?id=KQZCP... \n",
" A NOVEL THAT READERS and critics have been eag... \n",
" 2004.0 \n",
" 3.85 \n",
" 247.0 \n",
" 361.0 \n",
" 0 \n",
" 21.0 \n",
" 21.0 \n",
" 199 \n",
" \n",
" \n",
" 1 \n",
" 9780002261982 \n",
" 0002261987 \n",
" Spider's Web \n",
" A Novel \n",
" Charles Osborne;Agatha Christie \n",
" Detective and mystery stories \n",
" http://books.google.com/books/content?id=gA5GP... \n",
" A new 'Christie for Christmas' -- a full-lengt... \n",
" 2000.0 \n",
" 3.83 \n",
" 241.0 \n",
" 5164.0 \n",
" 0 \n",
" 25.0 \n",
" 25.0 \n",
" 205 \n",
" \n",
" \n",
" 3 \n",
" 9780006178736 \n",
" 0006178731 \n",
" Rage of angels \n",
" NaN \n",
" Sidney Sheldon \n",
" Fiction \n",
" http://books.google.com/books/content?id=FKo2T... \n",
" A memorable, mesmerizing heroine Jennifer -- b... \n",
" 1993.0 \n",
" 3.93 \n",
" 512.0 \n",
" 29532.0 \n",
" 0 \n",
" 32.0 \n",
" 32.0 \n",
" 57 \n",
" \n",
" \n",
" 4 \n",
" 9780006280897 \n",
" 0006280897 \n",
" The Four Loves \n",
" NaN \n",
" Clive Staples Lewis \n",
" Christian life \n",
" http://books.google.com/books/content?id=XhQ5X... \n",
" Lewis' work on the nature of love divides love... \n",
" 2002.0 \n",
" 4.15 \n",
" 170.0 \n",
" 33684.0 \n",
" 0 \n",
" 23.0 \n",
" 23.0 \n",
" 45 \n",
" \n",
" \n",
" 5 \n",
" 9780006280934 \n",
" 0006280935 \n",
" The Problem of Pain \n",
" NaN \n",
" Clive Staples Lewis \n",
" Christian life \n",
" http://books.google.com/books/content?id=Kk-uV... \n",
" \"In The Problem of Pain, C.S. Lewis, one of th... \n",
" 2002.0 \n",
" 4.09 \n",
" 176.0 \n",
" 37569.0 \n",
" 0 \n",
" 23.0 \n",
" 23.0 \n",
" 75 \n",
" \n",
" \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" ... \n",
" \n",
" \n",
" 6802 \n",
" 9788172235222 \n",
" 8172235224 \n",
" Mistaken Identity \n",
" NaN \n",
" Nayantara Sahgal \n",
" Indic fiction (English) \n",
" http://books.google.com/books/content?id=q-tKP... \n",
" On A Train Journey Home To North India After L... \n",
" 2003.0 \n",
" 2.93 \n",
" 324.0 \n",
" 0.0 \n",
" 0 \n",
" 22.0 \n",
" 22.0 \n",
" 288 \n",
" \n",
" \n",
" 6803 \n",
" 9788173031014 \n",
" 8173031010 \n",
" Journey to the East \n",
" NaN \n",
" Hermann Hesse \n",
" Adventure stories \n",
" http://books.google.com/books/content?id=rq6JP... \n",
" This book tells the tale of a man who goes on ... \n",
" 2002.0 \n",
" 3.70 \n",
" 175.0 \n",
" 24.0 \n",
" 0 \n",
" 23.0 \n",
" 23.0 \n",
" 63 \n",
" \n",
" \n",
" 6804 \n",
" 9788179921623 \n",
" 817992162X \n",
" The Monk Who Sold His Ferrari: A Fable About F... \n",
" NaN \n",
" Robin Sharma \n",
" Health & Fitness \n",
" http://books.google.com/books/content?id=c_7mf... \n",
" Wisdom to Create a Life of Passion, Purpose, a... \n",
" 2003.0 \n",
" 3.82 \n",
" 198.0 \n",
" 1568.0 \n",
" 0 \n",
" 22.0 \n",
" 22.0 \n",
" 117 \n",
" \n",
" \n",
" 6805 \n",
" 9788185300535 \n",
" 8185300534 \n",
" I Am that \n",
" Talks with Sri Nisargadatta Maharaj \n",
" Sri Nisargadatta Maharaj;Sudhakar S. Dikshit \n",
" Philosophy \n",
" http://books.google.com/books/content?id=Fv_JP... \n",
" This collection of the timeless teachings of o... \n",
" 1999.0 \n",
" 4.51 \n",
" 531.0 \n",
" 104.0 \n",
" 0 \n",
" 26.0 \n",
" 26.0 \n",
" 174 \n",
" \n",
" \n",
" 6808 \n",
" 9789027712059 \n",
" 9027712050 \n",
" The Berlin Phenomenology \n",
" NaN \n",
" Georg Wilhelm Friedrich Hegel \n",
" History \n",
" http://books.google.com/books/content?id=Vy7Sk... \n",
" Since the three volume edition ofHegel's Philo... \n",
" 1981.0 \n",
" 0.00 \n",
" 210.0 \n",
" 0.0 \n",
" 0 \n",
" 44.0 \n",
" 44.0 \n",
" 245 \n",
" \n",
" \n",
"
\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",
" isbn13 \n",
" isbn10 \n",
" title \n",
" subtitle \n",
" authors \n",
" categories \n",
" thumbnail \n",
" description \n",
" published_year \n",
" average_rating \n",
" num_pages \n",
" ratings_count \n",
" missing_description \n",
" agg_of_book \n",
" age_of_book \n",
" words_in_description \n",
" title_and_subtitle \n",
" \n",
" \n",
" \n",
" \n",
" 0 \n",
" 9780002005883 \n",
" 0002005883 \n",
" Gilead \n",
" NaN \n",
" Marilynne Robinson \n",
" Fiction \n",
" http://books.google.com/books/content?id=KQZCP... \n",
" A NOVEL THAT READERS and critics have been eag... \n",
" 2004.0 \n",
" 3.85 \n",
" 247.0 \n",
" 361.0 \n",
" 0 \n",
" 21.0 \n",
" 21.0 \n",
" 199 \n",
" Gilead \n",
" \n",
" \n",
" 1 \n",
" 9780002261982 \n",
" 0002261987 \n",
" Spider's Web \n",
" A Novel \n",
" Charles Osborne;Agatha Christie \n",
" Detective and mystery stories \n",
" http://books.google.com/books/content?id=gA5GP... \n",
" A new 'Christie for Christmas' -- a full-lengt... \n",
" 2000.0 \n",
" 3.83 \n",
" 241.0 \n",
" 5164.0 \n",
" 0 \n",
" 25.0 \n",
" 25.0 \n",
" 205 \n",
" Spider's Web: A Novel \n",
" \n",
" \n",
" 3 \n",
" 9780006178736 \n",
" 0006178731 \n",
" Rage of angels \n",
" NaN \n",
" Sidney Sheldon \n",
" Fiction \n",
" http://books.google.com/books/content?id=FKo2T... \n",
" A memorable, mesmerizing heroine Jennifer -- b... \n",
" 1993.0 \n",
" 3.93 \n",
" 512.0 \n",
" 29532.0 \n",
" 0 \n",
" 32.0 \n",
" 32.0 \n",
" 57 \n",
" Rage of angels \n",
" \n",
" \n",
" 4 \n",
" 9780006280897 \n",
" 0006280897 \n",
" The Four Loves \n",
" NaN \n",
" Clive Staples Lewis \n",
" Christian life \n",
" http://books.google.com/books/content?id=XhQ5X... \n",
" Lewis' work on the nature of love divides love... \n",
" 2002.0 \n",
" 4.15 \n",
" 170.0 \n",
" 33684.0 \n",
" 0 \n",
" 23.0 \n",
" 23.0 \n",
" 45 \n",
" The Four Loves \n",
" \n",
" \n",
" 5 \n",
" 9780006280934 \n",
" 0006280935 \n",
" The Problem of Pain \n",
" NaN \n",
" Clive Staples Lewis \n",
" Christian life \n",
" http://books.google.com/books/content?id=Kk-uV... \n",
" \"In The Problem of Pain, C.S. Lewis, one of th... \n",
" 2002.0 \n",
" 4.09 \n",
" 176.0 \n",
" 37569.0 \n",
" 0 \n",
" 23.0 \n",
" 23.0 \n",
" 75 \n",
" The Problem of Pain \n",
" \n",
" \n",
"
\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",
" isbn13 \n",
" isbn10 \n",
" title \n",
" subtitle \n",
" authors \n",
" categories \n",
" thumbnail \n",
" description \n",
" published_year \n",
" average_rating \n",
" num_pages \n",
" ratings_count \n",
" missing_description \n",
" agg_of_book \n",
" age_of_book \n",
" words_in_description \n",
" title_and_subtitle \n",
" tagged_description \n",
" \n",
" \n",
" \n",
" \n",
" 0 \n",
" 9780002005883 \n",
" 0002005883 \n",
" Gilead \n",
" NaN \n",
" Marilynne Robinson \n",
" Fiction \n",
" http://books.google.com/books/content?id=KQZCP... \n",
" A NOVEL THAT READERS and critics have been eag... \n",
" 2004.0 \n",
" 3.85 \n",
" 247.0 \n",
" 361.0 \n",
" 0 \n",
" 21.0 \n",
" 21.0 \n",
" 199 \n",
" Gilead \n",
" 9780002005883 A NOVEL THAT READERS and critics... \n",
" \n",
" \n",
" 1 \n",
" 9780002261982 \n",
" 0002261987 \n",
" Spider's Web \n",
" A Novel \n",
" Charles Osborne;Agatha Christie \n",
" Detective and mystery stories \n",
" http://books.google.com/books/content?id=gA5GP... \n",
" A new 'Christie for Christmas' -- a full-lengt... \n",
" 2000.0 \n",
" 3.83 \n",
" 241.0 \n",
" 5164.0 \n",
" 0 \n",
" 25.0 \n",
" 25.0 \n",
" 205 \n",
" Spider's Web: A Novel \n",
" 9780002261982 A new 'Christie for Christmas' -... \n",
" \n",
" \n",
" 3 \n",
" 9780006178736 \n",
" 0006178731 \n",
" Rage of angels \n",
" NaN \n",
" Sidney Sheldon \n",
" Fiction \n",
" http://books.google.com/books/content?id=FKo2T... \n",
" A memorable, mesmerizing heroine Jennifer -- b... \n",
" 1993.0 \n",
" 3.93 \n",
" 512.0 \n",
" 29532.0 \n",
" 0 \n",
" 32.0 \n",
" 32.0 \n",
" 57 \n",
" Rage of angels \n",
" 9780006178736 A memorable, mesmerizing heroine... \n",
" \n",
" \n",
" 4 \n",
" 9780006280897 \n",
" 0006280897 \n",
" The Four Loves \n",
" NaN \n",
" Clive Staples Lewis \n",
" Christian life \n",
" http://books.google.com/books/content?id=XhQ5X... \n",
" Lewis' work on the nature of love divides love... \n",
" 2002.0 \n",
" 4.15 \n",
" 170.0 \n",
" 33684.0 \n",
" 0 \n",
" 23.0 \n",
" 23.0 \n",
" 45 \n",
" The Four Loves \n",
" 9780006280897 Lewis' work on the nature of lov... \n",
" \n",
" \n",
" 5 \n",
" 9780006280934 \n",
" 0006280935 \n",
" The Problem of Pain \n",
" NaN \n",
" Clive Staples Lewis \n",
" Christian life \n",
" http://books.google.com/books/content?id=Kk-uV... \n",
" \"In The Problem of Pain, C.S. Lewis, one of th... \n",
" 2002.0 \n",
" 4.09 \n",
" 176.0 \n",
" 37569.0 \n",
" 0 \n",
" 23.0 \n",
" 23.0 \n",
" 75 \n",
" The Problem of Pain \n",
" 9780006280934 \"In The Problem of Pain, C.S. Le... \n",
" \n",
" \n",
"
\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
}