{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "a92ddba5",
   "metadata": {},
   "source": [
    "# Lesson 15 Activity: Data Wrangling\n",
    "\n",
    "## Learning Objectives\n",
    "\n",
    "This activity will help you to:\n",
    "\n",
    "1. Merge and aggregate data from multiple sources\n",
    "2. Apply groupby operations to summarize data\n",
    "3. Calculate meaningful statistics from aggregated data\n",
    "4. Visualize aggregated results"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "28c8b549",
   "metadata": {},
   "source": [
    "## Setup\n",
    "\n",
    "Import the required libraries."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "7248ac92",
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "from scipy import stats\n",
    "from sklearn.impute import KNNImputer"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "de1e8cc9",
   "metadata": {},
   "source": [
    "## Exercise 1: Merge Data and Calculate Monthly Sales\n",
    "\n",
    "**Tasks**:\n",
    "\n",
    "1. Merge `df_sales` and `df_dates` on the `transaction_id` column. Store the result in a dataframe called `df_transactions`.\n",
    "\n",
    "2. Extract the month from the `sale_date` column and add it as a new column called `month` in `df_transactions`.\n",
    "\n",
    "3. Calculate the total sales per month using groupby and sum. Store the result in a dataframe called `monthly_sales`.\n",
    "\n",
    "4. Create a bar chart showing the total sales for each month. Include appropriate labels and title.\n",
    "\n",
    "**Hints**:\n",
    "\n",
    "- To merge two dataframes, use `pd.merge()` or the `.merge()` method. You can specify the column to join on with the `on` parameter.\n",
    "  - Example: `df_merged = pd.merge(df1, df2, on='key_column')`\n",
    "  - Or: `df_merged = df1.merge(df2, on='key_column')`\n",
    "\n",
    "- To extract the month from a datetime column, use the `.dt.month` accessor.\n",
    "  - Example: `df['month'] = df['date_column'].dt.month`\n",
    "\n",
    "- To group by a column and calculate the sum, use `.groupby()` followed by `.sum()`.\n",
    "  - Example: `grouped_df = df.groupby('group_column')['value_column'].sum()`\n",
    "  - You can also use `.reset_index()` to convert the result back to a regular dataframe."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "d6a058a0",
   "metadata": {},
   "outputs": [],
   "source": [
    "df_sales = pd.read_csv('https://gperdrizet.github.io/FSA_devops/assets/data/unit2/sale_amounts.csv')\n",
    "df_dates = pd.read_csv('https://gperdrizet.github.io/FSA_devops/assets/data/unit2/sales_by_date.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "ed7fac23",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkQAAAHHCAYAAABeLEexAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjcsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvTLEjVAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAPflJREFUeJzt3Xt8jvXjx/H3bexgtjFss8zMIcz5EI1KahmWKBFRRHzTxCjJt3IqZA7JIdIB9SWqL5IKI4fKYWusFC19Y1s0azFj2sF2/f7o4f65m7Jp27W5Xs/H4348dn+uz31d73t093adbpthGIYAAAAsrILZAQAAAMxGIQIAAJZHIQIAAJZHIQIAAJZHIQIAAJZHIQIAAJZHIQIAAJZHIQIAAJZHIQIAAJZHIQJwzXbu3CmbzaadO3eW2janTJkim81WatuTpNtvv13NmjUr1W2WdfxOcL2hEAHljM1mK9SjMCVlxowZ2rBhQ4lnRvl08uRJTZkyRfHx8WZHAUpcRbMDACiad955x+H522+/rejo6ALjTZo0ueq6ZsyYofvvv1+9e/cuzoi4Tpw8eVJTp05V3bp11apVK7PjACWKQgSUM4MGDXJ4vm/fPkVHRxcYBwAUHofMgOtQZmamnnzySQUEBMjFxUWNGjXSnDlzZBiGfY7NZlNmZqZWrlxpP8w2ZMgQSVJiYqIef/xxNWrUSG5ubqpevbr69u2r48ePX1Oec+fOKTIyUnXr1pWLi4t8fHx011136cCBA/Y5n3/+ufr27as6derIxcVFAQEBGjt2rH7//fdCbeM///mP2rZtKzc3N3l7e6t///5KTk52mHP06FH16dNHfn5+cnV1Ve3atdW/f3+dPXu2UNuIi4tTx44d5ebmpqCgIC1dutS+7Pz583J3d9eYMWMKvO7nn3+Wk5OTZs6c+ZfrPn78uGw2m+bMmaPFixerXr16qly5srp27ark5GQZhqEXXnhBtWvXlpubm3r16qXTp08XWM+rr76qpk2bysXFRf7+/oqIiFB6errDnEvn/xw+fFhdunRR5cqVdcMNNygqKso+Z+fOnbrpppskSY888oj978iKFSsc1vV36wDKE/YQAdcZwzB0zz33aMeOHRo2bJhatWqlLVu2aPz48Tpx4oRefvllSX8cenv00UfVvn17jRgxQpJUv359SVJsbKz27Nmj/v37q3bt2jp+/LiWLFmi22+/XYcPH1blypWLlOmxxx7TBx98oFGjRik4OFi//fabvvjiCx05ckRt2rSRJL3//vu6cOGCRo4cqerVqysmJkYLFy7Uzz//rPfff/9v1z99+nQ9//zz6tevnx599FH9+uuvWrhwoW677TYdPHhQVatWVU5OjsLCwpSdna0nnnhCfn5+OnHihDZt2qT09HR5eXn97TbOnDmjHj16qF+/fhowYIDee+89jRw5Us7Ozho6dKiqVKmie++9V2vXrtW8efPk5ORkf+27774rwzA0cODAq/6uVq1apZycHD3xxBM6ffq0oqKi1K9fP91xxx3auXOnJkyYoB9//FELFy7UU089pbfeesv+2ilTpmjq1KkKDQ3VyJEjlZCQoCVLlig2NlZffvmlKlWq5PB+unXrpvvuu0/9+vXTBx98oAkTJqh58+bq3r27mjRpomnTpmnSpEkaMWKEbr31VklSx44dC70OoFwxAJRrERERxuX/KW/YsMGQZLz44osO8+6//37DZrMZP/74o33M3d3dGDx4cIF1XrhwocDY3r17DUnG22+/bR/bsWOHIcnYsWPH32b08vIyIiIi/nbOlbY5c+ZMw2azGYmJifaxyZMnO7zf48ePG05OTsb06dMdXnvo0CGjYsWK9vGDBw8akoz333//b3NcSefOnQ1Jxty5c+1j2dnZRqtWrQwfHx8jJyfHMAzD2LJliyHJ+PTTTx1e36JFC6Nz585/u41jx44ZkoyaNWsa6enp9vGJEycakoyWLVsaubm59vEBAwYYzs7ORlZWlmEYhpGammo4OzsbXbt2NfLy8uzzFi1aZEgy3nrrrQLv5/I/y+zsbMPPz8/o06ePfSw2NtaQZCxfvvwvfydXWwdQXnDIDLjOfPLJJ3JyctLo0aMdxp988kkZhqFPP/30qutwc3Oz/5ybm6vffvtNDRo0UNWqVR0OcxVW1apVtX//fp08ebJQ28zMzFRaWpo6duwowzB08ODBv3zdunXrlJ+fr379+iktLc3+8PPzU8OGDbVjxw5Jsu8B2rJliy5cuFDk91CxYkX961//sj93dnbWv/71L6WmpiouLk6SFBoaKn9/f61atco+79tvv9U333xT6HO8+vbt67C3qkOHDpL+OHesYsWKDuM5OTk6ceKEJGnbtm3KyclRZGSkKlT4/4/24cOHy9PTUx9//LHDdqpUqeKQydnZWe3bt9dPP/1UqJzFtQ6grKAQAdeZxMRE+fv7y8PDw2H80lVniYmJV13H77//rkmTJtnPQapRo4Zq1qyp9PT0Qp9vc7moqCh9++23CggIUPv27TVlypQC/9NMSkrSkCFD5O3trSpVqqhmzZrq3LmzJP3tNo8ePSrDMNSwYUPVrFnT4XHkyBGlpqZKkoKCgjRu3Di98cYbqlGjhsLCwrR48eJCvx9/f3+5u7s7jN14442SZD+3qkKFCho4cKA2bNhgL12rVq2Sq6ur+vbtW6jt1KlTx+H5pXIUEBBwxfEzZ85I+v8/10aNGjnMc3Z2Vr169Qr8udeuXbvA/ZyqVatmX19hFMc6gLKCc4gAFPDEE09o+fLlioyMVEhIiLy8vGSz2dS/f3/l5+cXeX39+vXTrbfeqvXr12vr1q2aPXu2Zs2apXXr1ql79+7Ky8vTXXfdpdOnT2vChAlq3Lix3N3ddeLECQ0ZMuRvt5mfny+bzaZPP/3U4bydS6pUqWL/ee7cuRoyZIg+/PBDbd26VaNHj9bMmTO1b98+1a5du8jv60oefvhhzZ49Wxs2bNCAAQO0evVq3X333Vc9R+mSK72Hvxs3LjtRviiKY33FnQkwE4UIuM4EBgZq27ZtOnfunMNeou+//96+/JK/uuPzBx98oMGDB2vu3Ln2saysrAJXKxVFrVq19Pjjj+vxxx9Xamqq2rRpo+nTp6t79+46dOiQfvjhB61cuVIPP/yw/TXR0dFXXW/9+vVlGIaCgoLse2z+TvPmzdW8eXM999xz2rNnjzp16qSlS5fqxRdf/NvXnTx5UpmZmQ57iX744QdJUt26de1jzZo1U+vWrbVq1SrVrl1bSUlJWrhw4VVz/VOX/lwTEhJUr149+3hOTo6OHTum0NDQIq+ztO8IDpiJQ2bAdaZHjx7Ky8vTokWLHMZffvll2Ww2h6t/3N3dr1hynJycCvwrf+HChcrLyytynry8vAKHpXx8fOTv76/s7Gz79iTHPQuGYeiVV1656vrvu+8+OTk5aerUqQUyG4ah3377TZKUkZGhixcvOixv3ry5KlSoYM/xdy5evKjXXnvN/jwnJ0evvfaaatasqbZt2zrMfeihh7R161bNnz9f1atXL5UrrkJDQ+Xs7KwFCxY4/B7efPNNnT17VuHh4UVe56Xy90+KMFBesIcIuM707NlTXbp00bPPPqvjx4+rZcuW2rp1qz788ENFRkbaL62XpLZt22rbtm2aN2+e/P39FRQUpA4dOujuu+/WO++8Iy8vLwUHB2vv3r3atm2bqlevXuQ8586dU+3atXX//ferZcuWqlKlirZt26bY2Fj7HqjGjRurfv36euqpp3TixAl5enrqv//9b6HORalfv75efPFFTZw4UcePH1fv3r3l4eGhY8eOaf369RoxYoSeeuopffbZZxo1apT69u2rG2+8URcvXtQ777wjJycn9enT56rb8ff316xZs3T8+HHdeOONWrt2reLj47Vs2TKHy9kl6cEHH9TTTz+t9evXa+TIkQWWl4SaNWtq4sSJmjp1qrp166Z77rlHCQkJevXVV3XTTTdd040769evr6pVq2rp0qXy8PCQu7u7OnTooKCgoBJ4B4DJTLm2DUCx+fNl94ZhGOfOnTPGjh1r+Pv7G5UqVTIaNmxozJ4928jPz3eY9/333xu33Xab4ebmZkiyX4J/5swZ45FHHjFq1KhhVKlSxQgLCzO+//57IzAw0OEy/cJcdp+dnW2MHz/eaNmypeHh4WG4u7sbLVu2NF599VWHeYcPHzZCQ0ONKlWqGDVq1DCGDx9ufP311wUu+/7zZfeX/Pe//zVuueUWw93d3XB3dzcaN25sREREGAkJCYZhGMZPP/1kDB061Khfv77h6upqeHt7G126dDG2bdt21d9x586djaZNmxpfffWVERISYri6uhqBgYHGokWL/vI1PXr0MCQZe/bsuer6DeP/L7ufPXu2w/il3/GfbxewfPlyQ5IRGxvrML5o0SKjcePGRqVKlQxfX19j5MiRxpkzZ674fv5s8ODBRmBgoMPYhx9+aAQHBxsVK1Z0+LMoyjqA8sBmGJz9BgDF7d5779WhQ4f0448/mh0FQCFwDhEAFLNffvlFH3/8sR566CGzowAoJM4hAoBicuzYMX355Zd64403VKlSJYcbOQIo29hDBADFZNeuXXrooYd07NgxrVy5Un5+fmZHAlBInEMEAAAsjz1EAADA8ihEAADA8jipuhDy8/N18uRJeXh4cCt7AADKCcMwdO7cOfn7+6tChb/fB0QhKoSTJ08W+KZpAABQPiQnJ1/1C5wpRIVw6Qsyk5OT5enpaXIaAABQGBkZGQoICHD4ouu/QiEqhEuHyTw9PSlEAACU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wYMHi5wRAABc/8rMVWYAAABmoRABAADLoxABAADLoxABAADLoxABAADLoxABAADLoxABAADLoxABAADLoxABAADLoxABAADLoxABAADLoxABAADLoxABAADLoxABAADLoxABAADLoxABAADLoxABAADLoxABAADLoxABAADLoxABAADLoxABAADLoxABAADLoxABAADLoxABAADLoxABAADLoxABAADLoxABAADLoxABAADLoxABAADLoxABAADLoxABAADLoxABAADLoxABAADLoxABAADLoxABAADLoxABAADLoxABAADLoxABAADLoxABAADLoxABAADLoxABAADLoxABAADLoxABAADLoxABAADLoxABAADLoxABAADLoxABAADLoxABAADLoxABAADLoxABAADLoxABAADLoxABAADLoxABAADLoxABAADLoxABAADLoxABAADLoxABAADLoxABAADLoxABAADLoxABAADLoxABAADLoxABAADLoxABAADLoxABAADLoxABAADLoxABAADLs1QhWrx4serWrStXV1d16NBBMTExZkcCAABlgGUK0dq1azVu3DhNnjxZBw4cUMuWLRUWFqbU1FSzowEAAJNZphDNmzdPw4cP1yOPPKLg4GAtXbpUlStX1ltvvWV2NAAAYDJLFKKcnBzFxcUpNDTUPlahQgWFhoZq7969JiYDAABlQUWzA5SGtLQ05eXlydfX12Hc19dX33//fYH52dnZys7Otj8/e/asJCkjI6PYs50/f77Y13ktGf783sj1166U69K4mchVdOXp71hZzXVp3EzkKrry9nfsWl1al2EYV59sWMCJEycMScaePXscxsePH2+0b9++wPzJkycbknjw4MGDBw8e18EjOTn5ql3BEnuIatSoIScnJ506dcph/NSpU/Lz8yswf+LEiRo3bpz9eX5+vk6fPq3q1avLZrOVeN7CysjIUEBAgJKTk+Xp6Wl2HLuymksqu9nIVTRlNZdUdrORq2jIVXRlMZthGDp37pz8/f2vOtcShcjZ2Vlt27bV9u3b1bt3b0l/lJzt27dr1KhRBea7uLjIxcXFYaxq1aqlkPTaeHp6lpm/fJcrq7mkspuNXEVTVnNJZTcbuYqGXEVX1rJ5eXkVap4lCpEkjRs3ToMHD1a7du3Uvn17zZ8/X5mZmXrkkUfMjgYAAExmmUL0wAMP6Ndff9WkSZOUkpKiVq1aafPmzQVOtAYAANZjmUIkSaNGjbriIbLyysXFRZMnTy5weM9sZTWXVHazkatoymouqexmI1fRkKvoynK2wrAZRmGuRQMAALh+WeLGjAAAAH+HQgQAACyPQgQAACyPQgQAACyPQlQO7d69Wz179pS/v79sNps2bNhgdiRJ0syZM3XTTTfJw8NDPj4+6t27txISEsyOpSVLlqhFixb2m4WFhITo008/NTtWAS+99JJsNpsiIyPNjqIpU6bIZrM5PBo3bmx2LEnSiRMnNGjQIFWvXl1ubm5q3ry5vvrqK1Mz1a1bt8Dvy2azKSIiwtRceXl5ev755xUUFCQ3NzfVr19fL7zwQuG+16mEnTt3TpGRkQoMDJSbm5s6duyo2NjYUs9xtc9TwzA0adIk1apVS25ubgoNDdXRo0dNz7Vu3Tp17drV/g0K8fHxJZ7parlyc3M1YcIENW/eXO7u7vL399fDDz+skydPlkq2f4pCVA5lZmaqZcuWWrx4sdlRHOzatUsRERHat2+foqOjlZubq65duyozM9PUXLVr19ZLL72kuLg4ffXVV7rjjjvUq1cvfffdd6bmulxsbKxee+01tWjRwuwodk2bNtUvv/xif3zxxRdmR9KZM2fUqVMnVapUSZ9++qkOHz6suXPnqlq1aqbmio2NdfhdRUdHS5L69u1raq5Zs2ZpyZIlWrRokY4cOaJZs2YpKipKCxcuNDWXJD366KOKjo7WO++8o0OHDqlr164KDQ3ViRMnSjXH1T5Po6KitGDBAi1dulT79++Xu7u7wsLClJWVZWquzMxM3XLLLZo1a1aJ5ihKrgsXLujAgQN6/vnndeDAAa1bt04JCQm65557SjXjNSuOL0+FeSQZ69evNzvGFaWmphqSjF27dpkdpYBq1aoZb7zxhtkxDMMwjHPnzhkNGzY0oqOjjc6dOxtjxowxO5IxefJko2XLlmbHKGDChAnGLbfcYnaMqxozZoxRv359Iz8/39Qc4eHhxtChQx3G7rvvPmPgwIEmJfrDhQsXDCcnJ2PTpk0O423atDGeffZZk1IV/DzNz883/Pz8jNmzZ9vH0tPTDRcXF+Pdd981Ldfljh07ZkgyDh48WGp5LinM/39iYmIMSUZiYmLphPoH2EOEEnP27FlJkre3t8lJ/l9eXp7WrFmjzMxMhYSEmB1HkhQREaHw8HCFhoaaHcXB0aNH5e/vr3r16mngwIFKSkoyO5I2btyodu3aqW/fvvLx8VHr1q31+uuvmx3LQU5Ojv7zn/9o6NChpn8ZdMeOHbV9+3b98MMPkqSvv/5aX3zxhbp3725qrosXLyovL0+urq4O425ubmViT+Qlx44dU0pKisN/m15eXurQoYP27t1rYrLy4+zZs7LZbGX6+0AvsdSdqlF68vPzFRkZqU6dOqlZs2Zmx9GhQ4cUEhKirKwsValSRevXr1dwcLDZsbRmzRodOHDAlHMn/k6HDh20YsUKNWrUSL/88oumTp2qW2+9Vd9++608PDxMy/XTTz9pyZIlGjdunP79738rNjZWo0ePlrOzswYPHmxarstt2LBB6enpGjJkiNlR9MwzzygjI0ONGzeWk5OT8vLyNH36dA0cONDUXB4eHgoJCdELL7ygJk2ayNfXV++++6727t2rBg0amJrtcikpKZJU4CuefH197cvw17KysjRhwgQNGDCgTH3Z61+hEKFERERE6Ntvvy0z/9pr1KiR4uPjdfbsWX3wwQcaPHiwdu3aZWopSk5O1pgxYxQdHV3gX8pmu3wPQosWLdShQwcFBgbqvffe07Bhw0zLlZ+fr3bt2mnGjBmSpNatW+vbb7/V0qVLy0whevPNN9W9e3f5+/ubHUXvvfeeVq1apdWrV6tp06aKj49XZGSk/P39Tf99vfPOOxo6dKhuuOEGOTk5qU2bNhowYIDi4uJMzYXikZubq379+skwDC1ZssTsOIXCITMUu1GjRmnTpk3asWOHateubXYcSZKzs7MaNGigtm3baubMmWrZsqVeeeUVUzPFxcUpNTVVbdq0UcWKFVWxYkXt2rVLCxYsUMWKFZWXl2dqvstVrVpVN954o3788UdTc9SqVatAiW3SpEmZOJwnSYmJidq2bZseffRRs6NIksaPH69nnnlG/fv3V/PmzfXQQw9p7NixmjlzptnRVL9+fe3atUvnz59XcnKyYmJilJubq3r16pkdzc7Pz0+SdOrUKYfxU6dO2ZehoEtlKDExUdHR0eVi75BEIUIxMgxDo0aN0vr16/XZZ58pKCjI7Eh/KT8/X9nZ2aZmuPPOO3Xo0CHFx8fbH+3atdPAgQMVHx8vJycnU/Nd7vz58/rf//6nWrVqmZqjU6dOBW7l8MMPPygwMNCkRI6WL18uHx8fhYeHmx1F0h9X/VSo4Pgx7+TkpPz8fJMSFeTu7q5atWrpzJkz2rJli3r16mV2JLugoCD5+flp+/bt9rGMjAzt37+/zJyDWNZcKkNHjx7Vtm3bVL16dbMjFRqHzMqh8+fPO/xL/dixY4qPj5e3t7fq1KljWq6IiAitXr1aH374oTw8POzH2L28vOTm5mZarokTJ6p79+6qU6eOzp07p9WrV2vnzp3asmWLaZmkP86j+PP5Ve7u7qpevbrp51099dRT6tmzpwIDA3Xy5ElNnjxZTk5OGjBggKm5xo4dq44dO2rGjBnq16+fYmJitGzZMi1btszUXNIfJXv58uUaPHiwKlYsGx+tPXv21PTp01WnTh01bdpUBw8e1Lx58zR06FCzo2nLli0yDEONGjXSjz/+qPHjx6tx48Z65JFHSjXH1T5PIyMj9eKLL6phw4YKCgrS888/L39/f/Xu3dvUXKdPn1ZSUpL9Hj+X/qHg5+dXonuv/i5XrVq1dP/99+vAgQPatGmT8vLy7P8f8Pb2lrOzc4nlKhYmX+WGa7Bjxw5DUoHH4MGDTc11pUySjOXLl5uaa+jQoUZgYKDh7Oxs1KxZ07jzzjuNrVu3mprpr5SVy+4feOABo1atWoazs7Nxww03GA888IDx448/mh3LMAzD+Oijj4xmzZoZLi4uRuPGjY1ly5aZHckwDMPYsmWLIclISEgwO4pdRkaGMWbMGKNOnTqGq6urUa9ePePZZ581srOzzY5mrF271qhXr57h7Oxs+Pn5GREREUZ6enqp57ja52l+fr7x/PPPG76+voaLi4tx5513lsqf8dVyLV++/IrLJ0+ebFquS7cAuNJjx44dJZqrONgMowzcshQAAMBEnEMEAAAsj0IEAAAsj0IEAAAsj0IEAAAsj0IEAAAsj0IEAAAsj0IEAAAsj0IEANfIZrNpw4YNZscAUAwoRADKnSFDhshms+mxxx4rsCwiIkI2m01Dhgwptu1NmTJFrVq1Krb1ASh7KEQAyqWAgACtWbNGv//+u30sKytLq1evNvU7/QCUTxQiAOVSmzZtFBAQoHXr1tnH1q1bpzp16qh169b2sezsbI0ePVo+Pj5ydXXVLbfcotjYWPvynTt3ymazafv27WrXrp0qV66sjh072r8sc8WKFZo6daq+/vpr2Ww22Ww2rVixwv76tLQ03XvvvapcubIaNmyojRs3lvybB1DsKEQAyq2hQ4dq+fLl9udvvfVWgW9Lf/rpp/Xf//5XK1eu1IEDB9SgQQOFhYXp9OnTDvOeffZZzZ07V1999ZUqVqxo/0b4Bx54QE8++aSaNm2qX375Rb/88oseeOAB++umTp2qfv366ZtvvlGPHj00cODAAusGUPZRiACUW4MGDdIXX3yhxMREJSYm6ssvv9SgQYPsyzMzM7VkyRLNnj1b3bt3V3BwsF5//XW5ubnpzTffdFjX9OnT1blzZwUHB+uZZ57Rnj17lJWVJTc3N1WpUkUVK1aUn5+f/Pz85ObmZn/dkCFDNGDAADVo0EAzZszQ+fPnFRMTU2q/AwDFo6LZAQDgWtWsWVPh4eFasWKFDMNQeHi4atSoYV/+v//9T7m5uerUqZN9rFKlSmrfvr2OHDnisK4WLVrYf65Vq5YkKTU19arnI13+Ond3d3l6eio1NfUfvS8ApY9CBKBcGzp0qEaNGiVJWrx48TWvp1KlSvafbTabJCk/P79Ir7v02sK8DkDZwiEzAOVat27dlJOTo9zcXIWFhTksq1+/vpydnfXll1/ax3JzcxUbG6vg4OBCb8PZ2Vl5eXnFlhlA2cMeIgDlmpOTk/3wl5OTk8Myd3d3jRw5UuPHj5e3t7fq1KmjqKgoXbhwQcOGDSv0NurWratjx44pPj5etWvXloeHh1xcXIr1fQAwF4UIQLnn6en5l8teeukl5efn66GHHtK5c+fUrl07bdmyRdWqVSv0+vv06aN169apS5cuSk9P1/Lly4v1xo8AzGczDMMwOwQAAICZOIcIAABYHoUIAABYHoUIAABYHoUIAABYHoUIAABYHoUIAABYHoUIAABYHoUIAABYHoUIAABYHoUIAABYHoUIAABYHoUIAABY3v8BStteRkrRp8QAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Merge df_sales and df_dates on transaction_id\n",
    "df_transactions = pd.merge(df_sales, df_dates, on='transaction_id')\n",
    "\n",
    "# Extract month from sale_date and add as new column\n",
    "df_transactions['sale_date'] = pd.to_datetime(df_transactions['sale_date'])\n",
    "df_transactions['month'] = df_transactions['sale_date'].dt.month\n",
    "\n",
    "# Sort by month to ensure correct order in the plot\n",
    "df_transactions = df_transactions.sort_values(by='month')\n",
    "\n",
    "# Calculate total sales per month\n",
    "monthly_sales = df_transactions.groupby('month')['sale_amount'].sum().reset_index()\n",
    "\n",
    "# 4. Create bar chart\n",
    "plt.bar(monthly_sales['month'], monthly_sales['sale_amount'], color='black', edgecolor='black')\n",
    "plt.xlabel('Month')\n",
    "plt.ylabel('Total sales ($)')\n",
    "plt.title('Total sales by month')\n",
    "plt.xticks(monthly_sales['month'])\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8a4abc24",
   "metadata": {},
   "source": [
    "## Exercise 2: Analyze Missing Data Patterns\n",
    "\n",
    "Load the California Housing dataset with missing values and investigate whether the pattern of missing data in the `HouseAge` feature is related to the `Population` feature.\n",
    "\n",
    "**Background**: \n",
    "Sometimes data is not missing completely at random. In real-world scenarios, certain values might be more likely to be missing based on other features in the dataset. This is called Missing Not At Random (MNAR). Understanding these patterns is important for choosing appropriate imputation strategies.\n",
    "\n",
    "**Tasks**:\n",
    "\n",
    "1. Load the dataset from `salted_housing_data.csv` and examine the first few rows.\n",
    "\n",
    "2. Create a new boolean column called `HouseAge_Missing` that indicates whether `HouseAge` is missing (True) or not (False).\n",
    "\n",
    "3. Use `pd.qcut()` to bin the `Population` feature into 4 quartiles. Store the result in a new column called `Population_Quartile`. Use labels like `['Q1 (Lowest)', 'Q2', 'Q3', 'Q4 (Highest)']`.\n",
    "\n",
    "4. Calculate the percentage of missing `HouseAge` values for each population quartile. Use `groupby()` to group by `Population_Quartile` and calculate:\n",
    "   - The count of missing values (sum of `HouseAge_Missing`)\n",
    "   - The total count in each quartile\n",
    "   - The percentage missing\n",
    "\n",
    "5. Create a bar chart showing the percentage of missing `HouseAge` values by population quartile. Add value labels on top of each bar.\n",
    "\n",
    "6. Based on your analysis, answer: Is `HouseAge` more likely to be missing in certain population groups? What does this suggest about the missing data mechanism?\n",
    "\n",
    "**Hints**:\n",
    "\n",
    "- To check for missing values, use `.isnull()` or `.isna()`.\n",
    "  - Example: `df['HouseAge_Missing'] = df['HouseAge'].isnull()`\n",
    "\n",
    "- To create quartile bins, use `pd.qcut()` with `q=4`.\n",
    "  - Example: `df['quartile'] = pd.qcut(df['column'], q=4, labels=['Q1', 'Q2', 'Q3', 'Q4'])`\n",
    "\n",
    "- To calculate percentage missing by group:\n",
    "  - Group by the quartile column\n",
    "  - Use `.agg()` with multiple functions: `{'HouseAge_Missing': ['sum', 'count']}`\n",
    "  - Calculate percentage: `(sum / count) * 100`\n",
    "\n",
    "- Missing data mechanisms:\n",
    "  - **MCAR** (Missing Completely At Random): No relationship between missingness and any variable\n",
    "  - **MAR** (Missing At Random): Missingness depends on observed variables\n",
    "  - **MNAR** (Missing Not At Random): Missingness depends on the missing value itself or unobserved variables"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "263ef495",
   "metadata": {},
   "outputs": [],
   "source": [
    "housing_df = pd.read_csv('https://gperdrizet.github.io/FSA_devops/assets/data/unit2/salted_housing_data.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "384fd98a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>MedInc</th>\n",
       "      <th>HouseAge</th>\n",
       "      <th>AveRooms</th>\n",
       "      <th>AveBedrms</th>\n",
       "      <th>Population</th>\n",
       "      <th>AveOccup</th>\n",
       "      <th>Latitude</th>\n",
       "      <th>Longitude</th>\n",
       "      <th>MedHouseVal</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>8.3252</td>\n",
       "      <td>41.0</td>\n",
       "      <td>6.984127</td>\n",
       "      <td>1.023810</td>\n",
       "      <td>322.0</td>\n",
       "      <td>2.555556</td>\n",
       "      <td>37.88</td>\n",
       "      <td>-122.23</td>\n",
       "      <td>4.526</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>8.3014</td>\n",
       "      <td>21.0</td>\n",
       "      <td>6.238137</td>\n",
       "      <td>0.971880</td>\n",
       "      <td>2401.0</td>\n",
       "      <td>2.109842</td>\n",
       "      <td>37.86</td>\n",
       "      <td>-122.22</td>\n",
       "      <td>3.585</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>7.2574</td>\n",
       "      <td>52.0</td>\n",
       "      <td>8.288136</td>\n",
       "      <td>1.073446</td>\n",
       "      <td>496.0</td>\n",
       "      <td>2.802260</td>\n",
       "      <td>37.85</td>\n",
       "      <td>NaN</td>\n",
       "      <td>3.521</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>5.6431</td>\n",
       "      <td>52.0</td>\n",
       "      <td>5.817352</td>\n",
       "      <td>1.073059</td>\n",
       "      <td>558.0</td>\n",
       "      <td>2.547945</td>\n",
       "      <td>37.85</td>\n",
       "      <td>-122.25</td>\n",
       "      <td>3.413</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>3.8462</td>\n",
       "      <td>52.0</td>\n",
       "      <td>6.281853</td>\n",
       "      <td>NaN</td>\n",
       "      <td>565.0</td>\n",
       "      <td>2.181467</td>\n",
       "      <td>37.85</td>\n",
       "      <td>NaN</td>\n",
       "      <td>3.422</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   MedInc  HouseAge  AveRooms  AveBedrms  Population  AveOccup  Latitude  \\\n",
       "0  8.3252      41.0  6.984127   1.023810       322.0  2.555556     37.88   \n",
       "1  8.3014      21.0  6.238137   0.971880      2401.0  2.109842     37.86   \n",
       "2  7.2574      52.0  8.288136   1.073446       496.0  2.802260     37.85   \n",
       "3  5.6431      52.0  5.817352   1.073059       558.0  2.547945     37.85   \n",
       "4  3.8462      52.0  6.281853        NaN       565.0  2.181467     37.85   \n",
       "\n",
       "   Longitude  MedHouseVal  \n",
       "0    -122.23        4.526  \n",
       "1    -122.22        3.585  \n",
       "2        NaN        3.521  \n",
       "3    -122.25        3.413  \n",
       "4        NaN        3.422  "
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 1. Examine the first few rows\n",
    "housing_df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "058fad1f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>MedInc</th>\n",
       "      <th>HouseAge</th>\n",
       "      <th>AveRooms</th>\n",
       "      <th>AveBedrms</th>\n",
       "      <th>Population</th>\n",
       "      <th>AveOccup</th>\n",
       "      <th>Latitude</th>\n",
       "      <th>Longitude</th>\n",
       "      <th>MedHouseVal</th>\n",
       "      <th>HouseAge_Missing</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>8.3252</td>\n",
       "      <td>41.0</td>\n",
       "      <td>6.984127</td>\n",
       "      <td>1.023810</td>\n",
       "      <td>322.0</td>\n",
       "      <td>2.555556</td>\n",
       "      <td>37.88</td>\n",
       "      <td>-122.23</td>\n",
       "      <td>4.526</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>8.3014</td>\n",
       "      <td>21.0</td>\n",
       "      <td>6.238137</td>\n",
       "      <td>0.971880</td>\n",
       "      <td>2401.0</td>\n",
       "      <td>2.109842</td>\n",
       "      <td>37.86</td>\n",
       "      <td>-122.22</td>\n",
       "      <td>3.585</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>7.2574</td>\n",
       "      <td>52.0</td>\n",
       "      <td>8.288136</td>\n",
       "      <td>1.073446</td>\n",
       "      <td>496.0</td>\n",
       "      <td>2.802260</td>\n",
       "      <td>37.85</td>\n",
       "      <td>NaN</td>\n",
       "      <td>3.521</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>5.6431</td>\n",
       "      <td>52.0</td>\n",
       "      <td>5.817352</td>\n",
       "      <td>1.073059</td>\n",
       "      <td>558.0</td>\n",
       "      <td>2.547945</td>\n",
       "      <td>37.85</td>\n",
       "      <td>-122.25</td>\n",
       "      <td>3.413</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>3.8462</td>\n",
       "      <td>52.0</td>\n",
       "      <td>6.281853</td>\n",
       "      <td>NaN</td>\n",
       "      <td>565.0</td>\n",
       "      <td>2.181467</td>\n",
       "      <td>37.85</td>\n",
       "      <td>NaN</td>\n",
       "      <td>3.422</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   MedInc  HouseAge  AveRooms  AveBedrms  Population  AveOccup  Latitude  \\\n",
       "0  8.3252      41.0  6.984127   1.023810       322.0  2.555556     37.88   \n",
       "1  8.3014      21.0  6.238137   0.971880      2401.0  2.109842     37.86   \n",
       "2  7.2574      52.0  8.288136   1.073446       496.0  2.802260     37.85   \n",
       "3  5.6431      52.0  5.817352   1.073059       558.0  2.547945     37.85   \n",
       "4  3.8462      52.0  6.281853        NaN       565.0  2.181467     37.85   \n",
       "\n",
       "   Longitude  MedHouseVal  HouseAge_Missing  \n",
       "0    -122.23        4.526             False  \n",
       "1    -122.22        3.585             False  \n",
       "2        NaN        3.521             False  \n",
       "3    -122.25        3.413             False  \n",
       "4        NaN        3.422             False  "
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 2. Create boolean column indicating if HouseAge is missing\n",
    "housing_df['HouseAge_Missing'] = housing_df['HouseAge'].isnull()\n",
    "housing_df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "47f73df6",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 3. Bin Population into quartiles\n",
    "housing_df['Population_Quartile'] = pd.qcut(\n",
    "    housing_df['Population'],\n",
    "    q=4,\n",
    "    labels=['Q1', 'Q2', 'Q3', 'Q4']\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "b26f033c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>sum</th>\n",
       "      <th>count</th>\n",
       "      <th>percentage_missing</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Population_Quartile</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Q1</th>\n",
       "      <td>36</td>\n",
       "      <td>4279</td>\n",
       "      <td>0.841318</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Q2</th>\n",
       "      <td>36</td>\n",
       "      <td>4262</td>\n",
       "      <td>0.844674</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Q3</th>\n",
       "      <td>35</td>\n",
       "      <td>4270</td>\n",
       "      <td>0.819672</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Q4</th>\n",
       "      <td>44</td>\n",
       "      <td>4264</td>\n",
       "      <td>1.031895</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                     sum  count  percentage_missing\n",
       "Population_Quartile                                \n",
       "Q1                    36   4279            0.841318\n",
       "Q2                    36   4262            0.844674\n",
       "Q3                    35   4270            0.819672\n",
       "Q4                    44   4264            1.031895"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 4. Calculate percentage of missing HouseAge values by quartile\n",
    "missing_by_quartile = housing_df.groupby('Population_Quartile', observed=False)['HouseAge_Missing'].agg(['sum', 'count'])\n",
    "missing_by_quartile['percentage_missing'] = (missing_by_quartile['sum'] / missing_by_quartile['count']) * 100\n",
    "missing_by_quartile.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "1f061fe1",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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VbVqVUmy/RsdHS0PDw8NGTJEHh4e+u677zRy5EidP39eb7/9tm05M2bMUP/+/dWoUSMNHjxYMTExatu2rYoVK6YyZcrY+qWnp6tNmzbatGmT+vbtq6pVq2rPnj169913dfDgQa1YseKGz3nGet9///0aP368Tp48qalTp2rz5s2253j48OGqXLmyZs2aZdt9nvHc3Ujnzp1VtWpVvfXWW/r666/1+uuvq3jx4vrwww/VrFkzTZgwQfPnz9fQoUN1//3368EHH8x2Xu3bt9fvv/+u559/XkFBQYqPj9e6desUGxtru9+8eXOVLFlSr7zyiry9vRUTE6Ply5fftE5J6tSpk8qXL6/x48drx44d+vjjj+Xr66sJEybY+vTq1UuLFy9Wjx49VL9+fX3//fd69NFHHZp/hkuXLmV5HF1WYcSR18YZ69atU9euXfXQQw/Z1mvfvn3avHmzBg4caKujcePG+vvvv9WvXz+VLVtWP/30k4YNG6YTJ05oypQpdvP83//+pyJFiqhVq1Zyd3dXcHCw5s+frwYNGtj1y4vx3LlzZ02bNk1ff/217QsoY52+/PJL9erVy7YV2NH34e34/fff9cADDyggIECvvPKKihQposWLF6tt27ZatmyZHn/8cUnX/rgYP368evfurbp16+r8+fPatm2bduzYoYcffvimy+nfv7+8vb01evRoHThwQDNmzNCxY8dsX9A9evTQvHnztHbtWrVq1co2XVxcnL777juNGjXqpss4c+aMWrZsqU6dOqlr165avHixnnnmGbm6utr+eEpOTlaTJk10+PBh9e/fX+XLl9eSJUvUq1cvnT171jbGMsybN08XLlzQc889p8uXL2vq1Klq1qyZ9uzZIz8/P2ee6iz9+uuv+umnn9SlSxeVKVNGMTExmjFjhpo0aaI//vhDhQsXvunn9fWcXccFCxbowoUL6tevnywWiyZOnKh27drpyJEjNzzUJC4uTk2bNtXVq1dtY2fWrFlyd3e/5efjyJEjWrFihTp27Kjy5cvr5MmT+vDDD9W4cWP98ccfKl26tF3/cePGydXVVUOHDlVKSoqaN2/u1HOVFUffE3nOwG2bO3euIcn49ttvjVOnThnHjx83Fi5caJQoUcJwd3c3/vrrLyMmJsYoWLCg8cYbb9hNu2fPHsPFxcWuvXHjxoYkY+bMmXZ958yZY0gy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dYZh6MKFCypduvRN++ZrsHN1dVVoaKjWr1+vtm3bSroWvNavX6/+/ftnOU1YWJjWr1+vQYMG2drWrVunsLCwLPtbrVZZrVa7Nm9v75wo/z/L09OTNyUyYVzgeowJZIVxcWtutqUuQ77vih0yZIh69uypOnXqqG7dupoyZYouXryoqKgoSVJkZKQCAgI0fvx4SdLAgQPVuHFjTZo0SY8++qgWLlyobdu2adasWfm5GgAAAPku34Nd586dderUKY0cOVJxcXGqVauW1qxZYztBIjY2VgUK/P/Juw0aNNCCBQv02muv6dVXX1XFihW1YsUKVa9ePb9WAQAA4I6Q78FOkvr375/trteNGzdmauvYsaM6duyYy1XhelarVaNGjcq0axv/bYwLXI8xgawwLvKGxXDk3FkAAADc8fL9lycAAACQMwh2AAAAJkGwAwAAMAmCHQAAgEkQ7JDJ8ePH9eSTT6p06dJydXVVuXLlNHDgQNvv4UnS8uXL1bx5c9sveOzatSv/CkaeuNm4uHLlil5++WXVqFFDRYoUUenSpRUZGal//vknnytHbnHks2L06NGqUqWKihQpomLFiik8PFy//PJLPlaN3ObIuPi3p59+WhaLRVOmTMnbQk2KYAc7R44cUZ06dXTo0CH973//0+HDhzVz5kytX79eYWFhOn36tCTp4sWLatiwoSZMmJDPFSMvODIuLl26pB07dmjEiBHasWOHli9frgMHDqhNmzb5XT5ygaOfFZUqVdIHH3ygPXv2aNOmTQoKClLz5s116tSpfF4D5AZHx0WGzz//XD///LNDP5UFBxnAv7Ro0cIoU6aMcenSJbv2EydOGIULFzaefvppu/ajR48akoydO3fmYZXIa86Oiwxbt241JBnHjh3LizKRh251TJw7d86QZHz77bd5USbymDPj4q+//jICAgKMvXv3GuXKlTPefffdPK7WnNhiB5vTp09r7dq1evbZZ+Xu7m73mL+/v7p3765FixbJ4NKH/ym3My7OnTsni8XC7zObzK2OidTUVM2aNUteXl6qWbNmXpaMPODMuEhPT1ePHj304osv6p577smnis2JYAebQ4cOyTAMVa1aNcvHq1atqjNnzrAL5T/mVsfF5cuX9fLLL6tr16784LfJODsmvvrqK3l4eMjNzU3vvvuu1q1bJx8fn7wsGXnAmXExYcIEubi4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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 5. Create bar chart\n",
    "plt.title('Percentage of missing HouseAge values by population quartile')\n",
    "\n",
    "plt.bar(\n",
    "    missing_by_quartile.index.astype(str),\n",
    "    missing_by_quartile['percentage_missing'],\n",
    "    color='grey',\n",
    "    edgecolor='black'\n",
    ")\n",
    "plt.xlabel('Population quartile')\n",
    "plt.ylabel('Percentage missing (%)')\n",
    "\n",
    "plt.tight_layout()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3dc46951",
   "metadata": {},
   "source": [
    "## Exercise 3: Apply Imputation to Missing Data\n",
    "\n",
    "Now that you've analyzed the missing data pattern, select and apply an appropriate imputation method to fill in the missing `HouseAge` values.\n",
    "\n",
    "**Background**:\n",
    "Based on your findings from Exercise 2, you discovered that `HouseAge` is more likely to be missing in areas with lower population (MNAR pattern). This information should guide your choice of imputation method. Advanced methods like KNN or Iterative Imputation can leverage relationships between features, which is particularly useful when data is not missing completely at random.\n",
    "\n",
    "**Tasks**:\n",
    "\n",
    "1. Choose an imputation method. Consider:\n",
    "   - Simple methods: Mean or Median imputation\n",
    "   - Advanced methods: KNN Imputation or Iterative Imputation\n",
    "   - Justify your choice based on the missing data pattern you discovered\n",
    "2. Apply your chosen imputation method to fill the missing `HouseAge` values. Store the result in a new column called `HouseAge_imputed`.\n",
    "\n",
    "3. Compare the distribution of the original `HouseAge` (non-missing values only) with the imputed values:\n",
    "   - Create a histogram showing both distributions\n",
    "   - Calculate summary statistics (mean, median, std) for both\n",
    "\n",
    "4. Evaluate your imputation:\n",
    "   - Does the imputed distribution look reasonable compared to the original?\n",
    "   - Are there any obvious problems or artifacts introduced by the imputation?\n",
    "   - Would a different method have been better? Why or why not?"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "65237ab0",
   "metadata": {},
   "source": [
    "**1. Choose imputation method**\n",
    "\n",
    "Use KNN imputation so that missing values are filled in based on similar records."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "b1f4da2e",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 2. Apply KNN imputation\n",
    "housing_df.drop(['HouseAge_Missing', 'Population_Quartile'], axis=1, inplace=True)\n",
    "\n",
    "imputer = KNNImputer()\n",
    "housing_imputed = imputer.fit_transform(housing_df)\n",
    "imputed_housing_df = pd.DataFrame(housing_imputed, columns=housing_df.columns)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "36427b15",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Create KDE of original distribution\n",
    "kde_original = stats.gaussian_kde(housing_df['HouseAge'].dropna(), bw_method=0.05)\n",
    "x_range = np.linspace(housing_df['HouseAge'].min(), housing_df['HouseAge'].max(), 300)\n",
    "kde_values = kde_original(x_range)\n",
    "\n",
    "plt.title('KNN imputation of HouseAge vs. original distribution')\n",
    "plt.hist(\n",
    "    imputed_housing_df['HouseAge'],\n",
    "    bins=30, edgecolor='black', color='grey',\n",
    "    density=True, label='Imputed'\n",
    ")\n",
    "\n",
    "plt.plot(\n",
    "    x_range, kde_values,\n",
    "    'b-', linewidth=2.5,\n",
    "    label='Original'\n",
    ")\n",
    "\n",
    "plt.xlabel('HouseAge')\n",
    "plt.ylabel('Density')\n",
    "plt.legend(loc='upper right', framealpha=1, markerscale=3)\n",
    "\n",
    "plt.tight_layout()\n",
    "plt.show()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "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.12.12"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
