diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..5008ddf Binary files /dev/null and b/.DS_Store differ diff --git a/your-code/.ipynb_checkpoints/main-checkpoint.ipynb b/your-code/.ipynb_checkpoints/main-checkpoint.ipynb new file mode 100644 index 0000000..78d4c3f --- /dev/null +++ b/your-code/.ipynb_checkpoints/main-checkpoint.ipynb @@ -0,0 +1,1137 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Understanding Descriptive Statistics\n", + "\n", + "Import the necessary libraries here:" + ] + }, + { + "cell_type": "code", + "execution_count": 62, + "metadata": {}, + "outputs": [], + "source": [ + "# Libraries\n", + "import pandas as pd\n", + "import numpy as np\n", + "import random\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Challenge 1\n", + "#### 1.- Define a function that simulates rolling a dice 10 times. Save the information in a dataframe.\n", + "**Hint**: you can use the *choices* function from module *random* to help you with the simulation." + ] + }, + { + "cell_type": "code", + "execution_count": 63, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " result\n", + "0 5\n", + "1 5\n", + "2 3\n", + "3 6\n", + "4 4\n", + "5 3\n", + "6 3\n", + "7 5\n", + "8 5\n", + "9 2\n" + ] + } + ], + "source": [ + "# your code here\n", + "def dice_roll(num_rolls):\n", + " results = [] \n", + " for i in range(num_rolls): \n", + " roll = random.randint(1, 6) \n", + " results.append(roll) \n", + " return results\n", + "\n", + "rolls = dice_roll(10)\n", + "\n", + "df = pd.DataFrame({'result': rolls}) \n", + "\n", + "print(df)\n", + " " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 2.- Plot the results sorted by value." + ] + }, + { + "cell_type": "code", + "execution_count": 64, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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ADAK4QYAABiFcAMAAIxCuAEAAEYh3AAAAKMQbgAAgFFqFW66deumU6dOVWj/6quv1K1bt8suCgAAoLZqFW4+/vhjlZaWVmj3eDzKy8u77KIAAABqy78mnTMyMrz/vGnTJrlcLu9+aWmp/vnPf6pr1651VhwAAEBN1SjcjB07VpLkcDg0adIkn2MBAQHq2rWrFixYUGfFAQAA1FSNws2FCxckSdHR0dq1a5euuOKKeikKAACgtmoUbsqdOHGirusAAACoE9UON4sWLar2iz700EO1KgYAAOByOSzLsqrTMTo6unov6HDo+PHjl1VUfXK73XK5XCouLpbT6bS7HAAAUA01+fyu9pUbbkUBAICmgG8oBgAARqnVguJ77723yuMvvfRSrYoBAAC4XLUKN19++aXP/rlz53TgwAF99dVX+uEPf1gnhQEAANRGrW5LrVu3zmd74403dPz4cd11110aOHBgrQpJSUmRw+HQI488UmW/rKwsDRgwQEFBQerWrZuWLVtWq/MBaGDuo9JnGyT3MbsrAWC4Oltz06JFC82YMUO///3vazx2165dSk1NVZ8+farsd+LECSUlJemmm25STk6O5syZo4ceekjp6em1LRtAffOclrbeIr3RU9qWJL1xVdn+2S8vPRYAaqFOFxR/9NFHOn/+fI3GfP3115owYYKWL1+u9u3bV9l32bJl6ty5sxYuXKhevXrpvvvu07333qvnn3/+csoGUJ/e/alUsMW3rWCLtGO8PfUAMF6t1tzMnDnTZ9+yLOXn52v9+vUVfnPqUqZPn65Ro0Zp+PDheuqpp6rsm52drREjRvi0jRw5UitWrNC5c+cUEBBQYYzH45HH4/Huu93uGtUH4DK4j0r5myq2W6Vl7e5jkrNHw9cFwGi1Cjc5OTk++y1atFDHjh21YMGCSz5J9V1r1qzR+++/r127dlWrf0FBgcLCwnzawsLCdP78eRUVFSkiIqLCmJSUFM2bN6/aNQGoQ19/dInjHxJuANS5WoWbrVu3XvaJT548qYcfflibN29WUFBQtcc5HA6f/fIvWP5+e7nk5GSfK01ut1tRUVG1qBhAjbW98hLHuzdMHQCalVqFm2+//VaWZal169aSpE8++UTr1q1T7969K9w2qsyePXtUWFioAQMGeNtKS0u1fft2LV68WB6PR35+fj5jwsPDVVBQ4NNWWFgo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XVazdP78ef3qV79SdHS0WrVqpW7duunXv/61Lly4YHdpTRrhpg785S9/0SOPPKLHH39cOTk5uummm3TrrbcqNzfX7tKapaysLE2fPl07d+5UZmamzp8/rxEjRqikpMTu0pq9Xbt2KTU1VX369LG7lGbryy+/1KBBgxQQEKANGzbo4MGDWrBggdq1a2d3ac3SM888o2XLlmnx4sU6dOiQnn32WT333HP64x//aHdpTRqPgteB66+/Xv3799fSpUu9bb169dLYsWOVkpJiY2WQpC+++EKhoaHKysrS4MGD7S6n2fr666/Vv39//elPf9JTTz2lfv36aeHChXaX1ew89thj2rFjB1eXG4nbbrtNYWFhWrFihbdt3Lhxat26tV599VUbK2vauHJzmc6ePas9e/ZoxIgRPu0jRozQu+++a1NV+K7i4mJJUocOHWyupHmbPn26Ro0apeHDh9tdSrOWkZGh+Ph43XHHHQoNDVVcXJyWL19ud1nN1o033qh//vOfOnr0qCRp3759euedd5SUlGRzZU1bs/vhzLpWVFSk0tJShYWF+bSHhYWpoKDApqpQzrIszZw5UzfeeKNiY2PtLqfZWrNmjd5//33t2rXL7lKavePHj2vp0qWaOXOm5syZo/fee08PPfSQAgMDdc8999hdXrMze/ZsFRcX6+qrr5afn59KS0v19NNPa/z48XaX1qQRbuqIw+Hw2bcsq0IbGt4DDzygf/3rX3rnnXfsLqXZOnnypB5++GFt3rxZQUFBdpfT7F24cEHx8fGaP3++JCkuLk4ffPCBli5dSrixwV/+8hetWrVKr732mmJiYrR371498sgjioyM1KRJk+wur8ki3FymK664Qn5+fhWu0hQWFla4moOG9eCDDyojI0Pbt29Xp06d7C6n2dqzZ48KCws1YMAAb1tpaam2b9+uxYsXy+PxyM/Pz8YKm5eIiAj17t3bp61Xr15KT0+3qaLm7X/+53/02GOP6a677pIkXXPNNfrkk0+UkpJCuLkMrLm5TC1bttSAAQOUmZnp056ZmakbbrjBpqqaN8uy9MADD2jt2rV66623FB0dbXdJzVpiYqL279+vvXv3erf4+HhNmDBBe/fuJdg0sEGDBlX4aoSjR4+qS5cuNlXUvH3zzTdq0cL3o9jPz49HwS8TV27qwMyZMzVx4kTFx8crISFBqampys3N1dSpU+0urVmaPn26XnvtNb3++usKDg72XlVzuVxq1aqVzdU1P8HBwRXWO7Vp00YhISGsg7LBjBkzdMMNN2j+/Pm688479d577yk1NVWpqal2l9YsjR49Wk8//bQ6d+6smJgY5eTk6He/+53uvfdeu0tr2izUiSVLllhdunSxWrZsafXv39/Kysqyu6RmS9JFt5UrV9pdGv5tyJAh1sMPP2x3Gc3WP/7xDys2NtYKDAy0rr76ais1NdXukpott9ttPfzww1bnzp2toKAgq1u3btbjjz9ueTweu0tr0vieGwAAYBTW3AAAAKMQbgAAgFEINwAAwCiEGwAAYBTCDQAAMArhBgAAGIVwAwAAjEK4AdBoDB06VI888kitx3/88cdyOBzau3dvndUEoOnh5xcANBpr165VQECA3WUAaOIINwAajQ4dOthdAgADcFsKQKPx3dtSXbt21fz583XvvfcqODhYnTt3rvDjju+9957i4uIUFBSk+Ph45eTkVHjNgwcPKikpSW3btlVYWJgmTpyooqIiSdK2bdvUsmVLvf32297+CxYs0BVXXKH8/Pz6myiAekW4AdBoLViwwBtapk2bpl/84hc6fPiwJKmkpES33XabevbsqT179ujJJ5/UrFmzfMbn5+dryJAh6tevn3bv3q2NGzfq888/15133inpP2Fq4sSJKi4u1r59+/T4449r+fLlioiIaPD5Aqgb3JYC0GglJSVp2rRpkqTZs2fr97//vbZt26arr75af/7zn1VaWqqXXnpJrVu3VkxMjD799FP94he/8I5funSp+vfvr/nz53vbXnrpJUVFReno0aO66qqr9NRTT2nLli367//+b33wwQeaOHGifvSjHzX4XAHUHcINgEarT58+3n92OBwKDw9XYWGhJOnQoUPq27evWrdu7e2TkJDgM37Pnj3aunWr2rZtW+G1P/roI1111VVq2bKlVq1apT59+qhLly5auHBh/UwGQIMh3ABotL7/5JTD4dCFCxckSZZlXXL8hQsXNHr0aD3zzDMVjn33ttO7774rSTp9+rROnz6tNm3aXE7ZAGzGmhsATVLv3r21b98+ffvtt962nTt3+vTp37+/PvjgA3Xt2lXdu3f32coDzEcffaQZM2Zo+fLlGjhwoO655x5vgALQNBFuADRJP/3pT9WiRQv9/Oc/18GDB/Xmm2/q+eef9+kzffp0nT59WuPHj9d7772n48ePa/Pmzbr33ntVWlqq0tJSTZw4USNGjNDPfvYzrVy5UgcOHNCCBQtsmhWAukC4AdAktW3bVv/4xz908OBBxcXF6fHHH69w+ykyMlI7duxQaWmpRo4cqdjYWD388MNyuVxq0aKFnn76aX388cfeR8zDw8P14osv6le/+hXfcgw0YQ6rOjeuAQAAmgiu3AAAAKMQbgAAgFEINwAAwCiEGwAAYBTCDQAAMArhBgAAGIVwAwAAjEK4AQAARiHcAAAAoxBuAACAUQg3AADAKIQbAABglP8HvCTfEejGUt4AAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# your code here\n", + "df_sorted = df.sort_values(by=\"result\", inplace=False)\n", + "\n", + "# Reset the index \n", + "df_sorted = df_sorted.reset_index(drop=True)\n", + "\n", + "#plot using the reset index to have it sorted by value\n", + "graph = df_sorted.reset_index().plot.scatter(x='index', y='result', c='orange', title='Dice Roll Results')\n", + "\n", + "# Display the plot\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 3.- Calculate the frequency distribution and plot it. What is the relation between this plot and the plot above? Describe it with words." + ] + }, + { + "cell_type": "code", + "execution_count": 65, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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jRkzxun359fc+X1wZcuWLfL19ZWvr69atmypV199VS+88IIGDRrkaLNz504FBgbqzjvvdOpbdtnT1SXpylx//fVasWKFnnzySe3Zs0dFRUU16o/6h3CDeqVTp06Kj493ev1aZGSk03LZJaU777zT8Rdi2WvevHkyxujMmTP64YcfVFpaqoiIiHLHdLWuOk6fPq3i4mK98MIL5Y6dlJQkSTp16pRTn9DQUKflsssJP//8s6Rfrv1LqvKG2vDwcI0YMUKvvPKKSkpKdOjQIX3wwQd6+OGH3RrLrxUUFOj06dOVXtpq27at3n33XYWFhWnChAlq27at2rZtq+eff75Gx7p4PitT2dzV9eWD06dPu6y17D26+PhVzbMrP/zwg4wxNTpObTlx4oTsdruaNm3qcnt1fi7d+X1wpVevXtq7d6/27Nmj1atXq1WrVnr44Yf14YcfOh0rIiKi3H8AwsLC5OPjU+P3ad26dRo9erRee+01JSQkqGnTpho1apRycnJqtB/UH9xzA69y8V9mV155pSTphRdeqPDpjvDwcMeTVa7+srp4Xdn/TC++MfHivzCbNGni+F/1hAkTXB67devWlYymvLJ7Ur755psq206ePFmrV6/W22+/rW3btqlx48a6++67a3Q8VzZv3qySkpIqH9/u3bu3evfurZKSEu3bt08vvPCCpkyZovDwcI0cObJax6rJZ+dUNndlYaKiuavOP6qVCQ0NVXZ2drn1ZTdul/0cXoomTZqoQYMGdX6ci508eVL79+9X3759K7zfpjo/l7X1+xASEuL4T80NN9ygG264QV27dtX48eN18OBBNWjQQKGhofroo49kjHH6GcrNzVVxcXGN36crr7xSCxcu1MKFC5WZmamNGzfqj3/8o3Jzc7Vt27Ya7Qv1A2du4NVuvPFGNW7cWJ999lm5Mz5lLz8/PwUGBur666/X+vXrdf78eUf/s2fPatOmTU77DA8Pl7+/vw4dOuS0/u2333ZaDggIUL9+/ZSRkaEuXbq4PPbF/4OvSs+ePRUSEqKUlJQqLxXExcWpZ8+emjdvnl5//XXdd999CgwMrNHxLpaZmanp06crJCREv//976vVp2HDhrrhhhscT8SUXSKqztmKmvj000/18ccfO6174403FBQUpO7du0uS46mhi+du48aN5fZnt9urXVtiYqJ27txZ7im0VatW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fr6+++47xcbGOq3Pzc3V2bNnq72fshuBK7NixYpy6/r27asDBw5U+zgAAOC/h1tnboYOHar7779fb731lr755ht98803euuttzRmzBgNGzastmsEAACoNrfO3KSkpGj69Om65557VFRU9MuOfHw0ZswYPfvss7VaIAAAQE24FW4CAgL08ssv69lnn9VXX30lY4zatWunwMDA2q4PAACgRi7pQ/yys7OVnZ2tDh06KDAwsFr30AAAANQlt8LN6dOnlZiYqA4dOigpKUnZ2dmSpLFjx1b7MXAAAIC64Fa4mTp1qnx9fZWZmamAgADH+hEjRpT7pm8AAIDLya17brZv36533nmn3FcltG/fXidOnKiVwgAAANzh1pmbgoICpzM2ZU6dOsVXHQAAAI9yK9z06dPH8XUI0i/fIVVaWqpnn31W/fr1q7XiAAAAasqty1LPPvusbrrpJu3bt08XLlzQjBkz9Omnn+rMmTP65z//Wds1AgAAVJtbZ26uvvpqHTp0SNdff7369++vgoICDRs2TBkZGWrbtm1t1wgAAFBtNT5zU1RUpAEDBuiVV17R3Llz66ImAAAAt9X4zI2vr68++eQT2Wy2uqgHAADgkrh1WWrUqFFaunRpbdcCAABwydy6ofjChQt67bXXtGPHDsXHx5f7TqkFCxbUSnEAAAA1VaNw8/XXX6tVq1b65JNP1L17d0nSl19+6dSGy1UAAMCTahRu2rdvr+zsbO3atUvSL1+3sGjRIoWHh9dJcQAAADVVo3tuLv7W761bt6qgoKBWCwIAALgUbt1QXObisAMAAOBpNQo3Nput3D013GMDAADqkxrdc2OM0X333ef4cszz589r3Lhx5Z6WWr9+fe1VCAAAUAM1CjejR492Wr7nnntqtRgAAIBLVaNws3z58rqqAwAAoFZc0g3FAAAA9Q3hBgAAWArhBgAAWArhBgAAWArhBgAAWArhBgAAWArhBgAAWArhBgAAWArhBgAAWArhBgAAWIpHw83777+vwYMHKyoqSjabTX//+98rbZ+Wlub4ZvJfv7744ovLUzAAAKj3avTdUrWtoKBAXbt21f3336/hw4dXu9+RI0cUHBzsWG7WrFldlAcAALyQR8PNwIEDNXDgwBr3CwsLU+PGjWu/IAAA4PW88p6bbt26KTIyUomJidq1a5enywEAAPWIR8/c1FRkZKSWLFmiuLg4FRYWavXq1UpMTFRaWpr69Onjsk9hYaEKCwsdy/n5+ZerXAAA4AFeFW5iYmIUExPjWE5ISFBWVpbmz59fYbhJTk7W3LlzL1eJAADAw7zystSv9ejRQ0ePHq1w+8yZM5WXl+d4ZWVlXcbqAADA5eZVZ25cycjIUGRkZIXb7Xa77Hb7ZawIAAB4kkfDzU8//aT//Oc/juVjx47p4MGDatq0qaKjozVz5kydPHlSq1atkiQtXLhQrVq1UmxsrC5cuKA1a9YoNTVVqampnhoCAACoZzwabvbt26d+/fo5lqdNmyZJGj16tFasWKHs7GxlZmY6tl+4cEHTp0/XyZMn1ahRI8XGxmrz5s1KSkq67LUDAID6yaPh5qabbpIxpsLtK1ascFqeMWOGZsyYUcdVAQAAb+b1NxQDAAD8GuEGAABYCuEGAABYCuEGAABYCuEGAABYCuEGAABYCuEGAABYCuEGAABYCuEGAABYCuEGAABYCuEGAABYCuEGAABYCuEGAABYCuEGAABYCuEGAABYCuEGAABYCuEGAABYCuEGAABYCuEGAABYCuEGAABYCuEGAABYCuEGAABYCuEGAABYCuEGAABYCuEGAABYCuEGAABYCuEGAABYCuEGAABYCuEGAABYCuEGAABYCuEGAABYCuEGAABYCuEGAABYikfDzfvvv6/BgwcrKipKNptNf//736vsk56erri4OPn7+6tNmzZKSUmp+0IBAIDX8Gi4KSgoUNeuXfXiiy9Wq/2xY8eUlJSk3r17KyMjQ7NmzdKkSZOUmppax5UCAABv4ePJgw8cOFADBw6sdvuUlBRFR0dr4cKFkqROnTpp3759mj9/voYPH15HVQIAAG/iVffc7N69WwMGDHBad8stt2jfvn0qKiryUFUAAKA+8eiZm5rKyclReHi407rw8HAVFxfr1KlTioyMLNensLBQhYWFjuX8/Pw6rxMAAHiOV4UbSbLZbE7LxhiX68skJydr7ty5dV5XmZFLdl+2YwEoj99B1BV+tqpv7UMJHj2+V12WioiIUE5OjtO63Nxc+fj4KDQ01GWfmTNnKi8vz/HKysq6HKUCAAAP8aozNwkJCdq0aZPTuu3btys+Pl6+vr4u+9jtdtnt9stRHgAAqAc8eubmp59+0sGDB3Xw4EFJvzzqffDgQWVmZkr65azLqFGjHO3HjRunEydOaNq0afr888+1bNkyLV26VNOnT/dE+QAAoB7y6Jmbffv2qV+/fo7ladOmSZJGjx6tFStWKDs72xF0JKl169basmWLpk6dqpdeeklRUVFatGgRj4EDAAAHj4abm266yXFDsCsrVqwot65v3746cOBAHVYFAAC8mVfdUAwAAFAVwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUj4ebl19+Wa1bt5a/v7/i4uL0wQcfVNg2LS1NNput3OuLL764jBUDAID6zKPhZt26dZoyZYoee+wxZWRkqHfv3ho4cKAyMzMr7XfkyBFlZ2c7Xu3bt79MFQMAgPrOo+FmwYIFGjNmjMaOHatOnTpp4cKFatGihRYvXlxpv7CwMEVERDheDRs2vEwVAwCA+s5j4ebChQvav3+/BgwY4LR+wIAB+te//lVp327duikyMlKJiYnatWtXXZYJAAC8jI+nDnzq1CmVlJQoPDzcaX14eLhycnJc9omMjNSSJUsUFxenwsJCrV69WomJiUpLS1OfPn1c9iksLFRhYaFjOT8/v/YGAQAA6h2PhZsyNpvNadkYU25dmZiYGMXExDiWExISlJWVpfnz51cYbpKTkzV37tzaKxgAANRrHrssdeWVV6phw4blztLk5uaWO5tTmR49eujo0aMVbp85c6by8vIcr6ysLLdrBgAA9Z/Hwo2fn5/i4uK0Y8cOp/U7duxQz549q72fjIwMRUZGVrjdbrcrODjY6QUAAKzLo5elpk2bpnvvvVfx8fFKSEjQkiVLlJmZqXHjxkn65azLyZMntWrVKknSwoUL1apVK8XGxurChQtas2aNUlNTlZqa6slhAACAesSj4WbEiBE6ffq0Hn/8cWVnZ6tz587asmWLWrZsKUnKzs52+sybCxcuaPr06Tp58qQaNWqk2NhYbd68WUlJSZ4aAgAAqGdsxhjj6SIup/z8fIWEhCgvL69OLlGNXLK71vcJrH0owdMleA1+BwHPq4u/s2ry77fHv34BAACgNhFuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApXg83Lz88stq3bq1/P39FRcXpw8++KDS9unp6YqLi5O/v7/atGmjlJSUy1QpAADwBh4NN+vWrdOUKVP02GOPKSMjQ71799bAgQOVmZnpsv2xY8eUlJSk3r17KyMjQ7NmzdKkSZOUmpp6mSsHAAD1lUfDzYIFCzRmzBiNHTtWnTp10sKFC9WiRQstXrzYZfuUlBRFR0dr4cKF6tSpk8aOHasHHnhA8+fPv8yVAwCA+spj4ebChQvav3+/BgwY4LR+wIAB+te//uWyz+7du8u1v+WWW7Rv3z4VFRXVWa0AAMB7+HjqwKdOnVJJSYnCw8Od1oeHhysnJ8dln5ycHJfti4uLderUKUVGRpbrU1hYqMLCQsdyXl6eJCk/P/9Sh+BS0c8FdbJf/Herq59XK+J3EPC8uvg7q2yfxpgq23os3JSx2WxOy8aYcuuqau9qfZnk5GTNnTu33PoWLVrUtFTAY9ZP8XQFAFB9dfl31tmzZxUSElJpG4+FmyuvvFINGzYsd5YmNze33NmZMhERES7b+/j4KDQ01GWfmTNnatq0aY7l0tJSnTlzRqGhoZWGKHfk5+erRYsWysrKUnBwcK3uuz6w+vgk64+R8Xk/q4+R8Xm/uhqjMUZnz55VVFRUlW09Fm78/PwUFxenHTt2aOjQoY71O3bs0JAhQ1z2SUhI0KZNm5zWbd++XfHx8fL19XXZx263y263O61r3LjxpRVfheDgYMv+0ErWH59k/TEyPu9n9TEyPu9XF2Os6oxNGY8+LTVt2jS99tprWrZsmT7//HNNnTpVmZmZGjdunKRfzrqMGjXK0X7cuHE6ceKEpk2bps8//1zLli3T0qVLNX36dE8NAQAA1DMevedmxIgROn36tB5//HFlZ2erc+fO2rJli1q2bClJys7O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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# your code here\n", + "#Let's make a histogram using a bin for each result\n", + "\n", + "ax = df_sorted['result'].plot.hist(bins=6, alpha=0.75, title='Frequency Distribution of Dice Rolls')\n", + "\n", + "# Set the labels\n", + "ax.set_xlabel('Dice Result')\n", + "ax.set_ylabel('Frequency')\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 66, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "\"\\nThe histogram doesn't care about the order of the dice rolls, it is simply showing how often each result was achieved. The scatterplot on \\nthe other hand does show an order which can be used (not in this case with dice rolls) to show potential patterns between the two axis.\\nBoth plots convey the same data put present it differently. If we saw a scatterplot with a condensed area of results the histogram would reflect\\nthis as well with a weighted frequency distribution\\n\"" + ] + }, + "execution_count": 66, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\"\"\"\n", + "The histogram doesn't care about the order of the dice rolls, it is simply showing how often each result was achieved. The scatterplot on \n", + "the other hand does show an order which can be used (not in this case with dice rolls) to show potential patterns between the two axis.\n", + "Both plots convey the same data put present it differently. If we saw a scatterplot with a condensed area of results the histogram would reflect\n", + "this as well with a weighted frequency distribution\n", + "\"\"\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Challenge 2\n", + "Now, using the dice results obtained in *challenge 1*, your are going to define some functions that will help you calculate the mean of your data in two different ways, the median and the four quartiles. \n", + "\n", + "#### 1.- Define a function that computes the mean by summing all the observations and dividing by the total number of observations. You are not allowed to use any methods or functions that directly calculate the mean value. " + ] + }, + { + "cell_type": "code", + "execution_count": 67, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "4.1\n" + ] + } + ], + "source": [ + "# your code here\n", + "def mean(rolls):\n", + " mean = sum(rolls) / len(rolls)\n", + " return mean\n", + "\n", + "print(mean(rolls))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 2.- First, calculate the frequency distribution. Then, calculate the mean using the values of the frequency distribution you've just computed. You are not allowed to use any methods or functions that directly calculate the mean value. " + ] + }, + { + "cell_type": "code", + "execution_count": 76, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{5: 4, 3: 3, 6: 1, 4: 1, 2: 1}\n", + "[2, 3, 3, 3, 4, 5, 5, 5, 5, 6]\n", + "4.1\n" + ] + } + ], + "source": [ + "# your code here\n", + "freq_dist = {}\n", + "\n", + "def calc_freq_dist(x):\n", + " freq_dist_calc = {}\n", + " for num in x:\n", + " if num in freq_dist_calc:\n", + " freq_dist_calc[num] += 1\n", + " else:\n", + " freq_dist_calc[num] = 1\n", + " return freq_dist_calc\n", + "\n", + "freq_dist = calc_freq_dist(rolls)\n", + "\n", + "print(freq_dist)\n", + "\n", + "#In hindsight, working with a dictionary comprehension is going to get quite annoying If I were to do it again\n", + "#I would just create a list from the created DataFrame\n", + "\n", + "\n", + "values = df_sorted['result'].tolist()\n", + "\n", + "print(values)\n", + "\n", + "total_sum = 0\n", + "\n", + "def calc_sum(x):\n", + " total_sum = 0\n", + " for key, value in x.items():\n", + " product = key * value\n", + " total_sum += product\n", + " return total_sum\n", + "\n", + "print(calc_sum(calc_freq_dist(rolls))/len(rolls))\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 3.- Define a function to calculate the median. You are not allowed to use any methods or functions that directly calculate the median value. \n", + "**Hint**: you might need to define two computation cases depending on the number of observations used to calculate the median." + ] + }, + { + "cell_type": "code", + "execution_count": 69, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "4.5\n", + "4.5\n" + ] + } + ], + "source": [ + "#Actually now I'm not sure, its quite easy to just create the list within in each function - I'm not sure what the best practice is here\n", + "\n", + "def median(x):\n", + " #Adding check depending on input list vs dict\n", + " if isinstance(x, dict):\n", + " flat_list = []\n", + " for key, value in x.items():\n", + " flat_list.extend([key] * value)\n", + " else:\n", + " flat_list = list(x)\n", + "\n", + " #sort the list - dict will already be sorted\n", + " flat_list.sort()\n", + " \n", + " length = len(flat_list)\n", + " mid = length // 2\n", + " if length % 2 == 0:\n", + " return (flat_list[mid - 1] + flat_list[mid]) / 2\n", + " else:\n", + " return flat_list[mid]\n", + "\n", + "print(median(freq_dist))\n", + "\n", + "print(median(values))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 4.- Define a function to calculate the four quartiles. You can use the function you defined above to compute the median but you are not allowed to use any methods or functions that directly calculate the quartiles. " + ] + }, + { + "cell_type": "code", + "execution_count": 70, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[3, 4.5, 5]\n", + "[3, 4.5, 5]\n" + ] + } + ], + "source": [ + "# your code here\n", + "def quartiles(x):\n", + " if isinstance(x, dict):\n", + " flat_list = []\n", + " for key, value in x.items():\n", + " flat_list.extend([key] * value)\n", + " flat_list.sort()\n", + " else:\n", + " flat_list = sorted(x)\n", + " \n", + " length = len(flat_list)\n", + " #lets split the list in half\n", + "\n", + " if length % 2 == 0:\n", + " lower_half = flat_list[:length // 2]\n", + " upper_half = flat_list[length // 2:]\n", + " else:\n", + " lower_half = flat_list[:length // 2]\n", + " upper_half = flat_list[length // 2 + 1:]\n", + "\n", + " Q2 = median(flat_list)\n", + " Q1 = median(lower_half)\n", + " Q3 = median(upper_half)\n", + "\n", + " Quartiles = [Q1, Q2, Q3]\n", + " \n", + " return Quartiles\n", + "\n", + "print(quartiles(freq_dist))\n", + "print(quartiles(values))\n", + "\n", + " " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Challenge 3\n", + "Read the csv `roll_the_dice_hundred.csv` from the `data` folder.\n", + "#### 1.- Sort the values and plot them. What do you see?" + ] + }, + { + "cell_type": "code", + "execution_count": 74, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Unnamed: 0rollvalue
0001
1112
2226
3331
4446
5555
6662
7772
8884
9991
\n", + "
" + ], + "text/plain": [ + " Unnamed: 0 roll value\n", + "0 0 0 1\n", + "1 1 1 2\n", + "2 2 2 6\n", + "3 3 3 1\n", + "4 4 4 6\n", + "5 5 5 5\n", + "6 6 6 2\n", + "7 7 7 2\n", + "8 8 8 4\n", + "9 9 9 1" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAioAAAHFCAYAAADcytJ5AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAt8klEQVR4nO3deXQUZb7G8adJSMeQpA1oNgkQWRREdhUMB4igOCzKdURFwKAzzqioCHoFdI7gRsT9OKMIqCCDgtcretEZQZBV0QGBIBgkYRPQAJJoGgLTQnjvHxkamgSy0Ol6Q76fc+ocq/pXVb9+Qfux6q1ulzHGCAAAwEJ1nG4AAADgVAgqAADAWgQVAABgLYIKAACwFkEFAABYi6ACAACsRVABAADWIqgAAABrEVQAAIC1CCqARaZPny6Xy+VfIiMjlZiYqPT0dGVmZmrv3r2l9hk/frxcLldI+9y+fXtAn3Xq1FFcXJx69uypzz777IyOOX36dP+2Y+Oxffv20+578riFh4crKSlJt9xyi3Jzc6vUT7C5XC6NHz/ev56dna3x48eX+96A2o6gAlho2rRp+uqrr7RgwQK9+uqrateunSZOnKiWLVtq4cKFAbV//OMf9dVXXznS53333aevvvpKy5cv1/PPP6/c3Fz16dNHy5Ytc6SfY+O2cOFC3XvvvZo7d666du2qX375xZF+Tic7O1uPP/44QQUoR7jTDQAorXXr1urUqZN//fe//71Gjhyprl276oYbblBubq4SEhIkSQ0bNlTDhg0d6bNRo0bq3LmzJCktLU3NmzdX9+7d9eabb6pbt24h7+fEcevRo4eKi4s1btw4ffTRR7r99ttD3g+AM8cVFaCGaNSokV544QXt379fkydP9m8/1a2fd999V126dFF0dLSio6PVrl07vfnmmwE1CxcuVM+ePRUbG6uoqCilpaXp888/r3KPx0LCnj17ArZv2LBB119/veLi4hQZGal27drp7bffrvJ5zrSfb775Rtddd53q16+vyMhItW/fXv/zP/8TUHPw4EE99NBDSk1NVWRkpOrXr69OnTpp1qxZ/poePXqoR48epc47bNgwNWnS5JR9TZ8+XQMHDpQkpaen+29ZHbvttXbtWvXr10/x8fFyu91KTk5W3759tWvXriqMAlCzcUUFqEH69OmjsLCwcm+tPPbYY3ryySd1ww036MEHH5TH49GGDRv0ww8/+Gtmzpyp2267Tddff73efvtt1a1bV5MnT1bv3r01f/589ezZs9L9bdu2TZLUokUL/7ZNmzbpyiuvVHx8vF555RU1aNBAM2fO1LBhw7Rnzx49/PDDlT7PmfSzePFiXXvttbriiiv0+uuvy+PxaPbs2br55pt18OBBDRs2TJI0atQo/f3vf9dTTz2l9u3bq6ioSBs2bFB+fv4Z99W3b19NmDBBjzzyiF599VV16NBBktS0aVMVFRXp6quvVmpqql599VUlJCRo9+7dWrx4sfbv33/G5wZqHAPAGtOmTTOSzKpVq05Zk5CQYFq2bOlfHzdunDnxX+WtW7easLAwM3jw4FMeo6ioyNSvX9/0798/YHtxcbFp27atufzyy0/b57Zt24wkM3HiRHP48GHz73//22RlZZkuXbqYpKQks23bNn/tLbfcYtxut9mxY0fAMX73u9+ZqKgo8+uvvwYcc9q0aaXG48TjleVY3ddff20OHz5s9u/fb+bNm2cSExNNt27dzOHDh/21F198sWnfvn3ANmOM6devn0lKSjLFxcXGGGNat25tBgwYcNrzdu/e3XTv3r3U9oyMDNO4ceOAbZLMuHHj/Ovvv/++kWQWL14cUPfNN98YSeajjz467bmB2oJbP0ANY4w57esLFixQcXGxhg8ffsqaFStWqKCgQBkZGTpy5Ih/OXr0qK699lqtWrVKRUVF5fYyevRo1a1b1387Z8OGDfr4448DbnssWrRIPXv2VEpKSsC+w4YN08GDB4M6Ebhz586qW7euYmJidO211youLk7/93//p/DwkovHmzdv1vfff6/BgwdLUsB779Onj/Ly8rRp0yZJ0uWXX65PP/1UY8aM0ZIlS3To0KGg9Xk6zZo1U1xcnEaPHq3XX39d2dnZITkvYCuCClCDFBUVKT8/X8nJyaes+fnnnyXptBNsj83ZuPHGG1W3bt2AZeLEiTLGqKCgoNx+RowYoVWrVumLL77Q888/r8OHD+v6668PuD2Sn5+vpKSkUvseew/BuJVyzIwZM7Rq1SotWrRIf/7zn7Vx40YNGjTI//qx9/3QQw+Vet/33HOPJGnfvn2SpFdeeUWjR4/WRx99pPT0dNWvX18DBgyo9sedPR6Pli5dqnbt2umRRx7RJZdcouTkZI0bN06HDx+u1nMDNmKOClCD/OMf/1BxcXGZEziPOf/88yVJu3btKnUV45jzzjtPkvTXv/7V/9TOyY49VXQ6DRs29E9YTUtLU2JiooYMGaJx48bpb3/7mySpQYMGysvLK7XvTz/9FNBLMLRs2dLfT3p6uoqLi/XGG2/of//3f3XjjTf6zzV27FjdcMMNZR7joosukiTVq1dPjz/+uB5//HHt2bPHf3Wlf//++v777yVJkZGRKiwsLHWMY2Gnqi699FLNnj1bxhh9++23mj59up544gmdc845GjNmzBkdG6hpuKIC1BA7duzQQw89JI/Hoz//+c+nrLvmmmsUFhamSZMmnbImLS1N5557rrKzs9WpU6cyl4iIiEr3OHjwYPXo0UNTp071T9zt2bOnFi1a5A8mx8yYMUNRUVGnDErB8OyzzyouLk6PPfaYjh49qosuukjNmzfXunXrTvm+Y2JiSh0nISFBw4YN06BBg7Rp0yYdPHhQktSkSRPl5OTI5/P5a/Pz87VixYpye3O73ZJ02ltKLpdLbdu21UsvvaRzzz1Xa9asqewQADUeV1QAC23YsME/d2Lv3r1avny5pk2bprCwMH344Yf+qyZladKkiR555BE9+eSTOnTokAYNGiSPx6Ps7Gzt27dPjz/+uKKjo/XXv/5VGRkZKigo0I033qj4+Hj9/PPPWrdunX7++efTBp3TmThxoq644go9+eSTeuONNzRu3Dh98sknSk9P12OPPab69evrnXfe0T/+8Q89++yz8ng8VR2mcsXFxWns2LF6+OGH9e6772rIkCGaPHmyfve736l3794aNmyYLrjgAhUUFGjjxo1as2aN3n//fUnSFVdcoX79+qlNmzaKi4vTxo0b9fe//11dunRRVFSUJGno0KGaPHmyhgwZojvvvFP5+fl69tlnFRsbW25vrVu3liRNmTJFMTExioyMVGpqqr766iu99tprGjBggC688EIZYzRnzhz9+uuvuvrqq6ttrABrOTuXF8CJjj29cmyJiIgw8fHxpnv37mbChAlm7969pfY5+amfY2bMmGEuu+wyExkZaaKjo0379u0DnqgxxpilS5eavn37mvr165u6deuaCy64wPTt29e8//77p+3z2BM6zz33XJmvDxw40ISHh5vNmzcbY4xZv3696d+/v/F4PCYiIsK0bdu2VC/BeOqnrKelDh06ZBo1amSaN29ujhw5YowxZt26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NmxoFi5caNasWWOuuuoqHk+uTq+++qpp3LixiYiIMB06dPA/Qouqk1TmMm3aNH/N0aNHzbhx40xiYqJxu92mW7duZv369c41fRY5Oagw1sHz8ccfm9atWxu3220uvvhiM2XKlIDXGevg8Hq9ZsSIEaZRo0YmMjLSXHjhhebRRx81Pp/PX8NYV83ixYvL/O9zRkaGMaZi43ro0CFz7733mvr165tzzjnH9OvXz+zYsSMo/bmMMebMr8sAAAAEH3NUAACAtQgqAADAWgQVAABgLYIKAACwFkEFAABYi6ACAACsRVABAADWIqgACLoePXrogQceqPL+27dvl8vlUlZWVtB6AlAz8evJAIJuzpw5qlu3rtNtADgLEFQABF39+vWdbgHAWYJbPwCC7sRbP02aNNGECRN0xx13KCYmRo0aNdKUKVMC6leuXKn27dsrMjJSnTp10tq1a0sdMzs7W3369FF0dLQSEhI0dOhQ7du3T5K0ZMkSRUREaPny5f76F154Qeedd57y8vKq740CqHYEFQDV7oUXXvAHkHvuuUd33323vv/+e0lSUVGR+vXrp4suukirV6/W+PHj9dBDDwXsn5eXp+7du6tdu3b65ptvNG/ePO3Zs0c33XSTpOPBaOjQoSosLNS6dev06KOPaurUqUpKSgr5+wUQPNz6AVDt+vTpo3vuuUeSNHr0aL300ktasmSJLr74Yr3zzjsqLi7WW2+9paioKF1yySXatWuX7r77bv/+kyZNUocOHTRhwgT/trfeekspKSnKyclRixYt9NRTT2nhwoX605/+pO+++05Dhw7Vf/3Xf4X8vQIILoIKgGrXpk0b/z+7XC4lJiZq7969kqSNGzeqbdu2ioqK8td06dIlYP/Vq1dr8eLFio6OLnXsLVu2qEWLFoqIiNDMmTPVpk0bNW7cWC+//HL1vBkAIUVQAVDtTn4CyOVy6ejRo5IkY0y5+x89elT9+/fXxIkTS7124q2dFStWSJIKCgpUUFCgevXqnUnbACzAHBUAjmrVqpXWrVunQ4cO+bd9/fXXATUdOnTQd999pyZNmqhZs2YBy7EwsmXLFo0cOVJTp05V586dddttt/nDEICai6ACwFG33nqr6tSpoz/84Q/Kzs7WP//5Tz3//PMBNcOHD1dBQYEGDRqklStXauvWrfrss890xx13qLi4WMXFxRo6dKiuueYa3X777Zo2bZo2bNigF154waF3BSBYCCoAHBUdHa2PP/5Y2dnZat++vR599NFSt3iSk5P15Zdfqri4WL1791br1q01YsQIeTwe1alTR08//bS2b9/uf+w5MTFRb7zxhv7yl7/w7bZADecyFblBDAAA4ACuqAAAAGsRVAAAgLUIKgAAwFoEFQAAYC2CCgAAsBZBBQAAWIugAgAArEVQAQAA1iKoAAAAaxFUAACAtQgqAADAWgQVAABgrf8HQLVquCpzkpoAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# your code here\n", + "df_100 = pd.read_csv(\"../data/roll_the_dice_hundred.csv\")\n", + "#I learned we can use ../ to go one folder back for the import just like in bash\n", + "\n", + "#df_100.shape\n", + "\n", + "display(df_100.head(10))\n", + "\n", + "#copy pasting from earlier:\n", + "df_sorted100 = df_100.sort_values(by=\"value\", inplace=False)\n", + "\n", + "df_sorted100 = df_sorted100.reset_index(drop=True)\n", + "\n", + "#plot using the reset index to have it sorted by value\n", + "graph = df_sorted100.reset_index().plot.scatter(x='index', y='value', c='orange', title='Dice Roll Results')\n", + "\n", + "# Display the plot\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "\"\"\"\n", + "well, we have more data so the we can expect the probability of each result to get closer to 1/6 as we increase our sample size.\n", + "at 1000 values it might be very difficult to see variance on the plotted chart\n", + "\"\"\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 2.- Using the functions you defined in *challenge 2*, calculate the mean value of the hundred dice rolls." + ] + }, + { + "cell_type": "code", + "execution_count": 75, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3.74\n" + ] + } + ], + "source": [ + "# your code here\n", + "rolls100 = df_100['value'].tolist()\n", + "\n", + "print(mean(rolls100))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 3.- Now, calculate the frequency distribution.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 77, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{1: 12, 2: 17, 6: 23, 5: 12, 4: 22, 3: 14}" + ] + }, + "execution_count": 77, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# your code here\n", + "calc_freq_dist(rolls100)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 4.- Plot the histogram. What do you see (shape, values...) ? How can you connect the mean value to the histogram? " + ] + }, + { + "cell_type": "code", + "execution_count": 79, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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1kz9+/d3nTpyOp2X9f3/WVRUlFq2bKnvv/9eBQUFFxzpXLFiheLj49WwYUNNmzZNsbGxSk5O1sqVK13rXO7vgxkFBQU6cOCA6tev71qWm5urLl26aO/evZo4caKaNm2qb7/9VomJidq2bVux8mfGvffeqy1btuiFF15Q/fr1deLECW3ZskUZGRmXnRcVhAFYICkpyZBU6i0/P99Yu3atIcm4+eabiz0vJyfHqF69uhEfH19seWFhodGsWTPjpptuci1r3bq1ERUVZZw5c8a1LCsry6hevbrx5x/9ffv2GZKMpKSkEjklGRMmTHDd//vf/25ER0cbJ0+eLLbeo48+avj4+BiZmZmGYRiu/L179y623kcffWRIMjZs2GAYhmFkZ2cbgYGBRocOHYyioqILHq8JEyYY3t7expEjR1zLPvzwQ0OSsX79+gs+zzD+71hv2rTpguuEh4cbDRs2LLa/Px+jTz75xJBkbNu27YLbOHr0aInj5b69Z5999oKP/VlcXJzhcDhK7K979+5GYGCgkZOTU+x727dvX7H1zh//tWvXupb16dPHiIuLKzW7e+6BAwcaTqfTSElJKbZer169DD8/P+PEiRPF9nOp1/lC2rRpY4SFhRnZ2dmuZQUFBUbjxo2N6Oho18/E+Z/Rl19++aLbM7vugAEDDEmun6fSjlfdunWNunXrFvv9cWf29+FC4uLijN69exv5+flGfn6+sX//fuPBBx80vLy8jC+++MK13qxZswxJxkcffVTs+VOmTDEkGStXriy2zSFDhpQ4Hn/+/a5ataoxatSoi2aDvXCaCZZasGCBNm3aVOz2578U77jjjmLrf//998rMzNSQIUNUUFDguhUVFalnz57atGmTcnJylJOTo02bNql///7y8fFxPT8gIEDx8fFlypqbm6uvv/5a/fr1k5+fX7H99+7dW7m5udq4cWOx59x2223F7jdt2lSStH//ftf3k5WVpeHDh1909tC//vUvSdJbb73lWjZjxgw1adJEN998c5m+nz8zLjFz5MYbb5S3t7ceeughzZ8/X3/88UeZ9uP+el5Mo0aN1KxZs2LLBg0apKysLG3ZsqVM+zdrzZo16tq1q2JiYootHzp0qE6fPl3ilN+lXufS5OTk6IcfftCdd96pqlWrupZ7eHjo3nvv1cGDB02fqrpcl3q9d+/erb179+qBBx4o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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# your code here\n", + "\n", + "ax = df_sorted100['value'].plot.hist(bins=6, alpha=0.75, title='Frequency Distribution of Dice Rolls')\n", + "\n", + "# Set the labels\n", + "ax.set_xlabel('Dice Result')\n", + "ax.set_ylabel('Frequency')\n", + "\n", + "\n", + "#adding a line\n", + "plt.axvline(mean(rolls100), color='red', linestyle='dashed', linewidth=1)\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "\"\"\"\n", + "the bigger our sample size, or population the closer each bar should get to 100/6 and because our histogram is sorted it should\n", + "always be between bins 3 and 4. The bigger our sample size, the closer our dotted red line should get to 3.5.\n", + "\"\"\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 5.- Read the `roll_the_dice_thousand.csv` from the `data` folder. Plot the frequency distribution as you did before. Has anything changed? Why do you think it changed?" + ] + }, + { + "cell_type": "code", + "execution_count": 83, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3.447\n" + ] + }, + { + "data": { + "image/png": "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IDVu3Fg9e/Z0HZpyOp1X9fp/KyYmRs2aNdOXX36pwsLCi46Url69WklJSbrxxhs1ZcoUxcXF6cCBA/r0009d61zt98OVKCws1OHDh1W3bl3XvLy8PCUkJGjfvn0aP368GjVqpC+++ELJycnasWOHWzm8En/961+1fft2Pf/886pbt65Onz6t7du3KyMj46rzwgIMwKJSUlIMSaVOBQUFxvr16w1Jxm233ea2XW5urhESEmIkJSW5zS8qKjIaN25s3HLLLa55LVq0MGJiYoyzZ8+65mVlZRkhISHGb7899u/fb0gyUlJSSuSUZIwdO9b1+I477jBq1KhhZGZmuq336KOPGj4+PsbJkycNwzBc+bt27eq23rvvvmtIMr766ivDMAwjOzvbCAwMNG699VajuLj4ou/X2LFjDW9vb+P48eOueUuWLDEkGRs3brzodobx63u9ZcuWi64TGRlp3HjjjW7P99v36P333zckGTt27LjoPk6cOFHi/bpwf88+++xFl/1WfHy84XA4Sjxfp06djMDAQCM3N9ftte3fv99tvfPv//r1613zunXrZsTHx5ea/cLcffr0MZxOp3Ho0CG39RITEw0/Pz/j9OnTbs9zua/zxbRs2dKIiIgwsrOzXfMKCwuNBg0aGDVq1HD9mzj/b/Sll1665P6udN3evXsbklz/nkp7v2rXrm3Url3b7fvnQlf6/XAx8fHxRteuXY2CggKjoKDAOHjwoDF48GDDy8vL+Oijj1zrvfnmm4Yk491333XbftKkSYYk49NPP3XbZ//+/Uu8H7/9/q5ataoxYsSIS2ZD5cFhLFjevHnztGXLFrfpt79p3nPPPW7rf/nllzp58qT69++vwsJC11RcXKwuXbpoy5Ytys3NVW5urrZs2aKePXvKx8fHtX1AQICSkpLKlDUvL0+fffaZevToIT8/P7fn79q1q/Ly8rR582a3bbp37+72uFGjRpKkgwcPul5PVlaWhgwZcsmrn/72t79Jkt5++23XvOnTp6thw4a67bbbyvR6fsu4zJUvN998s7y9vfXQQw9p7ty5+umnn8r0PBd+PS+lfv36aty4sdu8vn37KisrS9u3by/T81+pdevWqUOHDoqNjXWbP2DAAJ05c6bEIcXLfZ1Lk5ubq6+//lr33nuvqlat6prv4eGhv/71rzpy5MgVHwq7Wpf7ev/www/a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99mZMmWKUlJStGfPHnXt2lXz5s1T165dVaXKL92pVq1amjlzpm644YZyDQsAl2JUqaLCKt5mxwBgMWUa2ZkxY4b69u2rQ4cOafny5brzzjtdRee8uLg4zZo1q1xCAsCViD5+SM9OHqro44fMjgLAQso0srN3797LruPt7a3+/fuXZfcAUCbO/LO66Ydv5Mw/a3YUABZSppGdlJQUvffeeyXmv/fee5o7d+7vDgUAAFBeylR2XnjhBYWFhZWYHxERoYkTJ/7uUAAAAOWlTGXn4MGDqlWrVon58fHxOnSIY+UAAMA6ylR2IiIi9N1335WY/+233yo0NPSK9/P5558rKSlJMTExcjgcWr58udtywzA0btw4xcTEyNfXV+3bt9fu3bvd1snPz9ewYcMUFhYmf39/de/eXUeOHCnLywJQyWWERGrmX59SRkik2VEAWEiZyk6fPn302GOPaf369SoqKlJRUZHWrVun4cOHq0+fPle8n9zcXDVu3FjTp08vdfmLL76oKVOmaPr06dqyZYuioqLUqVMnZWdnu9YZMWKEli1bpsWLF2vTpk3KycnRnXfeqaKiorK8NACVWHbValp/a3dlV61mdhQAFlKmq7EmTJiggwcPqkOHDvL0/GUXxcXF6tev31Wds5OYmKjExMRSlxmGoalTp+qZZ55Rz549JUlz585VZGSkFi1apIcffliZmZmaNWuW5s+fr44dO0qSFixYoNjYWK1du1Z33HFHWV4egEoqIOe0mu/4XFtvvo3CA8ClTCM73t7eWrJkif7f//t/WrhwoZYuXap9+/Zp9uzZ8vYunxt67d+/X2lpaercubNrntPpVLt27fTll19KkrZt26aCggK3dWJiYtSgQQPXOgD+OEJPHtfD819Q6MnjZkcBYCFlGtk5r27duqpbt255ZXGTlpYmSYqMdD/2HhkZqYMHD7rW8fb2VnBwcIl1zm9fmvz8fOXn57seZ2VllVdsAABgMWUqO0VFRZozZ44+++wzpaenq7i42G35unXryiWcJDkcDrfHhmGUmHehy62TnJys8ePHl0s+AABgbWU6jDV8+HANHz5cRUVFatCggRo3buw2lYeoqChJKjFCk56e7hrtiYqK0rlz53Tq1KmLrlOaMWPGKDMz0zUdPny4XDIDAADrKdPIzuLFi/Xuu++qa9eu5Z3HpVatWoqKitKaNWvU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5eWlyMhIderUSbNnz1ZxcbHbuqmpqW6fPl3exo0b58pSpUoVxcTE6L777tPhw4ev2XNezoYNG+RwOHT69GnTMgB/RJQdAOWqS5cuSk1N1YEDB/TJJ58oISFBw4cP15133qnCwkLXelFRUXI6ndc0S/369ZWamqojR45oyZIl2rlzp3r16nVNnxOA9VB2AJQrp9OpqKgoVa9eXU2bNtXTTz+tDz74QJ988onmzJnjWu/Cw1hHjhxRnz59FBISIn9/fzVv3lxff/21a/mHH36oZs2aycfHR9ddd53Gjx/vVp5K4+npqaioKMXExKht27YaPHiwNm/erKysrCve77hx4xQXFyen06mYmBg99thjF30NklStWjW313negQMHlJCQIEkKDg6Ww+HQgAEDLpkfQPngU88BXHO33367GjdurKVLl2rQoEEllufk5Khdu3aqXr26VqxYoaioKG3fvt116Gv16tW6//779dprr6lt27bat2+fHnroIUnS2LFjryhDWlqali5dKg8PD3l4eFzRft9//3298sorWrx4serXr6+0tDR9++23ZXoPYmNj9a9//Uv33HOP9uzZo8DAQPn6+pZpXwCuDmUHQIW44YYb9N1335W6bNGiRTpx4oS2bNmikJAQSdL111/vWv7888/rqaeeUv/+/SVJ1113nf7xj3/oiSeeuGTZ2blzp6pWrari4mKdPXtWkvTYY4/J39//ivZ76NAhRUVFqWPHjvLy8lJcXJxuueWWMr1+Dw8P12uLiIhQtWrVyrQfAFePsgOgQhiGIYfDUeqyHTt2qEmTJq4ycKFt27Zpy5Ytev75513zioqKlJeXpzNnzsjPz6/U7erVq6cVK1YoPz9fH3zwgd577z23fVxuv3/+8581depUXXfdderSpYu6du2qpKQkeXryoxOoTPiOBVAh/vvf/6pWrVqlLrvc4Zzi4mKNHz9ePXv2LLHMx8fnott5e3u7Rojq16+vvXv36m9/+5vmz59/RfuNjY3Vnj17tGbNGq1du1ZDhgzRSy+9pI0bN8rLy0sOh0OGYbhtV1BQcMnXAqDiUXYAXHPr1q3Tzp079fjjj5e6vFGjRvrnP/+pkydPljq607RpU+3Zs8ft0FZZ/P3vf1fdunX1+OOPq2nTple0X19fX3Xv3l3du3fX0KFDdcMNN2jnzp1q2rSpwsPDlZqa6lp37969OnPmzEX35e3tLemX0SMAFYeyA6Bc5efnKy0tTUVFRTp+/LhWrVql5ORk3XnnnerXr1+p2/zlL3/RxIkTdffddys5OVnR0dH65ptvFBMTo1atWunZZ5/VnXfeqdjYWP35z39WlSpV9N1332nnzp2aMGHCFWe77rrrdNddd+nZZ5/VRx99dNn9zpkzR0VFRWrRooX8/Pw0f/58+fr6Kj4+XtIvJ15Pnz5dLVu2VHFxsZ588kl5eXld9Pnj4+PlcDj00UcfqWvXrvL19VXVqlWv7g0GcPUMACgn/fv3NyQZkgxPT08jPDzc6NixozF79myjqKjIbV1JxrJly1yPDxw4YNxzzz1GYGCg4efnZzRv3tz4+uuvXctXrVpltG7d2vD19TUCAwONW265xXjrrbcummXs2LFG48aNS8z/97//bUgyNm/efNn9Llu2zGjRooURGBho+Pv7Gy1btjTWrl3r2tfRo0eNzp07G/7+/kadOnWMjz/+2AgKCjJSUlIMwzCM/fv3G5KMb775xrXNc889Z0RFRRkOh8Po37//Fb6zAH4Ph2FccMAZAADARripIAAAsDXKDgAAsDXKDgAAsDXKDgAAsDXKDgAAsDXKDgAAsDXKDgAAsDXKDgAAsDXKDgAAsDXKDgAAsDXKDgAAsDXKDgAAsLX/H8Pm3W+uDnk3AAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# your code here\n", + "df_1000 = pd.read_csv(\"../data/roll_the_dice_thousand.csv\")\n", + "#I learned we can use ../ to go one folder back for the import just like in bash\n", + "\n", + "#df_100.shape\n", + "rolls1000 = df_1000['value'].tolist()\n", + "\n", + "print(mean(rolls1000))\n", + "\n", + "#display(df_1000.head(10))\n", + "\n", + "#copy pasting from earlier:\n", + "df_sorted1000 = df_1000.sort_values(by=\"value\", inplace=False)\n", + "\n", + "df_sorted1000 = df_sorted1000.reset_index(drop=True)\n", + "\n", + "ax = df_sorted1000['value'].plot.hist(bins=6, alpha=0.75, title='Frequency Distribution of Dice Rolls')\n", + "\n", + "# Set the labels\n", + "ax.set_xlabel('Dice Result')\n", + "ax.set_ylabel('Frequency')\n", + "\n", + "\n", + "#adding a line\n", + "plt.axvline(mean(rolls1000), color='red', linestyle='dashed', linewidth=1)\n", + "\n", + "plt.show()\n", + "\n", + "# Display the plot\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "\"\"\"\n", + "I answered this above\n", + "\"\"\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Challenge 4\n", + "In the `data` folder of this repository you will find three different files with the prefix `ages_population`. These files contain information about a poll answered by a thousand people regarding their age. Each file corresponds to the poll answers in different neighbourhoods of Barcelona.\n", + "\n", + "#### 1.- Read the file `ages_population.csv`. Calculate the frequency distribution and plot it as we did during the lesson. Try to guess the range in which the mean and the standard deviation will be by looking at the plot. " + ] + }, + { + "cell_type": "code", + "execution_count": 91, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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PXpUR48eVadOnRQUFOR0Kats/2U3ppfx9fUt19Ovv/6qDz74oNzvfpMmTSSV/90HyvBICXAeZ57tCA8PlyS9/PLLZ32CJjIy0vHkVk5OTrn1Z46VnfkpKipyGj/zD02NGjUc/9c9bNiwCo8dFxd3jm7KK7upt+z+nHMZNWqUFi5cqPfff18fffSRrrzySt13332VOl5FVq1apZKSkvM+Ln7rrbfq1ltvVUlJib755hu9/PLLSklJUWRkpJKTky/oWJX57J5zvXdlf4jP9t5d7B/emjVrVvi5NGU3gpf9Hl6MGjVqqFq1am4/zpo1axxnlM4MLJL01Vdf6fvvv9d1113nWP/rr7/qqquucswpLi4u9/sfHh6uZs2a6bnnnqvwuHxkBM6GsANU0i233KIrr7xS33///TnPavj7++vmm29Wenq6pk2b5vijWFBQoA8++MBpbmRkpKpXr65t27Y5jb///vtOrwMDA9WxY0d99913atasmfz9/S+6n4SEBIWGhmrOnDlKTk4+Zxho0aKFEhISNHXqVO3YsUOPPPKIgoKCLur4+/bt09ixYxUaGqohQ4Zc0DY+Pj5q1aqVGjdurLfeekvffvutkpOTL+hsRmXs3LlTW7dudbqUtXjxYgUHB+vGG2+UJMdTSdu2bXP63JmVK1eW25/dbr/g2hITE7V8+XL98ssvTn/EFyxYoMDAQLc8qh4UFKRWrVopPT1dL7zwggICAiT9fmZm0aJFql27tho2bFjp/c6dO1fVqlVTenq6QkNDndYdOHBADzzwgN5880298MILjkugy5Ytc/xMJendd98t97BAz549tXr1atWvX181atSodF24fBF2gEq64oor9PLLL6t///46fPiw7rrrLkVEROjgwYPaunWrDh48qNmzZ0uS/vGPf6hr167q3LmzxowZo5KSEk2dOlVBQUE6fPiwY582m03333+/3nzzTdWvX1/NmzfX119/rcWLF5c7/j//+U+1bdtWt956qx599FHVq1dPBQUF+vHHH/XBBx9o7dq1le5n+vTpGjx4sDp16qSHH35YkZGR+vHHH7V161bNmjXLaf6oUaPUr18/2Ww2DR06tFLH2rFjh+M+i9zcXH3xxRdKS0uTj4+Pli9f7jjLVJE5c+Zo7dq16tGjh+rWrauTJ0/qzTfflCTHhxEGBwcrNjZW77//vhITExUWFqbw8PALeky6IjExMbr99ts1ceJERUdHa9GiRcrIyNDUqVMVGBgoSbrpppvUqFEjjR07VsXFxapRo4aWL19e4SPWTZs2VXp6umbPnq0WLVqoWrVqZ/2MpwkTJjjuUfn73/+usLAwvfXWW1q1apWef/75ciHCVampqercubM6duyosWPHyt/fX6+88op27NihJUuWVPpTrA8dOqT3339fXbp00R133FHhnBdffFELFixQamqqmjRponvuuUfTp0+Xj4+PbrvtNu3cuVPTp09XaGioqlX7v7stnnnmGWVkZCghIUEjR45Uo0aNdPLkSe3Zs0erV6/WnDlzPP55SaiiPHyDNOAx53tCqOwpl3feeafC9ZmZmaZHjx4mLCzM+Pn5mauuusr06NGj3PyVK1eaZs2aGX9/f1O3bl0zZcqUCp/+ycvLM4MHDzaRkZEmKCjI9OrVy+zZs6fCp4uysrLMwIEDzVVXXWX8/PxMrVq1TEJCgnn22WfPW//ZnvxavXq142mZwMBAc91115mpU6eW67uoqMjY7XbTtWvXCn8uFTnzyTd/f38TERFh2rdvbyZPnmxyc3PLbXPmz2jjxo2md+/eJjY21tjtdlOzZk3Tvn17s3LlSqft1qxZY2644QZjt9udnuYp29/BgwfPeyxjfn8aq0ePHubdd981TZo0Mf7+/qZevXpmxowZ5bb/4YcfTFJSkgkJCTG1atUyI0aMMKtWrSr3NNbhw4fNXXfdZa688kpjs9mcjlnR+7x9+3bTq1cvExoaavz9/U3z5s3LvW+VfZ8r8sUXX5jbbrvNBAUFmYCAANO6dWvzwQcfVLi/8z2NNXPmTCPJrFix4qxz5syZYySZ9957zxhjzMmTJ83o0aNNRESEqV69umndurXZuHGjCQ0NNY899pjTtgcPHjQjR440cXFxxs/Pz4SFhZkWLVqY8ePHm2PHjp23V1yebMac5xEIAG43ceJETZo06bxPIFVFH3zwgW6//XatWrXKcVM04G4bNmzQLbfcorfeekv33nuvp8uBl+MyFoAL8v3332vv3r0aM2aMrr/+esfjvsDFysjI0MaNG9WiRQsFBARo69atmjJliho0aKA+ffp4ujxYAGEHwAUZOnSovvzyS914442aP39+pe/lAM4mJCREn3zyiWbOnKmCggKFh4erW7duSk1NdfqMKsBVXMYCAACW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c38rV640q1atMrt27TK7du0yTz31lPHz8zM7duwwxnh3b3/09ddfm3r16plmzZqZUaNGOca9ub8JEyaYJk2amOzsbMeSm5vrWO/NvRljzOHDh01sbKwZMGCA+c9//mOysrLMmjVrzI8//uiY48095ubmOr13GRkZRpJZt26dMca7e3v22WdNzZo1zb///W+TlZVl3nnnHXPFFVeYmTNnOuZ4S3+EnYt08803m7/+9a9OY40bNzZPPvmkhypyjzPDTmlpqYmKijJTpkxxjJ08edKEhoaaOXPmeKDCi5Obm2skmczMTGOM9fozxpgaNWqYN954wzK9FRQUmAYNGpiMjAzTvn17R9jx9v4mTJhgmjdvXuE6b+/NGGOeeOIJ07Zt27Out0KPfzRq1ChTv359U1pa6vW99ejRwwwcONBprE+fPub+++83xnjXe8dlrItw6tQpbd68WUlJSU7jSUlJ2rBhg4equjSysrKUk5Pj1Kvdblf79u29ste8vDxJUlhYmCRr9VdSUqKlS5eqsLBQbdq0sUxvw4YNU48ePdSpUyencSv0t3v3bsXExCguLk7Jycn66aefJFmjt5UrV6ply5b6y1/+ooiICN1www16/fXXHeut0GOZU6dOadGiRRo4cKBsNpvX99a2bVt9+umn+uGHHyRJW7du1fr169W9e3dJ3vXeWeYTlD3ht99+U0lJSblvV4+MjCz3Lezerqyfinrdu3evJ0pymTFGo0ePVtu2bRUfHy/JGv1t375dbdq00cmTJ3XFFVdo+fLluu666xz/0fHm3pYuXapvv/1WmzZtKrfO29+7Vq1aacGCBWrYsKF+/fVXPfvss0pISNDOnTu9vjdJ+umnnzR79myNHj1aTz31lL7++muNHDlSdrtdDz74oCV6LLNixQodPXpUAwYMkOT9v5tPPPGE8vLy1LhxY/n4+KikpETPPfec7rnnHkne1R9hxw1sNpvTa2NMuTGrsEKvw4cP17Zt27R+/fpy67y5v0aNGmnLli06evSo3nvvPfXv31+ZmZmO9d7a2/79+zVq1Ch98sknql69+lnneWt/3bp1c/xz06ZN1aZNG9WvX1/z589X69atJXlvb5JUWlqqli1bavLkyZKkG264QTt37tTs2bP14IMPOuZ5c49l5s6dq27duikmJsZp3Ft7W7ZsmRYtWqTFixerSZMm2rJli1JSUhQTE6P+/fs75nlDf1zGugjh4eHy8fEpdxYnNze3XNL1dmVPh3h7ryNGjNDKlSu1bt061a5d2zFuhf78/f11zTXXqGXLlkpNTVXz5s31z3/+0+t727x5s3Jzc9WiRQv5+vrK19dXmZmZeumll+Tr6+vowVv7O1NQUJCaNm2q3bt3e/17J0nR0dG67rrrnMauvfZa7du3T5I1/t2TpL1792rNmjUaPHiwY8zbe/t//+//6cknn1RycrKaNm2qBx54QI899phSU1MleVd/hJ2L4O/vrxYtWigjI8NpPCMjQwkJCR6q6tKIi4tTVFSUU6+nTp1SZmamV/RqjNHw4cOVnp6utWvXKi4uzmm9t/dXEWOMioqKvL63xMREbd++XVu2bHEsLVu21H333actW7bo6quv9ur+zlRUVKT//ve/io6O9vr3TpJuueWWch/z8MMPPyg2NlaSdf7dS0tLU0REhHr06OEY8/bejh8/rmrVnGOCj4+P49Fzr+rPM/dFW0fZo+dz584133//vUlJSTFBQUFmz549ni6t0goKCsx3331nvvvuOyPJzJgxw3z33XeOx+inTJliQkNDTXp6utm+fbu55557quQjhhV59NFHTWhoqPnss8+cHhM9fvy4Y4439zdu3Djz+eefm6ysLLNt2zbz1FNPmWrVqplPPvnEGOPdvVXkj09jGePd/Y0ZM8Z89tln5qeffjJfffWV6dmzpwkODnb8N8SbezPm948L8PX1Nc8995zZvXu3eeutt0xgYKBZtGiRY46391hSUmLq1q1rnnjiiXLrvLm3/v37m6uuusrx6Hl6eroJDw83jz/+uGOOt/RH2HGDf/3rXyY2Ntb4+/ubG2+80fE4s7dZt26dkVRu6d+/vzHm98cMJ0yYYKKioozdbjft2rUz27dv92zRF6iiviSZtLQ0xxxv7m/gwIGO38FatWqZxMRER9Axxrt7q8iZYceb+yv7XBI/Pz8TExNj+vTpY3bu3OlY7829lfnggw9MfHy8sdvtpnHjxua1115zWu/tPX788cdGktm1a1e5dd7cW35+vhk1apSpW7euqV69urn66qvN+PHjTVFRkWOOt/RnM8YYj5xSAgAA+BNwzw4AALA0wg4AALA0wg4AALA0wg4AALA0wg4AALA0wg4AALA0wg4AALA0wg4AALA0wg4Ar7Vhwwb5+Pioa9euni4FQBXGJygD8FqDBw/WFVdcoTfeeEPff/+96tat6+mSAFRBnNkB4JUKCwv19ttv69FHH1XPnj01b948p/UrV65UgwYNFBAQoI4dO2r+/Pmy2Ww6evSoY86GDRvUrl07BQQEqE6dOho5cqQKCwv/3EYAXHKEHQBeadmyZWrUqJEaNWqk+++/X2lpaSo7Ub1nzx7ddddduvPOO7VlyxYNGTJE48ePd9p++/bt6tKli/r06aNt27Zp2bJlWr9+vYYPH+6JdgBcQlzGAuCVbrnlFt19990aNWqUiouLFR0drSVLlqhTp0568skntWrVKm3fvt0x/29/+5uee+45HTlyRFdeeaUefPBBBQQE6NVXX3XMWb9+vdq3b6/CwkJVr17dE20BuAQ4swPA6+zatUtff/21kpOTJUm+vr7q16+f3nzzTcf6m266yWmbm2++2en15s2bNW/ePF1xxRWOpUuXLiotLVVWVtaf0wiAP4WvpwsAgMqaO3euiouLddVVVznGjDHy8/PTkSNHZIyRzWZz2ubMk9ilpaUaMmSIRo4cWW7/3OgMWAthB4BXKS4u1oIFCzR9+nQlJSU5revbt6/eeustNW7cWKtXr3Za98033zi9vvHGG7Vz505dc801l7xmAJ7FPTsAvMqKFSvUr18/5ebmKjQ01Gnd+PHjtXr1aqWnp6tRo0Z67LHHNGjQIG3ZskVjxozRgQMHdPToUYWGhmrbtm1q3bq1HnroIT388MMKCgrSf//7X2VkZOjll1/2UHcALgXu2QHgVebOnatOnTqVCzrS72d2tmzZoiNHjujdd99Venq6mjVrptmzZzuexrLb7ZKkZs2aKTMzU7t379att96qG264QU8//bSio6P/1H4AXHqc2QFwWXjuuec0Z84c7d+/39OlAPiTcc8OAEt65ZVXdNNNN6lmzZr68ssvNW3aND5DB7hMEXYAWNLu3bv17LPP6vDhw6pbt67GjBmjcePGebosAB7AZSwAAGBp3KAMAAAsjbADAAAsjbADAAAsjbADAAAsjbADAAAsjbADAAAsjbADAAAsjbADAAAsjbADAAAs7f8DJYdf1wgcnpEAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# your code here\n", + "df_pop = pd.read_csv(\"../data/ages_population.csv\")\n", + "\n", + "df_pop.shape\n", + "df_pop.head(5)\n", + "\n", + "df_popsorted = df_pop.sort_values(by=\"observation\", inplace=False)\n", + "\n", + "df_popsorted = df_popsorted.reset_index(drop=True)\n", + "\n", + "ax = df_popsorted['observation'].plot.hist(bins=10, alpha=0.75, title='Frequency Distribution of Age')\n", + "\n", + "# Set the labels\n", + "ax.set_xlabel('Age')\n", + "ax.set_ylabel('Frequency')\n", + "\n", + "# Display the plot\n", + "plt.show()\n", + "\n", + "\"\"\"\n", + "The mean will be late 30s\n", + "We can figure out an estimate for the standard deviation using the known 68-95-99.7 rule. So 1 stDev from the mean (in either direction)\n", + "will include 68% of the data. My guess is around 15 years (so 38+/-15\n", + "\"\"\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 2.- Calculate the exact mean and standard deviation and compare them with your guesses. Do they fall inside the ranges you guessed?" + ] + }, + { + "cell_type": "code", + "execution_count": 98, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "36.56\n", + "12.816499625976762\n" + ] + } + ], + "source": [ + "# Do I still need to use my methods?\n", + "\n", + "print(df_pop['observation'].mean())\n", + "print(df_pop['observation'].std())\n", + "\n", + "\"\"\"\n", + "close enough for a guess I suppose :)\n", + "\"\"\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 3.- Now read the file `ages_population2.csv` . Calculate the frequency distribution and plot it." + ] + }, + { + "cell_type": "code", + "execution_count": 102, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjsAAAHFCAYAAAAUpjivAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA6UklEQVR4nO3deXQUZd7+/6vJ0iQxiQTIJiHmQUAxgAoom+wEkE3AAwyjgoIysgscFf3OiDMOYRHEkUfAEcO+qBMWH9AxCKJIHFlkdQ6iE7YhMciShACBJPfvD35p7aykCXSn8n6dU+fYVXfd9am7i85lLd02Y4wRAACARVVzdwEAAAA3E2EHAABYGmEHAABYGmEHAABYGmEHAABYGmEHAABYGmEHAABYGmEHAABYGmEHAABYGmEHVdbixYtls9mKnSZPnuzu8iyl8FhXr15d4eHh6tixo+Lj45Wenl5knalTp8pms5VrOxcvXtTUqVP1xRdflGu94rZ15513qlevXuXqpywrV67U3Llzi11ms9k0derUCt1eRfv888/VvHlzBQQEyGazad26dWWuc+DAAdlsNvn4+Cg1NfXmFwkUw9vdBQDulpCQoLvvvttpXmRkpJuqsbaCsb569arS09O1fft2zZgxQ2+88YbWrFmjLl26ONqOGDFC3bt3L1f/Fy9e1GuvvSZJ6tChw3Wv58q2XLFy5UodPHhQEyZMKLIsOTlZderUuek1uMoYo4EDB6pBgwbasGGDAgIC1LBhwzLXe++99yRJubm5Wrp0qV588cWbXSpQBGEHVV5sbKyaN29+XW2vXr0qm80mb2/+6bii8FgPGDBAzz//vNq2bav+/fvryJEjCgsLkyTVqVPnpv/xv3jxovz9/W/JtsrSsmVLt26/LKdOndLZs2fVr18/de7c+brWycnJ0YoVK9S0aVP98ssvev/99wk7cAsuYwEl+OKLL2Sz2bRs2TJNmjRJd9xxh+x2u3788UdJ0ubNm9W5c2cFBQXJ399fbdq00eeff16kn40bN+q+++6T3W5XTEyM3njjjSKXTY4ePSqbzabFixcXWb+4yxtHjhzRkCFDFBoaKrvdrnvuuUf/+7//W2z9q1at0iuvvKLIyEgFBQWpS5cuOnz4cJHtfPrpp+rcubOCg4Pl7++ve+65R/Hx8ZKkZcuWyWazKTk5uch6f/7zn+Xj46NTp06VOabFqVu3rmbPnq2srCwtXLjQMb+4S0tbtmxRhw4dVLNmTfn5+alu3boaMGCALl68qKNHj6p27dqSpNdee81xyWzYsGFO/e3Zs0ePPfaYatSooXr16pW4rQJr165VkyZNVL16df3P//yP/va3vzktL7hEd/ToUaf5BeNfcEmtQ4cO2rhxo44dO+Z0Sa9Ace/zwYMH1bdvX9WoUUPVq1fXfffdpyVLlhS7net9n4uzfft2de7cWYGBgfL391fr1q21ceNGx/KpU6c6wuCLL74om82mO++8s8x+161bpzNnzmjEiBEaOnSofvjhB23fvr1Iu5ycHE2aNEnh4eHy9/dXu3bttHv3bt15552O969AWlqaRo4cqTp16sjX11cxMTF67bXXlJube137iqqJsIMqLy8vT7m5uU7Tb02ZMkXHjx/XggUL9PHHHys0NFTLly9XXFycgoKCtGTJEn3wwQcKCQlRt27dnALP559/rr59+yowMFCrV6/WrFmz9MEHHyghIcHler///nu1aNFCBw8e1OzZs/V///d/6tmzp8aNG+e4hPNbL7/8so4dO6b33ntP7777ro4cOaLevXsrLy/P0WbRokV65JFHlJ+f79jPcePG6eTJk5KkQYMGKTw8vEigys3N1cKFC9WvX78buvT3yCOPyMvLS19++WWJbY4ePaqePXvK19dX77//vj799FNNnz5dAQEBunLliiIiIvTpp59KkoYPH67k5GQlJyfrj3/8o1M//fv311133aUPP/xQCxYsKLWuvXv3asKECXr++ee1du1atW7dWuPHj9cbb7xR7n1855131KZNG4WHhztqKy48Fjh8+LBat26tQ4cO6W9/+5sSExPVqFEjDRs2TDNnzizS/nre5+Js27ZNnTp1UkZGhhYtWqRVq1YpMDBQvXv31po1ayRdu8yXmJgoSRo7dqySk5O1du3aMvd50aJFstvt+v3vf6+nn35aNptNixYtKtLuqaee0ty5c/XUU09p/fr1GjBggPr166fz5887tUtLS9ODDz6of/7zn/rTn/6kTz75RMOHD1d8fLyeeeaZMutBFWaAKiohIcFIKna6evWq2bp1q5Fk2rVr57Redna2CQkJMb1793aan5eXZ5o2bWoefPBBx7yHHnrIREZGmkuXLjnmZWZmmpCQEPPbf34pKSlGkklISChSpyTz6quvOl5369bN1KlTx2RkZDi1GzNmjKlevbo5e/asMcY46n/kkUec2n3wwQdGkklOTjbGGJOVlWWCgoJM27ZtTX5+fonj9eqrrxpfX1/z888/O+atWbPGSDLbtm0rcT1jfh3rnTt3ltgmLCzM3HPPPU7b++0YffTRR0aS2bt3b4l9nD59ush4Fe7vT3/6U4nLfis6OtrYbLYi2+vatasJCgoy2dnZTvuWkpLi1K5g/Ldu3eqY17NnTxMdHV1s7YXrHjx4sLHb7eb48eNO7Xr06GH8/f3N+fPnnbZT1vtckpYtW5rQ0FCTlZXlmJebm2tiY2NNnTp1HMdEwTE6a9asUvsrcPToUVOtWjUzePBgx7z27dubgIAAk5mZ6Zh36NAhI8m8+OKLTuuvWrXKSDJDhw51zBs5cqS57bbbzLFjx5zavvHGG0aSOXTo0HXVhqqHMzuo8pYuXaqdO3c6Tb+9J2fAgAFO7Xfs2KGzZ89q6NChTmeD8vPz1b17d+3cuVPZ2dnKzs7Wzp071b9/f1WvXt2xfsH/Nbvi8uXL+vzzz9WvXz/5+/s7bf+RRx7R5cuX9c033zit06dPH6fXTZo0kSQdO3bMsT+ZmZkaNWpUqU8/Pffcc5Kkv//974558+bNU+PGjdWuXTuX9ue3jDGlLr/vvvvk6+urZ599VkuWLNF//vMfl7ZT+P0szb333qumTZs6zRsyZIgyMzO1Z88el7Z/vbZs2aLOnTsrKirKaf6wYcN08eLFImeFynqfi5Odna1//etfeuyxx3Tbbbc55nt5eemJJ57QyZMnr/tSWGEJCQnKz8/X008/7Zj39NNPKzs723HGSLp2ZkmSBg4c6LT+Y489VuTeuP/7v/9Tx44dFRkZ6XTs9+jRw6kvoDDCDqq8e+65R82bN3eafisiIsLp9c8//yzp2oexj4+P0zRjxgwZY3T27FmdO3dO+fn5Cg8PL7LN4uZdjzNnzig3N1dvv/12kW0/8sgjkqRffvnFaZ2aNWs6vbbb7ZKkS5cuSZJOnz4tSWXeoBsWFqZBgwZp4cKFysvL0/79+/XVV19pzJgxLu3Lb2VnZ+vMmTOlXgqrV6+eNm/erNDQUI0ePVr16tVTvXr19NZbb5VrW4Xfz9KU9t6dOXOmXNstrzNnzhRba8EYFd5+We9zcc6dOydjTLm2cz3y8/O1ePFiRUZGqlmzZjp//rzOnz+vLl26KCAgwOlSVkH/BTemF/D29i6yTz///LM+/vjjIsf+vffeK6nosQ8U4JESoAyFz3bUqlVLkvT222+X+ARNWFiY48mttLS0IssLzys485OTk+M0v/Afmho1ajj+r3v06NHFbjsmJqaUvSmq4KbegvtzSjN+/HgtW7ZM69ev16effqrbb79dv//978u1veJs3LhReXl5ZT4u/vDDD+vhhx9WXl6edu3apbffflsTJkxQWFiYBg8efF3bKs9395T23hX8IS7pvbvRP7w1a9Ys9ntpCm4ELzgOb0SNGjVUrVq1Ct/O5s2bHWeUCgcWSfrmm2/0/fffq1GjRo7lP//8s+644w5Hm9zc3CLHf61atdSkSRP99a9/LXa7fGUESkLYAcqpTZs2uv322/X999+XelbD19dXDz74oBITEzVr1izHH8WsrCx9/PHHTm3DwsJUvXp17d+/32n++vXrnV77+/urY8eO+u6779SkSRP5+vre8P60bt1awcHBWrBggQYPHlxqGGjWrJlat26tGTNm6ODBg3r22WcVEBBwQ9s/fvy4Jk+erODgYI0cOfK61vHy8tJDDz2ku+++WytWrNCePXs0ePDg6zqbUR6HDh3Svn37nC5lrVy5UoGBgXrggQckyfFU0v79+52+d2bDhg1F+rPb7dddW+fOnbV27VqdOnXK6Y/40qVL5e/vXyGPqgcEBOihhx5SYmKi3njjDfn5+Um6dmZm+fLlqlOnjho0aFDufhctWqRq1aopMTFRwcHBTstOnjypJ554Qu+//77eeOMNxyXQNWvWOMZUkj766KMiDwv06tVLmzZtUr169VSjRo1y14Wqi7ADlNNtt92mt99+W0OHDtXZs2f12GOPKTQ0VKdPn9a+fft0+vRpzZ8/X5L0l7/8Rd27d1fXrl01adIk5eXlacaMGQoICNDZs2cdfdpsNj3++ON6//33Va9ePTVt2lTffvutVq5cWWT7b731ltq2bauHH35Yzz33nO68805lZWXpxx9/1Mcff6wtW7aUe39mz56tESNGqEuXLnrmmWcUFhamH3/8Ufv27dO8efOc2o8fP16DBg2SzWbTqFGjyrWtgwcPOu6zSE9P11dffaWEhAR5eXlp7dq1jrNMxVmwYIG2bNminj17qm7durp8+bLef/99SXJ8GWFgYKCio6O1fv16de7cWSEhIapVq9Z1PSZdnMjISPXp00dTp05VRESEli9frqSkJM2YMUP+/v6SpBYtWqhhw4aaPHmycnNzVaNGDa1du7bYR6wbN26sxMREzZ8/X82aNVO1atVK/I6nV1991XGPyp/+9CeFhIRoxYoV2rhxo2bOnFkkRLgqPj5eXbt2VceOHTV58mT5+vrqnXfe0cGDB7Vq1apyf4v1mTNntH79enXr1k19+/Ytts2bb76ppUuXKj4+Xvfee69+97vfafbs2fLy8lKnTp106NAhzZ49W8HBwapW7de7Lf785z8rKSlJrVu31rhx49SwYUNdvnxZR48e1aZNm7RgwQK3f18SPJSbb5AG3KasJ4QKnnL58MMPi12+bds207NnTxMSEmJ8fHzMHXfcYXr27Fmk/YYNG0yTJk2Mr6+vqVu3rpk+fXqxT/9kZGSYESNGmLCwMBMQEGB69+5tjh49WuzTRSkpKebpp582d9xxh/Hx8TG1a9c2rVu3Nq+//nqZ9Zf05NemTZscT8v4+/ubRo0amRkzZhTZ75ycHGO320337t2LHZfiFH7yzdfX14SGhpr27dubadOmmfT09CLrFB6j5ORk069fPxMdHW3sdrupWbOmad++vdmwYYPTeps3bzb333+/sdvtTk/zFPR3+vTpMrdlzLWnsXr27Gk++ugjc++99xpfX19z5513mjlz5hRZ/4cffjBxcXEmKCjI1K5d24wdO9Zs3LixyNNYZ8+eNY899pi5/fbbjc1mc9pmce/zgQMHTO/evU1wcLDx9fU1TZs2LfK+lfd9Ls5XX31lOnXqZAICAoyfn59p2bKl+fjjj4vtr6ynsebOnWskmXXr1pXYZsGCBUaS+cc//mGMMeby5ctm4sSJJjQ01FSvXt20bNnSJCcnm+DgYPP88887rXv69Gkzbtw4ExMTY3x8fExISIhp1qyZeeWVV8yFCxfK3FdUTTZjyngEAkCFmzp1ql577bUyn0DyRB9//LH69OmjjRs3Om6KBirajh071KZNG61YsUJDhgxxdzmo5LiMBeC6fP/99zp27JgmTZqk++67z/G4L3CjkpKSlJycrGbNmsnPz0/79u3T9OnTVb9+ffXv39/d5cECCDsArsuoUaP09ddf64EHHtCSJUvKfS8HUJKgoCB99tlnmjt3rrKyslSrVi316NFD8fHxTt9RBbiKy1gAAMDS+FJBAABgaYQdAABgaYQdAABgadygrGvfFnrq1CkFBgZy0yUAAJWEMUZZWVmKjIx0+gLKwgg7uvYbMIV/WRgAAFQOJ06cKPXbswk7uvYV89K1wQoKCnJzNQAA4HpkZmYqKirK8Xe8JIQd/foryEFBQYQdAAAqmbJuQeEGZQAAYGmEHQAAYGmEHQAAYGmEHQAAYGmEHQAAYGmEHQAAYGmEHQAAYGmEHQAAYGmEHQAAYGmEHQAAYGmEHQAAYGmEHQAAYGmEHQAAYGmEHQAAYGmEHQAAYGne7i4AAG62we8mu7uEclv9bCt3lwBYhlvP7MTHx6tFixYKDAxUaGioHn30UR0+fNipzbBhw2Sz2Zymli1bOrXJycnR2LFjVatWLQUEBKhPnz46efLkrdwVAADgodwadrZt26bRo0frm2++UVJSknJzcxUXF6fs7Gyndt27d1dqaqpj2rRpk9PyCRMmaO3atVq9erW2b9+uCxcuqFevXsrLy7uVuwMAADyQWy9jffrpp06vExISFBoaqt27d6tdu3aO+Xa7XeHh4cX2kZGRoUWLFmnZsmXq0qWLJGn58uWKiorS5s2b1a1bt5u3AwAAwON51A3KGRkZkqSQkBCn+V988YVCQ0PVoEEDPfPMM0pPT3cs2717t65evaq4uDjHvMjISMXGxmrHjh3FbicnJ0eZmZlOEwAAsCaPCTvGGE2cOFFt27ZVbGysY36PHj20YsUKbdmyRbNnz9bOnTvVqVMn5eTkSJLS0tLk6+urGjVqOPUXFhamtLS0YrcVHx+v4OBgxxQVFXXzdgwAALiVxzyNNWbMGO3fv1/bt293mj9o0CDHf8fGxqp58+aKjo7Wxo0b1b9//xL7M8bIZrMVu2zKlCmaOHGi43VmZiaBBwAAi/KIMztjx47Vhg0btHXrVtWpU6fUthEREYqOjtaRI0ckSeHh4bpy5YrOnTvn1C49PV1hYWHF9mG32xUUFOQ0AQAAa3Jr2DHGaMyYMUpMTNSWLVsUExNT5jpnzpzRiRMnFBERIUlq1qyZfHx8lJSU5GiTmpqqgwcPqnXr1jetdgAAUDm49TLW6NGjtXLlSq1fv16BgYGOe2yCg4Pl5+enCxcuaOrUqRowYIAiIiJ09OhRvfzyy6pVq5b69evnaDt8+HBNmjRJNWvWVEhIiCZPnqzGjRs7ns4CAABVl1vDzvz58yVJHTp0cJqfkJCgYcOGycvLSwcOHNDSpUt1/vx5RUREqGPHjlqzZo0CAwMd7d988015e3tr4MCBunTpkjp37qzFixfLy8vrVu4OAADwQDZjjHF3Ee6WmZmp4OBgZWRkcP8OYEH8XARgTdf799tjnsYCUDlUxuAAoGrziKexAAAAbhbCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDTCDgAAsDS3hp34+Hi1aNFCgYGBCg0N1aOPPqrDhw87tTHGaOrUqYqMjJSfn586dOigQ4cOObXJycnR2LFjVatWLQUEBKhPnz46efLkrdwVAADgodwadrZt26bRo0frm2++UVJSknJzcxUXF6fs7GxHm5kzZ2rOnDmaN2+edu7cqfDwcHXt2lVZWVmONhMmTNDatWu1evVqbd++XRcuXFCvXr2Ul5fnjt0CAAAexGaMMe4uosDp06cVGhqqbdu2qV27djLGKDIyUhMmTNCLL74o6dpZnLCwMM2YMUMjR45URkaGateurWXLlmnQoEGSpFOnTikqKkqbNm1St27dytxuZmamgoODlZGRoaCgoJu6j0BlN/jdZHeXUCWsfraVu0sAPN71/v32qHt2MjIyJEkhISGSpJSUFKWlpSkuLs7Rxm63q3379tqxY4ckaffu3bp69apTm8jISMXGxjraAACAqsvb3QUUMMZo4sSJatu2rWJjYyVJaWlpkqSwsDCntmFhYTp27Jijja+vr2rUqFGkTcH6heXk5CgnJ8fxOjMzs8L2AwAAeBaPObMzZswY7d+/X6tWrSqyzGazOb02xhSZV1hpbeLj4xUcHOyYoqKiXC8cAAB4NI8IO2PHjtWGDRu0detW1alTxzE/PDxckoqcoUlPT3ec7QkPD9eVK1d07ty5EtsUNmXKFGVkZDimEydOVOTuAAAAD+LWsGOM0ZgxY5SYmKgtW7YoJibGaXlMTIzCw8OVlJTkmHflyhVt27ZNrVu3liQ1a9ZMPj4+Tm1SU1N18OBBR5vC7Ha7goKCnCYAAGBNbr1nZ/To0Vq5cqXWr1+vwMBAxxmc4OBg+fn5yWazacKECZo2bZrq16+v+vXra9q0afL399eQIUMcbYcPH65JkyapZs2aCgkJ0eTJk9W4cWN16dLFnbsHAAA8gFvDzvz58yVJHTp0cJqfkJCgYcOGSZJeeOEFXbp0SaNGjdK5c+f00EMP6bPPPlNgYKCj/Ztvvilvb28NHDhQly5dUufOnbV48WJ5eXndql0BAAAeyqO+Z8dd+J4d4PrxPTu3Bt+zA5StUn7PDgAAQEUj7AAAAEsj7AAAAEsj7AAAAEsj7AAAAEsj7AAAAEsj7AAAAEsj7AAAAEsj7AAAAEsj7AAAAEsj7AAAAEsj7AAAAEsj7AAAAEsj7AAAAEsj7AAAAEsj7AAAAEsj7AAAAEsj7AAAAEsj7AAAAEsj7AAAAEsj7AAAAEsj7AAAAEsj7AAAAEsj7AAAAEsj7AAAAEsj7AAAAEsj7AAAAEsj7AAAAEsj7AAAAEsj7AAAAEsj7AAAAEsj7AAAAEsj7AAAAEsj7AAAAEsj7AAAAEsj7AAAAEsj7AAAAEsj7AAAAEsj7AAAAEsj7AAAAEsj7AAAAEsj7AAAAEsj7AAAAEsj7AAAAEsj7AAAAEsj7AAAAEsj7AAAAEsj7AAAAEsj7AAAAEsj7AAAAEsj7AAAAEsj7AAAAEsj7AAAAEtzKeykpKRUdB0AAAA3hUth56677lLHjh21fPlyXb58uaJrAgAAqDAuhZ19+/bp/vvv16RJkxQeHq6RI0fq22+/rejaAAAAbphLYSc2NlZz5szRf//7XyUkJCgtLU1t27bVvffeqzlz5uj06dMVXScAAIBLbugGZW9vb/Xr108ffPCBZsyYoZ9++kmTJ09WnTp19OSTTyo1NbWi6gQAAHDJDYWdXbt2adSoUYqIiNCcOXM0efJk/fTTT9qyZYv++9//qm/fvhVVJwAAgEtcCjtz5sxR48aN1bp1a506dUpLly7VsWPH9PrrrysmJkZt2rTRwoULtWfPnlL7+fLLL9W7d29FRkbKZrNp3bp1TsuHDRsmm83mNLVs2dKpTU5OjsaOHatatWopICBAffr00cmTJ13ZLQAAYEEuhZ358+dryJAhOn78uNatW6devXqpWjXnrurWratFixaV2k92draaNm2qefPmldime/fuSk1NdUybNm1yWj5hwgStXbtWq1ev1vbt23XhwgX16tVLeXl5ruwaAACwGG9XVjpy5EiZbXx9fTV06NBS2/To0UM9evQotY3dbld4eHixyzIyMrRo0SItW7ZMXbp0kSQtX75cUVFR2rx5s7p161ZmnQAAwNpcOrOTkJCgDz/8sMj8Dz/8UEuWLLnhon7riy++UGhoqBo0aKBnnnlG6enpjmW7d+/W1atXFRcX55gXGRmp2NhY7dixo8Q+c3JylJmZ6TQBAABrcinsTJ8+XbVq1SoyPzQ0VNOmTbvhogr06NFDK1as0JYtWzR79mzt3LlTnTp1Uk5OjiQpLS1Nvr6+qlGjhtN6YWFhSktLK7Hf+Ph4BQcHO6aoqKgKqxkAAHgWly5jHTt2TDExMUXmR0dH6/jx4zdcVIFBgwY5/js2NlbNmzdXdHS0Nm7cqP79+5e4njFGNputxOVTpkzRxIkTHa8zMzMJPAAAWJRLZ3ZCQ0O1f//+IvP37dunmjVr3nBRJYmIiFB0dLTjnqHw8HBduXJF586dc2qXnp6usLCwEvux2+0KCgpymgAAgDW5FHYGDx6scePGaevWrcrLy1NeXp62bNmi8ePHa/DgwRVdo8OZM2d04sQJRURESJKaNWsmHx8fJSUlOdqkpqbq4MGDat269U2rAwAAVB4uXcZ6/fXXdezYMXXu3Fne3te6yM/P15NPPlmue3YuXLigH3/80fE6JSVFe/fuVUhIiEJCQjR16lQNGDBAEREROnr0qF5++WXVqlVL/fr1kyQFBwdr+PDhmjRpkmrWrKmQkBBNnjxZjRs3djydBQAAqjaXwo6vr6/WrFmjv/zlL9q3b5/8/PzUuHFjRUdHl6ufXbt2qWPHjo7XBffRDB06VPPnz9eBAwe0dOlSnT9/XhEREerYsaPWrFmjwMBAxzpvvvmmvL29NXDgQF26dEmdO3fW4sWL5eXl5cquAQAAi7EZY4y7i3C3zMxMBQcHKyMjg/t3gDIMfjfZ3SVUCaufbeXuEgCPd71/v106s5OXl6fFixfr888/V3p6uvLz852Wb9myxZVuAQAAKpxLYWf8+PFavHixevbsqdjY2FIf8wYAAHAnl8LO6tWr9cEHH+iRRx6p6HoAAAAqlEuPnvv6+uquu+6q6FoAAAAqnEthZ9KkSXrrrbfEvc0AAMDTuXQZa/v27dq6das++eQT3XvvvfLx8XFanpiYWCHFAQAA3CiXws7tt9/u+GI/AAAAT+ZS2ElISKjoOgAAAG4Kl+7ZkaTc3Fxt3rxZCxcuVFZWliTp1KlTunDhQoUVBwAAcKNcOrNz7Ngxde/eXcePH1dOTo66du2qwMBAzZw5U5cvX9aCBQsquk4AAACXuHRmZ/z48WrevLnOnTsnPz8/x/x+/frp888/r7DiAAAAbpTLT2N9/fXX8vX1dZofHR2t//73vxVSGAAAQEVw6cxOfn6+8vLyisw/efKk0y+SAwAAuJtLYadr166aO3eu47XNZtOFCxf06quv8hMSAADAo7h0GevNN99Ux44d1ahRI12+fFlDhgzRkSNHVKtWLa1ataqiawQAAHCZS2EnMjJSe/fu1apVq7Rnzx7l5+dr+PDh+v3vf+90wzIAAIC7uRR2JMnPz09PP/20nn766YqsBwAAoEK5FHaWLl1a6vInn3zSpWIAAAAqmkthZ/z48U6vr169qosXL8rX11f+/v6EHQAA4DFcehrr3LlzTtOFCxd0+PBhtW3blhuUAQCAR3H5t7EKq1+/vqZPn17krA8AAIA7VVjYkSQvLy+dOnWqIrsEAAC4IS7ds7Nhwwan18YYpaamat68eWrTpk2FFAYAAFARXAo7jz76qNNrm82m2rVrq1OnTpo9e3ZF1AUAAFAhXAo7+fn5FV0HAADATVGh9+wAAAB4GpfO7EycOPG6286ZM8eVTQAAAFQIl8LOd999pz179ig3N1cNGzaUJP3www/y8vLSAw884Ghns9kqpkoAAAAXuRR2evfurcDAQC1ZskQ1atSQdO2LBp966ik9/PDDmjRpUoUWCQAA4CqX7tmZPXu24uPjHUFHkmrUqKHXX3+dp7EAAIBHcSnsZGZm6ueffy4yPz09XVlZWTdcFAAAQEVxKez069dPTz31lD766COdPHlSJ0+e1EcffaThw4erf//+FV0jAACAy1y6Z2fBggWaPHmyHn/8cV29evVaR97eGj58uGbNmlWhBQIAANwIl8KOv7+/3nnnHc2aNUs//fSTjDG66667FBAQUNH1AQAA3JAb+lLB1NRUpaamqkGDBgoICJAxpqLqAgAAqBAuhZ0zZ86oc+fOatCggR555BGlpqZKkkaMGMFj5wAAwKO4dBnr+eefl4+Pj44fP6577rnHMX/QoEF6/vnnefwcbjH43WR3l1Buq59t5e4SAMDyXAo7n332mf75z3+qTp06TvPr16+vY8eOVUhhAAAAFcGly1jZ2dny9/cvMv+XX36R3W6/4aIAAAAqikthp127dlq6dKnjtc1mU35+vmbNmqWOHTtWWHEAAAA3yqXLWLNmzVKHDh20a9cuXblyRS+88IIOHTqks2fP6uuvv67oGgEAAFzm0pmdRo0aaf/+/XrwwQfVtWtXZWdnq3///vruu+9Ur169iq4RAADAZeU+s3P16lXFxcVp4cKFeu21125GTQAAABWm3Gd2fHx8dPDgQdlstptRDwAAQIVy6TLWk08+qUWLFlV0LQAAABXOpRuUr1y5ovfee09JSUlq3rx5kd/EmjNnToUUBwAAcKPKFXb+85//6M4779TBgwf1wAMPSJJ++OEHpzZc3gIAAJ6kXGGnfv36Sk1N1datWyVd+3mIv/3tbwoLC7spxQEAANyoct2zU/hXzT/55BNlZ2dXaEEAAAAVyaUblAsUDj8AAACeplxhx2azFbknh3t0AACAJyvXPTvGGA0bNszxY5+XL1/WH/7whyJPYyUmJlZchQAAADegXGFn6NChTq8ff/zxCi0GAACgopUr7CQkJNysOgAAAG6KG7pBGQAAwNMRdgAAgKURdgAAgKURdgAAgKW5Nex8+eWX6t27tyIjI2Wz2bRu3Tqn5cYYTZ06VZGRkfLz81OHDh106NAhpzY5OTkaO3asatWqpYCAAPXp00cnT568hXsBAAA8mVvDTnZ2tpo2bap58+YVu3zmzJmaM2eO5s2bp507dyo8PFxdu3ZVVlaWo82ECRO0du1arV69Wtu3b9eFCxfUq1cv5eXl3ardAAAAHqxcj55XtB49eqhHjx7FLjPGaO7cuXrllVfUv39/SdKSJUsUFhamlStXauTIkcrIyNCiRYu0bNkydenSRZK0fPlyRUVFafPmzerWrdst2xcAAOCZPPaenZSUFKWlpSkuLs4xz263q3379tqxY4ckaffu3bp69apTm8jISMXGxjraFCcnJ0eZmZlOEwAAsCaPDTtpaWmSpLCwMKf5YWFhjmVpaWny9fVVjRo1SmxTnPj4eAUHBzumqKioCq4eAAB4Co8NOwUK/9CoMabMHx8tq82UKVOUkZHhmE6cOFEhtQIAAM/jsWEnPDxckoqcoUlPT3ec7QkPD9eVK1d07ty5EtsUx263KygoyGkCAADW5NYblEsTExOj8PBwJSUl6f7775ckXblyRdu2bdOMGTMkSc2aNZOPj4+SkpI0cOBASVJqaqoOHjyomTNnuq124HoNfjfZ3SUAgOW5NexcuHBBP/74o+N1SkqK9u7dq5CQENWtW1cTJkzQtGnTVL9+fdWvX1/Tpk2Tv7+/hgwZIkkKDg7W8OHDNWnSJNWsWVMhISGaPHmyGjdu7Hg6CwAAVG1uDTu7du1Sx44dHa8nTpwoSRo6dKgWL16sF154QZcuXdKoUaN07tw5PfTQQ/rss88UGBjoWOfNN9+Ut7e3Bg4cqEuXLqlz585avHixvLy8bvn+AAAAz2Mzxhh3F+FumZmZCg4OVkZGBvfvVGJcEoKVrH62lbtLADze9f799tgblAEAACoCYQcAAFgaYQcAAFgaYQcAAFiax37PDgCgcqmMDwlwI3jVwJkdAABgaYQdAABgaVzGAgAPVBkvCQGeijM7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0jw67EydOlU2m81pCg8Pdyw3xmjq1KmKjIyUn5+fOnTooEOHDrmxYgAA4Gk8OuxI0r333qvU1FTHdODAAceymTNnas6cOZo3b5527typ8PBwde3aVVlZWW6sGAAAeBJvdxdQFm9vb6ezOQWMMZo7d65eeeUV9e/fX5K0ZMkShYWFaeXKlRo5cuStLtVSBr+b7O4SAACoEB5/ZufIkSOKjIxUTEyMBg8erP/85z+SpJSUFKWlpSkuLs7R1m63q3379tqxY0epfebk5CgzM9NpAgAA1uTRYeehhx7S0qVL9c9//lN///vflZaWptatW+vMmTNKS0uTJIWFhTmtExYW5lhWkvj4eAUHBzumqKiom7YPAADAvTw67PTo0UMDBgxQ48aN1aVLF23cuFHStctVBWw2m9M6xpgi8wqbMmWKMjIyHNOJEycqvngAAOARPDrsFBYQEKDGjRvryJEjjvt4Cp/FSU9PL3K2pzC73a6goCCnCQAAWFOlCjs5OTn697//rYiICMXExCg8PFxJSUmO5VeuXNG2bdvUunVrN1YJAAA8iUc/jTV58mT17t1bdevWVXp6ul5//XVlZmZq6NChstlsmjBhgqZNm6b69eurfv36mjZtmvz9/TVkyBB3lw4AADyER4edkydP6ne/+51++eUX1a5dWy1bttQ333yj6OhoSdILL7ygS5cuadSoUTp37pweeughffbZZwoMDHRz5QAAwFPYjDHG3UW4W2ZmpoKDg5WRkcH9O/8/vmcHQFWw+tlW7i4BN+B6/35Xqnt2AAAAyouwAwAALI2wAwAALI2wAwAALI2wAwAALI2wAwAALI2wAwAALI2wAwAALI2wAwAALI2wAwAALI2wAwAALI2wAwAALI2wAwAALI2wAwAALI2wAwAALI2wAwAALI2wAwAALI2wAwAALI2wAwAALI2wAwAALI2wAwAALI2wAwAALI2wAwAALM3b3QUAAOAug99NdncJ5bb62VbuLqHS4cwOAACwNMIOAACwNMIOAACwNMIOAACwNMIOAACwNMIOAACwNMIOAACwNMIOAACwNMIOAACwNMIOAACwNMIOAACwNMIOAACwNMIOAACwNMIOAACwNMIOAACwNMIOAACwNMIOAACwNG93F2B1g99NdncJAABUaZzZAQAAlkbYAQAAlkbYAQAAlkbYAQAAlkbYAQAAlkbYAQAAlkbYAQAAlkbYAQAAlkbYAQAAlkbYAQAAlkbYAQAAlkbYAQAAlkbYAQAAlkbYAQAAlubt7gIAAMD1G/xusrtLKLfVz7Zy6/Y5swMAACzNMmHnnXfeUUxMjKpXr65mzZrpq6++cndJAADAA1gi7KxZs0YTJkzQK6+8ou+++04PP/ywevTooePHj7u7NAAA4GaWCDtz5szR8OHDNWLECN1zzz2aO3euoqKiNH/+fHeXBgAA3KzSh50rV65o9+7diouLc5ofFxenHTt2uKkqAADgKSr901i//PKL8vLyFBYW5jQ/LCxMaWlpxa6Tk5OjnJwcx+uMjAxJUmZmZoXXd/VSdoX3CQBAZXIz/r7+tl9jTKntKn3YKWCz2ZxeG2OKzCsQHx+v1157rcj8qKiom1IbAABVWeKEm9t/VlaWgoODS1xe6cNOrVq15OXlVeQsTnp6epGzPQWmTJmiiRMnOl7n5+fr7NmzqlmzZokBydNlZmYqKipKJ06cUFBQkLvLcRvG4VeMxTWMwzWMw68Yi2usMA7GGGVlZSkyMrLUdpU+7Pj6+qpZs2ZKSkpSv379HPOTkpLUt2/fYtex2+2y2+1O826//fabWeYtExQUVGkP2orEOPyKsbiGcbiGcfgVY3FNZR+H0s7oFKj0YUeSJk6cqCeeeELNmzdXq1at9O677+r48eP6wx/+4O7SAACAm1ki7AwaNEhnzpzRn//8Z6Wmpio2NlabNm1SdHS0u0sDAABuZomwI0mjRo3SqFGj3F2G29jtdr366qtFLs9VNYzDrxiLaxiHaxiHXzEW11SlcbCZsp7XAgAAqMQq/ZcKAgAAlIawAwAALI2wAwAALI2wAwAALI2w42Hi4+PVokULBQYGKjQ0VI8++qgOHz7s1MYYo6lTpyoyMlJ+fn7q0KGDDh06VGbf//jHP9SoUSPZ7XY1atRIa9euvVm7USHKGourV6/qxRdfVOPGjRUQEKDIyEg9+eSTOnXqVKn9Ll68WDabrch0+fLlm71LLrmeY2LYsGFF9qdly5Zl9l2ZjonrGYfi3lebzaZZs2aV2G9lOx4kaf78+WrSpInjy+BatWqlTz75xLG8qnxGlDYOVeXzQSr7eKgKnw9lIex4mG3btmn06NH65ptvlJSUpNzcXMXFxSk7+9cfFJ05c6bmzJmjefPmaefOnQoPD1fXrl2VlZVVYr/JyckaNGiQnnjiCe3bt09PPPGEBg4cqH/961+3YrdcUtZYXLx4UXv27NEf//hH7dmzR4mJifrhhx/Up0+fMvsOCgpSamqq01S9evWbvUsuuZ5jQpK6d+/utD+bNm0qtd/KdkxczzgUfk/ff/992Ww2DRgwoNS+K9PxIEl16tTR9OnTtWvXLu3atUudOnVS3759HYGmqnxGlDYOVeXzQSr7eJCs//lQJgOPlp6ebiSZbdu2GWOMyc/PN+Hh4Wb69OmONpcvXzbBwcFmwYIFJfYzcOBA0717d6d53bp1M4MHD745hd8EhceiON9++62RZI4dO1Zim4SEBBMcHHwTKrw1ihuHoUOHmr59+5arn8p+TFzP8dC3b1/TqVOnUvup7MdDgRo1apj33nuvSn9GGPPrOBSnKnw+FPjtOFTFz4fCOLPj4TIyMiRJISEhkqSUlBSlpaUpLi7O0cZut6t9+/basWNHif0kJyc7rSNJ3bp1K3UdT1N4LEpqY7PZyvytswsXLig6Olp16tRRr1699N1331VkqTdVSePwxRdfKDQ0VA0aNNAzzzyj9PT0Uvup7MdEWcfDzz//rI0bN2r48OFl9lWZj4e8vDytXr1a2dnZatWqVZX9jCg8DsWpCp8PJY1DVft8KIyw48GMMZo4caLatm2r2NhYSXL8unvhX3QPCwsr8svvv5WWllbudTxJcWNR2OXLl/XSSy9pyJAhpf6o3d13363Fixdrw4YNWrVqlapXr642bdroyJEjN6v8ClPSOPTo0UMrVqzQli1bNHv2bO3cuVOdOnVSTk5OiX1V5mPieo6HJUuWKDAwUP379y+1r8p6PBw4cEC33Xab7Ha7/vCHP2jt2rVq1KhRlfuMKGkcCrP650Np41DVPh+K5d4TSyjNqFGjTHR0tDlx4oRj3tdff20kmVOnTjm1HTFihOnWrVuJffn4+JiVK1c6zVu+fLmx2+0VW/RNUtxY/NaVK1dM3759zf33328yMjLK1XdeXp5p2rSpGTt2bEWUelOVNQ4FTp06ZXx8fMw//vGPEttU5mPiesahYcOGZsyYMeXuu7IcDzk5OebIkSNm586d5qWXXjK1atUyhw4dqnKfESWNw29Vhc+H6xmHAlb/fCiOZX4by2rGjh2rDRs26Msvv1SdOnUc88PDwyVdS90RERGO+enp6UVS+G+Fh4cXSeRlreMpShqLAlevXtXAgQOVkpKiLVu2lPp/bcWpVq2aWrRo4fH/51bWOPxWRESEoqOjS92nynpMXM84fPXVVzp8+LDWrFlT7v4ry/Hg6+uru+66S5LUvHlz7dy5U2+99ZZefPFFSVXnM6KkcVi4cKGkqvP5UNY4/JaVPx9KwmUsD2OM0ZgxY5SYmKgtW7YoJibGaXlMTIzCw8OVlJTkmHflyhVt27ZNrVu3LrHfVq1aOa0jSZ999lmp67hbWWMh/fpBduTIEW3evFk1a9Z0aTt79+51+sPgSa5nHAo7c+aMTpw4Ueo+VbZjojzjsGjRIjVr1kxNmzZ1aTuefDyUxBijnJycKvUZUZyCcZCqxudDSX47DoVZ8fOhTO46pYTiPffccyY4ONh88cUXJjU11TFdvHjR0Wb69OkmODjYJCYmmgMHDpjf/e53JiIiwmRmZjraPPHEE+all15yvP7666+Nl5eXmT59uvn3v/9tpk+fbry9vc0333xzS/evPMoai6tXr5o+ffqYOnXqmL179zq1ycnJcfRTeCymTp1qPv30U/PTTz+Z7777zjz11FPG29vb/Otf/7rl+3g9yhqHrKwsM2nSJLNjxw6TkpJitm7dalq1amXuuOMOSx0T1/NvwxhjMjIyjL+/v5k/f36x/VT248EYY6ZMmWK+/PJLk5KSYvbv329efvllU61aNfPZZ58ZY6rOZ0Rp41BVPh+MKX0cqsrnQ1kIOx5GUrFTQkKCo01+fr559dVXTXh4uLHb7aZdu3bmwIEDTv20b9/eDB061Gnehx9+aBo2bGh8fHzM3XffXer1Wk9Q1likpKSU2Gbr1q2OfgqPxYQJE0zdunWNr6+vqV27tomLizM7duy4tTtXDmWNw8WLF01cXJypXbu28fHxMXXr1jVDhw41x48fd+qnsh8T1/NvwxhjFi5caPz8/Mz58+eL7aeyHw/GGPP000+b6OhoR82dO3d2BB1jqs5nRGnjUFU+H4wpfRyqyudDWWzGGHNzzx0BAAC4D/fsAAAASyPsAAAASyPsAAAASyPsAAAASyPsAAAASyPsAAAASyPsAAAASyPsAAAASyPsAKi0duzYIS8vL3Xv3t3dpQDwYHyDMoBKa8SIEbrtttv03nvv6fvvv1fdunXdXRIAD8SZHQCVUnZ2tj744AM999xz6tWrlxYvXuy0fMOGDapfv778/PzUsWNHLVmyRDabTefPn3e02bFjh9q1ayc/Pz9FRUVp3Lhxys7OvrU7AuCmI+wAqJTWrFmjhg0bqmHDhnr88ceVkJCgghPVR48e1WOPPaZHH31Ue/fu1ciRI/XKK684rX/gwAF169ZN/fv31/79+7VmzRpt375dY8aMccfuALiJuIwFoFJq06aNBg4cqPHjxys3N1cRERFatWqVunTpopdeekkbN27UgQMHHO3/3//7f/rrX/+qc+fO6fbbb9eTTz4pPz8/LVy40NFm+/btat++vbKzs1W9enV37BaAm4AzOwAqncOHD+vbb7/V4MGDJUne3t4aNGiQ3n//fcfyFi1aOK3z4IMPOr3evXu3Fi9erNtuu80xdevWTfn5+UpJSbk1OwLglvB2dwEAUF6LFi1Sbm6u7rjjDsc8Y4x8fHx07tw5GWNks9mc1il8Ejs/P18jR47UuHHjivTPjc6AtRB2AFQqubm5Wrp0qWbPnq24uDinZQMGDNCKFSt09913a9OmTU7Ldu3a5fT6gQce0KFDh3TXXXfd9JoBuBf37ACoVNatW6dBgwYpPT1dwcHBTsteeeUVbdq0SYmJiWrYsKGef/55DR8+XHv37tWkSZN08uRJnT9/XsHBwdq/f79atmypp556Ss8884wCAgL073//W0lJSXr77bfdtHcAbgbu2QFQqSxatEhdunQpEnSka2d29u7dq3Pnzumjjz5SYmKimjRpovnz5zuexrLb7ZKkJk2aaNu2bTpy5Igefvhh3X///frjH/+oiIiIW7o/AG4+zuwAqBL++te/asGCBTpx4oS7SwFwi3HPDgBLeuedd9SiRQvVrFlTX3/9tWbNmsV36ABVFGEHgCUdOXJEr7/+us6ePau6detq0qRJmjJlirvLAuAGXMYCAACWxg3KAADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0v4/pY7duEqXpgEAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# your code here\n", + "# your code here\n", + "df_pop2 = pd.read_csv(\"../data/ages_population2.csv\")\n", + "\n", + "#display(df_pop2.shape)\n", + "#display(df_pop2.head(5))\n", + "\n", + "df_popsorted2 = df_pop2.sort_values(by=\"observation\", inplace=False)\n", + "\n", + "df_popsorted2 = df_popsorted2.reset_index(drop=True)\n", + "\n", + "ax = df_popsorted2['observation'].plot.hist(bins=10, alpha=0.75, title='Frequency Distribution of Age')\n", + "\n", + "# Set the labels\n", + "ax.set_xlabel('Age')\n", + "ax.set_ylabel('Frequency')\n", + "\n", + "# Display the plot\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 4.- What do you see? Is there any difference with the frequency distribution in step 1?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "\"\"\"\n", + "Yes, the starting age is higher, the oldest age is lower. The average age in this sample is also younger at roughly 27.5\n", + "The range before was close to 80 and now its closer to 15. So the standard deviation should also be much lower in absolute terms\n", + "\"\"\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 5.- Calculate the mean and standard deviation. Compare the results with the mean and standard deviation in step 2. What do you think?" + ] + }, + { + "cell_type": "code", + "execution_count": 103, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "27.155\n", + "2.969813932689186\n" + ] + } + ], + "source": [ + "# your code here\n", + "print(df_pop2['observation'].mean())\n", + "print(df_pop2['observation'].std())\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "\"\"\"\n", + "As expected.\n", + "\"\"\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Challenge 5\n", + "Now is the turn of `ages_population3.csv`.\n", + "\n", + "#### 1.- Read the file `ages_population3.csv`. Calculate the frequency distribution and plot it." + ] + }, + { + "cell_type": "code", + "execution_count": 104, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkAAAAHFCAYAAAAaD0bAAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA9ZUlEQVR4nO3deVRV9f7/8deJ4SgEJCJTKpKplag5VE6l5IhmpQ3SJOaQNy015VeZt6t2LSzTrLyp3RQ1NW1Qs7QBx/JqN+cB7zIsnArEHAAxUeHz+6PF+XYEJzx44OznY629FvuzP3vv9+ccjFefvfc5NmOMEQAAgIVc4+4CAAAArjYCEAAAsBwCEAAAsBwCEAAAsBwCEAAAsBwCEAAAsBwCEAAAsBwCEAAAsBwCEAAAsBwCECxr5syZstlsJS6JiYnuLs+jnPtaV6pUSeHh4YqNjVVSUpKysrKK7TN69GjZbLbLOs/Jkyc1evRorV69+rL2K+lctWrV0j333HNZx7mYefPmadKkSSVus9lsGj16tEvP52orVqxQs2bN5O/vL5vNpsWLF190nx07dshms8nHx0cZGRllXyRwibzdXQDgbsnJybrpppuc2iIjI91UjWcreq3PnDmjrKwsrV27Vq+//rrefPNNLViwQO3bt3f07devnzp37nxZxz958qTGjBkjSWrbtu0l71eac5XGvHnztHPnTg0dOrTYtvXr16t69eplXkNpGWP08MMPq27dulqyZIn8/f1Vr169i+73wQcfSJLOnj2r2bNn64UXXijrUoFLQgCC5cXExKhZs2aX1PfMmTOy2Wzy9uafTmmc+1o/8MADeu6559S6dWv16NFDaWlpCgsLkyRVr169zAPByZMn5efnd1XOdTHNmzd36/kv5rffftPRo0fVvXt3tWvX7pL2yc/P19y5c9WoUSP9/vvvmjFjBgEI5QaXwIDzWL16tWw2mz788EMNHz5c119/vex2u/bs2SNJWr58udq1a6fAwED5+fmpVatWWrFiRbHjLF26VLfeeqvsdruio6P15ptvFrvksnfvXtlsNs2cObPY/iVdGklLS9Ojjz6q0NBQ2e123XzzzfrXv/5VYv0fffSRRo4cqcjISAUGBqp9+/bavXt3sfN8/fXXateunYKCguTn56ebb75ZSUlJkqQPP/xQNptN69evL7bfK6+8Ih8fH/32228XfU1LUrNmTU2YMEG5ubmaNm2ao72ky1IrV65U27ZtVbVqVVWuXFk1a9bUAw88oJMnT2rv3r2qVq2aJGnMmDGOy229e/d2Ot7mzZv14IMPqkqVKqpdu/Z5z1Vk0aJFatiwoSpVqqQbbrhB77zzjtP2ost7e/fudWovev2LLse1bdtWS5cu1b59+5wuBxYp6X3euXOn7rvvPlWpUkWVKlXSrbfeqlmzZpV4nkt9n0uydu1atWvXTgEBAfLz81PLli21dOlSx/bRo0c7AuILL7wgm82mWrVqXfS4ixcv1pEjR9SvXz8lJCTop59+0tq1a4v1y8/P1/DhwxUeHi4/Pz/ddddd2rRpk2rVquV4/4pkZmZqwIABql69unx9fRUdHa0xY8bo7NmzlzRWoAgBCJZXUFCgs2fPOi1/NWLECO3fv19Tp07VF198odDQUM2ZM0cdO3ZUYGCgZs2apY8//ljBwcHq1KmTUwhasWKF7rvvPgUEBGj+/PkaP368Pv74YyUnJ5e63l27dum2227Tzp07NWHCBH355Zfq2rWrBg8e7Lj881cvvfSS9u3bpw8++EDvv/++0tLS1K1bNxUUFDj6TJ8+XV26dFFhYaFjnIMHD9bBgwclST179lR4eHixkHX27FlNmzZN3bt3v6LLhl26dJGXl5e+++678/bZu3evunbtKl9fX82YMUNff/21xo0bJ39/f50+fVoRERH6+uuvJUl9+/bV+vXrtX79er388stOx+nRo4duvPFGffLJJ5o6deoF69q6dauGDh2q5557TosWLVLLli01ZMgQvfnmm5c9xvfee0+tWrVSeHi4o7aSAmWR3bt3q2XLlkpNTdU777yjhQsX6pZbblHv3r31xhtvFOt/Ke9zSdasWaO7775b2dnZmj59uj766CMFBASoW7duWrBggaQ/LxEuXLhQkvTss89q/fr1WrRo0UXHPH36dNntdj322GPq06ePbDabpk+fXqzfk08+qUmTJunJJ5/U559/rgceeEDdu3fX8ePHnfplZmbq9ttv1zfffKN//OMf+uqrr9S3b18lJSWpf//+F60HcGIAi0pOTjaSSlzOnDljVq1aZSSZu+66y2m/vLw8ExwcbLp16+bUXlBQYBo1amRuv/12R9sdd9xhIiMjzR9//OFoy8nJMcHBweav//zS09ONJJOcnFysTklm1KhRjvVOnTqZ6tWrm+zsbKd+zzzzjKlUqZI5evSoMcY46u/SpYtTv48//thIMuvXrzfGGJObm2sCAwNN69atTWFh4Xlfr1GjRhlfX19z6NAhR9uCBQuMJLNmzZrz7mfM/73WGzZsOG+fsLAwc/PNNzud76+v0aeffmokma1bt573GIcPHy72ep17vH/84x/n3fZXUVFRxmazFTtfhw4dTGBgoMnLy3MaW3p6ulO/otd/1apVjrauXbuaqKioEms/t+74+Hhjt9vN/v37nfrFxcUZPz8/c/z4cafzXOx9Pp/mzZub0NBQk5ub62g7e/asiYmJMdWrV3f8ThT9jo4fP/6Cxyuyd+9ec80115j4+HhHW5s2bYy/v7/JyclxtKWmphpJ5oUXXnDa/6OPPjKSTEJCgqNtwIAB5tprrzX79u1z6vvmm28aSSY1NfWSagOMMYYZIFje7NmztWHDBqflr/f4PPDAA079161bp6NHjyohIcFp1qiwsFCdO3fWhg0blJeXp7y8PG3YsEE9evRQpUqVHPsX/d91aZw6dUorVqxQ9+7d5efn53T+Ll266NSpU/rhhx+c9rn33nud1hs2bChJ2rdvn2M8OTk5Gjhw4AWfunr66aclSf/+978dbZMnT1aDBg101113lWo8f2WMueD2W2+9Vb6+vnrqqac0a9Ys/fLLL6U6z7nv54XUr19fjRo1cmp79NFHlZOTo82bN5fq/Jdq5cqVateunWrUqOHU3rt3b508ebLY7NHF3ueS5OXl6b///a8efPBBXXvttY52Ly8vPfHEEzp48OAlX0Y7V3JysgoLC9WnTx9HW58+fZSXl+eYWZL+nIGSpIcffthp/wcffLDYvXZffvmlYmNjFRkZ6fS7HxcX53Qs4FIQgGB5N998s5o1a+a0/FVERITT+qFDhyT9+R9oHx8fp+X111+XMUZHjx7VsWPHVFhYqPDw8GLnLKntUhw5ckRnz57Vu+++W+zcXbp0kST9/vvvTvtUrVrVad1ut0uS/vjjD0nS4cOHJemiNwGHhYWpZ8+emjZtmgoKCrR9+3Z9//33euaZZ0o1lr/Ky8vTkSNHLngZrXbt2lq+fLlCQ0M1aNAg1a5dW7Vr19bbb799Wec69/28kAu9d0eOHLms816uI0eOlFhr0Wt07vkv9j6X5NixYzLGXNZ5LkVhYaFmzpypyMhINW3aVMePH9fx48fVvn17+fv7O10GKzp+0c3vRby9vYuN6dChQ/riiy+K/e7Xr19fUvHffeBCeJQFuIhzZ0VCQkIkSe++++55n9wJCwtzPDGWmZlZbPu5bUUzRPn5+U7t5/7xqVKliuP/zgcNGlTiuaOjoy8wmuKKbhwuut/nQoYMGaIPP/xQn3/+ub7++mtdd911euyxxy7rfCVZunSpCgoKLvro+p133qk777xTBQUF2rhxo959910NHTpUYWFhio+Pv6RzXc5nC13ovSv643y+9+5K/xhXrVq1xM/NKbrZvOj38EpUqVJF11xzjcvPs3z5csfM07khRpJ++OEH7dq1S7fccotj+6FDh3T99dc7+pw9e7bY739ISIgaNmyoV199tcTz8vEVuBwEIOAytWrVStddd5127dp1wdkPX19f3X777Vq4cKHGjx/v+EOZm5urL774wqlvWFiYKlWqpO3btzu1f/75507rfn5+io2N1ZYtW9SwYUP5+vpe8XhatmypoKAgTZ06VfHx8RcMCE2bNlXLli31+uuva+fOnXrqqafk7+9/Reffv3+/EhMTFRQUpAEDBlzSPl5eXrrjjjt00003ae7cudq8ebPi4+MvadbjcqSmpmrbtm1Ol8HmzZungIAANWnSRJIcT0Nt377d6XNxlixZUux4drv9kmtr166dFi1apN9++83pD/vs2bPl5+fnksfm/f39dccdd2jhwoV68803VblyZUl/zuDMmTNH1atXV926dS/7uNOnT9c111yjhQsXKigoyGnbwYMH9cQTT2jGjBl68803HZdPFyxY4HhNJenTTz8t9kDCPffco2XLlql27dqqUqXKZdcF/BUBCLhM1157rd59910lJCTo6NGjevDBBxUaGqrDhw9r27ZtOnz4sKZMmSJJ+uc//6nOnTurQ4cOGj58uAoKCvT666/L399fR48edRzTZrPp8ccf14wZM1S7dm01atRIP/74o+bNm1fs/G+//bZat26tO++8U08//bRq1aql3Nxc7dmzR1988YVWrlx52eOZMGGC+vXrp/bt26t///4KCwvTnj17tG3bNk2ePNmp/5AhQ9SzZ0/ZbDYNHDjwss61c+dOx30bWVlZ+v7775WcnCwvLy8tWrTIMRtVkqlTp2rlypXq2rWratasqVOnTmnGjBmS5PgAxYCAAEVFRenzzz9Xu3btFBwcrJCQkEt6ZLskkZGRuvfeezV69GhFRERozpw5SklJ0euvvy4/Pz9J0m233aZ69eopMTFRZ8+eVZUqVbRo0aISH/du0KCBFi5cqClTpqhp06a65pprzvsZVKNGjXLc8/KPf/xDwcHBmjt3rpYuXao33nijWLAoraSkJHXo0EGxsbFKTEyUr6+v3nvvPe3cuVMfffTRZX8a95EjR/T555+rU6dOuu+++0rs89Zbb2n27NlKSkpS/fr19cgjj2jChAny8vLS3XffrdTUVE2YMEFBQUG65pr/u1PjlVdeUUpKilq2bKnBgwerXr16OnXqlPbu3atly5Zp6tSpbv88J1Qgbr4JG3Cbiz2ZVPR0zSeffFLi9jVr1piuXbua4OBg4+PjY66//nrTtWvXYv2XLFliGjZsaHx9fU3NmjXNuHHjSnzqKDs72/Tr18+EhYUZf39/061bN7N3794Sn2pKT083ffr0Mddff73x8fEx1apVMy1btjRjx469aP3ne+Js2bJljqd0/Pz8zC233GJef/31YuPOz883drvddO7cucTXpSTnPnHn6+trQkNDTZs2bcxrr71msrKyiu1z7mu0fv160717dxMVFWXsdrupWrWqadOmjVmyZInTfsuXLzeNGzc2drvd6SmiouMdPnz4oucy5s+nwLp27Wo+/fRTU79+fePr62tq1aplJk6cWGz/n376yXTs2NEEBgaaatWqmWeffdYsXbq02FNgR48eNQ8++KC57rrrjM1mczpnSe/zjh07TLdu3UxQUJDx9fU1jRo1Kva+Xe77XJLvv//e3H333cbf399UrlzZNG/e3HzxxRclHu9iT4FNmjTJSDKLFy8+b5+pU6caSeazzz4zxhhz6tQpM2zYMBMaGmoqVapkmjdvbtavX2+CgoLMc88957Tv4cOHzeDBg010dLTx8fExwcHBpmnTpmbkyJHmxIkTFx0rUMRmzEUevQDgcqNHj9aYMWMu+uRTefTFF1/o3nvv1dKlSx03XgOutm7dOrVq1Upz587Vo48+6u5y4IG4BAbgkuzatUv79u3T8OHDdeuttzoePQauVEpKitavX6+mTZuqcuXK2rZtm8aNG6c6deqoR48e7i4PHooABOCSDBw4UP/5z3/UpEkTzZo167LvDQHOJzAwUN9++60mTZqk3NxchYSEKC4uTklJSU6foQW4EpfA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GKP8/HyPG2u7du20Y8cObd261bE0a9ZMjz32mLZu3aobbrjBo8b7V/n5+frf//6niIgIj3tfJalVq1bFPq7ip59+UlRUlCTP/HebnJys0NBQde3a1dHmaeM8efKkrrnGOZp4eXk5HoN36XhLd582ihQ9Bj99+nSza9cuM3ToUOPv72/27t3r7tKuWG5urtmyZYvZsmWLkWQmTpxotmzZ4njEf9y4cSYoKMgsXLjQ7NixwzzyyCMV8tHLp59+2gQFBZnVq1c7PWp68uRJRx9PGasxxowYMcJ89913Jj093Wzfvt289NJL5pprrjHffvutMcazxlqSvz4FZoznjHf48OFm9erV5pdffjE//PCDueeee0xAQIDjv0WeMs4iP/74o/H29javvvqqSUtLM3PnzjV+fn5mzpw5jj6eNOaCggJTs2ZN88ILLxTb5knjTEhIMNdff73jMfiFCxeakJAQ8/zzzzv6uGq8BCAX+Ne//mWioqKMr6+vadKkiePx6Ypu1apVRlKxJSEhwRjz5+OIo0aNMuHh4cZut5u77rrL7Nixw71Fl0JJY5RkkpOTHX08ZazGGNOnTx/H72u1atVMu3btHOHHGM8aa0nODUCeMt6iz0Lx8fExkZGRpkePHiY1NdWx3VPG+VdffPGFiYmJMXa73dx0003m/fffd9ruSWP+5ptvjCSze/fuYts8aZw5OTlmyJAhpmbNmqZSpUrmhhtuMCNHjjT5+fmOPq4ar80YY0ozTQUAAFBRcQ8QAACwHAIQAACwHAIQAACwHAIQAACwHAIQAACwHAIQAACwHAIQAACwHAIQAACwHAIQgApr3bp18vLyUufOnd1dCoAKhk+CBlBh9evXT9dee60++OAD7dq1SzVr1nR3SQAqCGaAAFRIeXl5+vjjj/X000/rnnvu0cyZM522L1myRHXq1FHlypUVGxurWbNmyWaz6fjx444+69at01133aXKlSurRo0aGjx4sPLy8q7uQAC4BQEIQIW0YMEC1atXT/Xq1dPjjz+u5ORkFU1o7927Vw8++KDuv/9+bd26VQMGDNDIkSOd9t+xY4c6deqkHj16aPv27VqwYIHWrl2rZ555xh3DAXCVcQkMQIXUqlUrPfzwwxoyZIjOnj2riIgIffTRR2rfvr1efPFFLV26VDt27HD0//vf/65XX31Vx44d03XXXadevXqpcuXKmjZtmqPP2rVr1aZNG+Xl5alSpUruGBaAq4QZIAAVzu7du/Xjjz8qPj5ekuTt7a2ePXtqxowZju233Xab0z6333670/qmTZs0c+ZMXXvttY6lU6dOKiwsVHp6+tUZCAC38XZ3AQBwuaZPn66zZ8/q+uuvd7QZY+Tj46Njx47JGCObzea0z7mT3YWFhRowYIAGDx5c7PjcTA14PgIQgArl7Nmzmj17tiZMmKCOHTs6bXvggQc0d+5c3XTTTVq2bJnTto0bNzqtN2nSRKmpqbrxxhvLvGYA5Q/3AAGoUBYvXqyePXsqKytLQUFBTttGjhypZcuWaeHChapXr56ee+459e3bV1u3btXw4cN18OBBHT9+XEFBQdq+fbuaN2+uJ598Uv3795e/v7/+97//KSUlRe+++66bRgfgauEeIAAVyvTp09W+ffti4Uf6cwZo69atOnbsmD799FMtXLhQDRs21JQpUxxPgdntdklSw4YNtWbNGqWlpenOO+9U48aN9fLLLysiIuKqjgeAezADBMASXn31VU2dOlUHDhxwdykAygHuAQLgkd577z3ddtttqlq1qv7zn/9o/PjxfMYPAAcCEACPlJaWprFjx+ro0aOqWbOmhg8frhEjRri7LADlBJfAAACA5XATNAAAsBwCEAAAsBwCEAAAsBwCEAAAsBwCEAAAsBwCEAAAsBwCEAAAsBwCEAAAsBwCEAAAsJz/Dxoybb80pKenAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# your code here\n", + "# your code here\n", + "df_pop3 = pd.read_csv(\"../data/ages_population3.csv\")\n", + "\n", + "#display(df_pop2.shape)\n", + "#display(df_pop2.head(5))\n", + "\n", + "df_popsorted3 = df_pop3.sort_values(by=\"observation\", inplace=False)\n", + "\n", + "df_popsorted3 = df_popsorted3.reset_index(drop=True)\n", + "\n", + "ax = df_popsorted3['observation'].plot.hist(bins=10, alpha=0.75, title='Frequency Distribution of Age')\n", + "\n", + "# Set the labels\n", + "ax.set_xlabel('Age')\n", + "ax.set_ylabel('Frequency')\n", + "\n", + "# Display the plot\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 2.- Calculate the mean and standard deviation. Compare the results with the plot in step 1. What is happening?" + ] + }, + { + "cell_type": "code", + "execution_count": 106, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "41.989\n", + "16.144705959865934\n" + ] + } + ], + "source": [ + "# your code here\n", + "# your code here\n", + "print(df_pop3['observation'].mean())\n", + "print(df_pop3['observation'].std())" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "\"\"\"\n", + "Our data is a lot less uniform, we have a spike in 60-70 years olds. I would wonder if we have any data input errors \n", + "and some data cleaning to do :)\n", + "\n", + "\"\"\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 3.- Calculate the four quartiles. Use the results to explain your reasoning for question in step 2. How much of a difference is there between the median and the mean?" + ] + }, + { + "cell_type": "code", + "execution_count": 109, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1.0 30.0 40.0 53.0 77.0\n", + "1.9889999999999972\n" + ] + } + ], + "source": [ + "# your code here\n", + "\n", + "Q1 = df_pop3['observation'].quantile(0.25)\n", + "Q2 = df_pop3['observation'].quantile(0.50) #This is also the median\n", + "Q3 = df_pop3['observation'].quantile(0.75)\n", + "Q4 = df_pop3['observation'].max() \n", + "\n", + "min = df_pop3['observation'].min() \n", + "\n", + "print(min, Q1, Q2, Q3, Q4)\n", + "print(df_pop3['observation'].mean() - Q2)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "\"\"\"\n", + "Which question? I guess the \"What is happening?\" question above?\n", + "Well 25% of our 'observations are 30 or lower, 50% 40 or lower, 75% 53 or lower.\n", + "From this we can tell that the mean has a delta of roughly 2 because of the skewed nature of the distribution, it is non-uniform\n", + "We also know it is skewed to the older ages as opposed to the younger ones.\n", + "\"\"\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 4.- Calculate other percentiles that might be useful to give more arguments to your reasoning." + ] + }, + { + "cell_type": "code", + "execution_count": 111, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "13.0 30.0\n" + ] + } + ], + "source": [ + "# your code here\n", + "print(Q3-Q2, Q1)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "\"\"\"\n", + "I don't think its neceassary to calculate other percentiles, we can see that the tail end of the data is more sparse with\n", + "the above calculation. where as Q1 (25% of the data has included ages up till 30. A range of 30 years. the 25% between Q3 and Q2 have a range\n", + "of only 13, which is less than half. So we are looking at a skewed distribution with a spike around the age of 65 (potentially a data \n", + "cleaning error), as we wouldn't expect this in a large enough sample size. Especially if all 3 pop samples are taken from the same population\n", + "We can deduce from Q3 alone that 25% (1-0.75 if we want to be specific) of the observations are over 53. You could check the 90th quantile\n", + "to further confirm the skewness but it is also pretty clear in the histogram :).\n", + "\"\"\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Bonus challenge\n", + "Compare the information about the three neighbourhoods. Prepare a report about the three of them. Remember to find out which are their similarities and their differences backing your arguments in basic statistics." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# your code here" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "\"\"\"\n", + "your comments here\n", + "\"\"\"" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "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": 4 +} diff --git a/your-code/main.ipynb b/your-code/main.ipynb index 5759add..78d4c3f 100644 --- a/your-code/main.ipynb +++ b/your-code/main.ipynb @@ -1,522 +1,1137 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Understanding Descriptive Statistics\n", - "\n", - "Import the necessary libraries here:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# Libraries" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Challenge 1\n", - "#### 1.- Define a function that simulates rolling a dice 10 times. Save the information in a dataframe.\n", - "**Hint**: you can use the *choices* function from module *random* to help you with the simulation." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# your code here" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### 2.- Plot the results sorted by value." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# your code here" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### 3.- Calculate the frequency distribution and plot it. What is the relation between this plot and the plot above? Describe it with words." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# your code here" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "\"\"\"\n", - "your comments here\n", - "\"\"\"" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Challenge 2\n", - "Now, using the dice results obtained in *challenge 1*, your are going to define some functions that will help you calculate the mean of your data in two different ways, the median and the four quartiles. \n", - "\n", - "#### 1.- Define a function that computes the mean by summing all the observations and dividing by the total number of observations. You are not allowed to use any methods or functions that directly calculate the mean value. " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# your code here" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### 2.- First, calculate the frequency distribution. Then, calculate the mean using the values of the frequency distribution you've just computed. You are not allowed to use any methods or functions that directly calculate the mean value. " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# your code here" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### 3.- Define a function to calculate the median. You are not allowed to use any methods or functions that directly calculate the median value. \n", - "**Hint**: you might need to define two computation cases depending on the number of observations used to calculate the median." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# your code here" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### 4.- Define a function to calculate the four quartiles. You can use the function you defined above to compute the median but you are not allowed to use any methods or functions that directly calculate the quartiles. " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# your code here" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Challenge 3\n", - "Read the csv `roll_the_dice_hundred.csv` from the `data` folder.\n", - "#### 1.- Sort the values and plot them. What do you see?" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# your code here" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "\"\"\"\n", - "your comments here\n", - "\"\"\"" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### 2.- Using the functions you defined in *challenge 2*, calculate the mean value of the hundred dice rolls." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# your code here" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### 3.- Now, calculate the frequency distribution.\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# your code here" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### 4.- Plot the histogram. What do you see (shape, values...) ? How can you connect the mean value to the histogram? " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# your code here" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "\"\"\"\n", - "your comments here\n", - "\"\"\"" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### 5.- Read the `roll_the_dice_thousand.csv` from the `data` folder. Plot the frequency distribution as you did before. Has anything changed? Why do you think it changed?" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# your code here" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "\"\"\"\n", - "your comments here\n", - "\"\"\"" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Challenge 4\n", - "In the `data` folder of this repository you will find three different files with the prefix `ages_population`. These files contain information about a poll answered by a thousand people regarding their age. Each file corresponds to the poll answers in different neighbourhoods of Barcelona.\n", - "\n", - "#### 1.- Read the file `ages_population.csv`. Calculate the frequency distribution and plot it as we did during the lesson. Try to guess the range in which the mean and the standard deviation will be by looking at the plot. " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# your code here" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### 2.- Calculate the exact mean and standard deviation and compare them with your guesses. Do they fall inside the ranges you guessed?" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# your code here" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "\"\"\"\n", - "your comments here\n", - "\"\"\"" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### 3.- Now read the file `ages_population2.csv` . Calculate the frequency distribution and plot it." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# your code here" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### 4.- What do you see? Is there any difference with the frequency distribution in step 1?" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "\"\"\"\n", - "your comments here\n", - "\"\"\"" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### 5.- Calculate the mean and standard deviation. Compare the results with the mean and standard deviation in step 2. What do you think?" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# your code here" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "\"\"\"\n", - "your comments here\n", - "\"\"\"" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Challenge 5\n", - "Now is the turn of `ages_population3.csv`.\n", - "\n", - "#### 1.- Read the file `ages_population3.csv`. Calculate the frequency distribution and plot it." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# your code here" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### 2.- Calculate the mean and standard deviation. Compare the results with the plot in step 1. What is happening?" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# your code here" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "\"\"\"\n", - "your comments here\n", - "\"\"\"" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### 3.- Calculate the four quartiles. Use the results to explain your reasoning for question in step 2. How much of a difference is there between the median and the mean?" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# your code here" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "\"\"\"\n", - "your comments here\n", - "\"\"\"" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### 4.- Calculate other percentiles that might be useful to give more arguments to your reasoning." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# your code here" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "\"\"\"\n", - "your comments here\n", - "\"\"\"" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Bonus challenge\n", - "Compare the information about the three neighbourhoods. Prepare a report about the three of them. Remember to find out which are their similarities and their differences backing your arguments in basic statistics." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# your code here" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "\"\"\"\n", - "your comments here\n", - "\"\"\"" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "ironhack-3.7", - "language": "python", - "name": "ironhack-3.7" - }, - "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.7.3" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Understanding Descriptive Statistics\n", + "\n", + "Import the necessary libraries here:" + ] + }, + { + "cell_type": "code", + "execution_count": 62, + "metadata": {}, + "outputs": [], + "source": [ + "# Libraries\n", + "import pandas as pd\n", + "import numpy as np\n", + "import random\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Challenge 1\n", + "#### 1.- Define a function that simulates rolling a dice 10 times. Save the information in a dataframe.\n", + "**Hint**: you can use the *choices* function from module *random* to help you with the simulation." + ] + }, + { + "cell_type": "code", + "execution_count": 63, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " result\n", + "0 5\n", + "1 5\n", + "2 3\n", + "3 6\n", + "4 4\n", + "5 3\n", + "6 3\n", + "7 5\n", + "8 5\n", + "9 2\n" + ] + } + ], + "source": [ + "# your code here\n", + "def dice_roll(num_rolls):\n", + " results = [] \n", + " for i in range(num_rolls): \n", + " roll = random.randint(1, 6) \n", + " results.append(roll) \n", + " return results\n", + "\n", + "rolls = dice_roll(10)\n", + "\n", + "df = pd.DataFrame({'result': rolls}) \n", + "\n", + "print(df)\n", + " " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 2.- Plot the results sorted by value." + ] + }, + { + "cell_type": "code", + "execution_count": 64, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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ADAK4QYAABiFcAMAAIxCuAEAAEYh3AAAAKMQbgAAgFFqFW66deumU6dOVWj/6quv1K1bt8suCgAAoLZqFW4+/vhjlZaWVmj3eDzKy8u77KIAAABqy78mnTMyMrz/vGnTJrlcLu9+aWmp/vnPf6pr1651VhwAAEBN1SjcjB07VpLkcDg0adIkn2MBAQHq2rWrFixYUGfFAQAA1FSNws2FCxckSdHR0dq1a5euuOKKeikKAACgtmoUbsqdOHGirusAAACoE9UON4sWLar2iz700EO1KgYAAOByOSzLsqrTMTo6unov6HDo+PHjl1VUfXK73XK5XCouLpbT6bS7HAAAUA01+fyu9pUbbkUBAICmgG8oBgAARqnVguJ77723yuMvvfRSrYoBAAC4XLUKN19++aXP/rlz53TgwAF99dVX+uEPf1gnhQEAANRGrW5LrVu3zmd74403dPz4cd11110aOHBgrQpJSUmRw+HQI488UmW/rKwsDRgwQEFBQerWrZuWLVtWq/MBaGDuo9JnGyT3MbsrAWC4Oltz06JFC82YMUO///3vazx2165dSk1NVZ8+farsd+LECSUlJemmm25STk6O5syZo4ceekjp6em1LRtAffOclrbeIr3RU9qWJL1xVdn+2S8vPRYAaqFOFxR/9NFHOn/+fI3GfP3115owYYKWL1+u9u3bV9l32bJl6ty5sxYuXKhevXrpvvvu07333qvnn3/+csoGUJ/e/alUsMW3rWCLtGO8PfUAMF6t1tzMnDnTZ9+yLOXn52v9+vUVfnPqUqZPn65Ro0Zp+PDheuqpp6rsm52drREjRvi0jRw5UitWrNC5c+cUEBBQYYzH45HH4/Huu93uGtUH4DK4j0r5myq2W6Vl7e5jkrNHw9cFwGi1Cjc5OTk++y1atFDHjh21YMGCSz5J9V1r1qzR+++/r127dlWrf0FBgcLCwnzawsLCdP78eRUVFSkiIqLCmJSUFM2bN6/aNQGoQ19/dInjHxJuANS5WoWbrVu3XvaJT548qYcfflibN29WUFBQtcc5HA6f/fIvWP5+e7nk5GSfK01ut1tRUVG1qBhAjbW98hLHuzdMHQCalVqFm2+//VaWZal169aSpE8++UTr1q1T7969K9w2qsyePXtUWFioAQMGeNtKS0u1fft2LV68WB6PR35+fj5jwsPDVVBQ4NNWWFgo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XVazdP78ef3qV79SdHS0WrVqpW7duunXv/61Lly4YHdpTRrhpg785S9/0SOPPKLHH39cOTk5uummm3TrrbcqNzfX7tKapaysLE2fPl07d+5UZmamzp8/rxEjRqikpMTu0pq9Xbt2KTU1VX369LG7lGbryy+/1KBBgxQQEKANGzbo4MGDWrBggdq1a2d3ac3SM888o2XLlmnx4sU6dOiQnn32WT333HP64x//aHdpTRqPgteB66+/Xv3799fSpUu9bb169dLYsWOVkpJiY2WQpC+++EKhoaHKysrS4MGD7S6n2fr666/Vv39//elPf9JTTz2lfv36aeHChXaX1ew89thj2rFjB1eXG4nbbrtNYWFhWrFihbdt3Lhxat26tV599VUbK2vauHJzmc6ePas9e/ZoxIgRPu0jRozQu+++a1NV+K7i4mJJUocOHWyupHmbPn26Ro0apeHDh9tdSrOWkZGh+Ph43XHHHQoNDVVcXJyWL19ud1nN1o033qh//vOfOnr0qCRp3759euedd5SUlGRzZU1bs/vhzLpWVFSk0tJShYWF+bSHhYWpoKDApqpQzrIszZw5UzfeeKNiY2PtLqfZWrNmjd5//33t2rXL7lKavePHj2vp0qWaOXOm5syZo/fee08PPfSQAgMDdc8999hdXrMze/ZsFRcX6+qrr5afn59KS0v19NNPa/z48XaX1qQRbuqIw+Hw2bcsq0IbGt4DDzygf/3rX3rnnXfsLqXZOnnypB5++GFt3rxZQUFBdpfT7F24cEHx8fGaP3++JCkuLk4ffPCBli5dSrixwV/+8hetWrVKr732mmJiYrR371498sgjioyM1KRJk+wur8ki3FymK664Qn5+fhWu0hQWFla4moOG9eCDDyojI0Pbt29Xp06d7C6n2dqzZ48KCws1YMAAb1tpaam2b9+uxYsXy+PxyM/Pz8YKm5eIiAj17t3bp61Xr15KT0+3qaLm7X/+53/02GOP6a677pIkXXPNNfrkk0+UkpJCuLkMrLm5TC1bttSAAQOUmZnp056ZmakbbrjBpqqaN8uy9MADD2jt2rV66623FB0dbXdJzVpiYqL279+vvXv3erf4+HhNmDBBe/fuJdg0sEGDBlX4aoSjR4+qS5cuNlXUvH3zzTdq0cL3o9jPz49HwS8TV27qwMyZMzVx4kTFx8crISFBqampys3N1dSpU+0urVmaPn26XnvtNb3++usKDg72XlVzuVxq1aqVzdU1P8HBwRXWO7Vp00YhISGsg7LBjBkzdMMNN2j+/Pm688479d577yk1NVWpqal2l9YsjR49Wk8//bQ6d+6smJgY5eTk6He/+53uvfdeu0tr2izUiSVLllhdunSxWrZsafXv39/Kysqyu6RmS9JFt5UrV9pdGv5tyJAh1sMPP2x3Gc3WP/7xDys2NtYKDAy0rr76ais1NdXukpott9ttPfzww1bnzp2toKAgq1u3btbjjz9ueTweu0tr0vieGwAAYBTW3AAAAKMQbgAAgFEINwAAwCiEGwAAYBTCDQAAMArhBgAAGIVwAwAAjEK4AdBoDB06VI888kitx3/88cdyOBzau3dvndUEoOnh5xcANBpr165VQECA3WUAaOIINwAajQ4dOthdAgADcFsKQKPx3dtSXbt21fz583XvvfcqODhYnTt3rvDjju+9957i4uIUFBSk+Ph45eTkVHjNgwcPKikpSW3btlVYWJgmTpyooqIiSdK2bdvUsmVLvf32297+CxYs0BVXXKH8/Pz6myiAekW4AdBoLViwwBtapk2bpl/84hc6fPiwJKmkpES33XabevbsqT179ujJJ5/UrFmzfMbn5+dryJAh6tevn3bv3q2NGzfq888/15133inpP2Fq4sSJKi4u1r59+/T4449r+fLlioiIaPD5Aqgb3JYC0GglJSVp2rRpkqTZs2fr97//vbZt26arr75af/7zn1VaWqqXXnpJrVu3VkxMjD799FP94he/8I5funSp+vfvr/nz53vbXnrpJUVFReno0aO66qqr9NRTT2nLli367//+b33wwQeaOHGifvSjHzX4XAHUHcINgEarT58+3n92OBwKDw9XYWGhJOnQoUPq27evWrdu7e2TkJDgM37Pnj3aunWr2rZtW+G1P/roI1111VVq2bKlVq1apT59+qhLly5auHBh/UwGQIMh3ABotL7/5JTD4dCFCxckSZZlXXL8hQsXNHr0aD3zzDMVjn33ttO7774rSTp9+rROnz6tNm3aXE7ZAGzGmhsATVLv3r21b98+ffvtt962nTt3+vTp37+/PvjgA3Xt2lXdu3f32coDzEcffaQZM2Zo+fLlGjhwoO655x5vgALQNBFuADRJP/3pT9WiRQv9/Oc/18GDB/Xmm2/q+eef9+kzffp0nT59WuPHj9d7772n48ePa/Pmzbr33ntVWlqq0tJSTZw4USNGjNDPfvYzrVy5UgcOHNCCBQtsmhWAukC4AdAktW3bVv/4xz908OBBxcXF6fHHH69w+ykyMlI7duxQaWmpRo4cqdjYWD388MNyuVxq0aKFnn76aX388cfeR8zDw8P14osv6le/+hXfcgw0YQ6rOjeuAQAAmgiu3AAAAKMQbgAAgFEINwAAwCiEGwAAYBTCDQAAMArhBgAAGIVwAwAAjEK4AQAARiHcAAAAoxBuAACAUQg3AADAKIQbAABglP8HvCTfEejGUt4AAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# your code here\n", + "df_sorted = df.sort_values(by=\"result\", inplace=False)\n", + "\n", + "# Reset the index \n", + "df_sorted = df_sorted.reset_index(drop=True)\n", + "\n", + "#plot using the reset index to have it sorted by value\n", + "graph = df_sorted.reset_index().plot.scatter(x='index', y='result', c='orange', title='Dice Roll Results')\n", + "\n", + "# Display the plot\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 3.- Calculate the frequency distribution and plot it. What is the relation between this plot and the plot above? Describe it with words." + ] + }, + { + "cell_type": "code", + "execution_count": 65, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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jRkzxun359fc+X1wZcuWLfL19ZWvr69atmypV199VS+88IIGDRrkaLNz504FBgbqzjvvdOpbdtnT1SXpylx//fVasWKFnnzySe3Zs0dFRUU16o/6h3CDeqVTp06Kj493ev1aZGSk03LZJaU777zT8Rdi2WvevHkyxujMmTP64YcfVFpaqoiIiHLHdLWuOk6fPq3i4mK98MIL5Y6dlJQkSTp16pRTn9DQUKflsssJP//8s6Rfrv1LqvKG2vDwcI0YMUKvvPKKSkpKdOjQIX3wwQd6+OGH3RrLrxUUFOj06dOVXtpq27at3n33XYWFhWnChAlq27at2rZtq+eff75Gx7p4PitT2dzV9eWD06dPu6y17D26+PhVzbMrP/zwg4wxNTpObTlx4oTsdruaNm3qcnt1fi7d+X1wpVevXtq7d6/27Nmj1atXq1WrVnr44Yf14YcfOh0rIiKi3H8AwsLC5OPjU+P3ad26dRo9erRee+01JSQkqGnTpho1apRycnJqtB/UH9xzA69y8V9mV155pSTphRdeqPDpjvDwcMeTVa7+srp4Xdn/TC++MfHivzCbNGni+F/1hAkTXB67devWlYymvLJ7Ur755psq206ePFmrV6/W22+/rW3btqlx48a6++67a3Q8VzZv3qySkpIqH9/u3bu3evfurZKSEu3bt08vvPCCpkyZovDwcI0cObJax6rJZ+dUNndlYaKiuavOP6qVCQ0NVXZ2drn1ZTdul/0cXoomTZqoQYMGdX6ci508eVL79+9X3759K7zfpjo/l7X1+xASEuL4T80NN9ygG264QV27dtX48eN18OBBNWjQQKGhofroo49kjHH6GcrNzVVxcXGN36crr7xSCxcu1MKFC5WZmamNGzfqj3/8o3Jzc7Vt27Ya7Qv1A2du4NVuvPFGNW7cWJ999lm5Mz5lLz8/PwUGBur666/X+vXrdf78eUf/s2fPatOmTU77DA8Pl7+/vw4dOuS0/u2333ZaDggIUL9+/ZSRkaEuXbq4PPbF/4OvSs+ePRUSEqKUlJQqLxXExcWpZ8+emjdvnl5//XXdd999CgwMrNHxLpaZmanp06crJCREv//976vVp2HDhrrhhhscT8SUXSKqztmKmvj000/18ccfO6174403FBQUpO7du0uS46mhi+du48aN5fZnt9urXVtiYqJ27txZ7im0VatW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fr6+++47xcbGOq3Pzc3V2bNnq72fshuBK7NixYpy6/r27asDBw5U+zgAAOC/h1tnboYOHar7779fb731lr755ht98803euuttzRmzBgNGzastmsEAACoNrfO3KSkpGj69Om65557VFRU9MuOfHw0ZswYPfvss7VaIAAAQE24FW4CAgL08ssv69lnn9VXX30lY4zatWunwMDA2q4PAACgRi7pQ/yys7OVnZ2tDh06KDAwsFr30AAAANQlt8LN6dOnlZiYqA4dOigpKUnZ2dmSpLFjx1b7MXAAAIC64Fa4mTp1qnx9fZWZmamAgADH+hEjRpT7pm8AAIDLya17brZv36533nmn3FcltG/fXidOnKiVwgAAANzh1pmbgoICpzM2ZU6dOsVXHQAAAI9yK9z06dPH8XUI0i/fIVVaWqpnn31W/fr1q7XiAAAAasqty1LPPvusbrrpJu3bt08XLlzQjBkz9Omnn+rMmTP65z//Wds1AgAAVJtbZ26uvvpqHTp0SNdff7369++vgoICDRs2TBkZGWrbtm1t1wgAAFBtNT5zU1RUpAEDBuiVV17R3Llz66ImAAAAt9X4zI2vr68++eQT2Wy2uqgHAADgkrh1WWrUqFFaunRpbdcCAABwydy6ofjChQt67bXXtGPHDsXHx5f7TqkFCxbUSnEAAAA1VaNw8/XXX6tVq1b65JNP1L17d0nSl19+6dSGy1UAAMCTahRu2rdvr+zsbO3atUvSL1+3sGjRIoWHh9dJcQAAADVVo3tuLv7W761bt6qgoKBWCwIAALgUbt1QXObisAMAAOBpNQo3Nput3D013GMDAADqkxrdc2OM0X333ef4cszz589r3Lhx5Z6WWr9+fe1VCAAAUAM1CjejR492Wr7nnntqtRgAAIBLVaNws3z58rqqAwAAoFZc0g3FAAAA9Q3hBgAAWArhBgAAWArhBgAAWArhBgAAWArhBgAAWArhBgAAWArhBgAAWArhBgAAWArhBgAAWIpHw83777+vwYMHKyoqSjabTX//+98rbZ+Wlub4ZvJfv7744ovLUzAAAKj3avTdUrWtoKBAXbt21f3336/hw4dXu9+RI0cUHBzsWG7WrFldlAcAALyQR8PNwIEDNXDgwBr3CwsLU+PGjWu/IAAA4PW88p6bbt26KTIyUomJidq1a5enywEAAPWIR8/c1FRkZKSWLFmiuLg4FRYWavXq1UpMTFRaWpr69Onjsk9hYaEKCwsdy/n5+ZerXAAA4AFeFW5iYmIUExPjWE5ISFBWVpbmz59fYbhJTk7W3LlzL1eJAADAw7zystSv9ejRQ0ePHq1w+8yZM5WXl+d4ZWVlXcbqAADA5eZVZ25cycjIUGRkZIXb7Xa77Hb7ZawIAAB4kkfDzU8//aT//Oc/juVjx47p4MGDatq0qaKjozVz5kydPHlSq1atkiQtXLhQrVq1UmxsrC5cuKA1a9YoNTVVqampnhoCAACoZzwabvbt26d+/fo5lqdNmyZJGj16tFasWKHs7GxlZmY6tl+4cEHTp0/XyZMn1ahRI8XGxmrz5s1KSkq67LUDAID6yaPh5qabbpIxpsLtK1ascFqeMWOGZsyYUcdVAQAAb+b1NxQDAAD8GuEGAABYCuEGAABYCuEGAABYCuEGAABYCuEGAABYCuEGAABYCuEGAABYCuEGAABYCuEGAABYCuEGAABYCuEGAABYCuEGAABYCuEGAABYCuEGAABYCuEGAABYCuEGAABYCuEGAABYCuEGAABYCuEGAABYCuEGAABYCuEGAABYCuEGAABYCuEGAABYCuEGAABYCuEGAABYCuEGAABYCuEGAABYCuEGAABYCuEGAABYCuEGAABYCuEGAABYCuEGAABYikfDzfvvv6/BgwcrKipKNptNf//736vsk56erri4OPn7+6tNmzZKSUmp+0IBAIDX8Gi4KSgoUNeuXfXiiy9Wq/2xY8eUlJSk3r17KyMjQ7NmzdKkSZOUmppax5UCAABv4ePJgw8cOFADBw6sdvuUlBRFR0dr4cKFkqROnTpp3759mj9/voYPH15HVQIAAG/iVffc7N69WwMGDHBad8stt2jfvn0qKiryUFUAAKA+8eiZm5rKyclReHi407rw8HAVFxfr1KlTioyMLNensLBQhYWFjuX8/Pw6rxMAAHiOV4UbSbLZbE7LxhiX68skJydr7ty5dV5XmZFLdl+2YwEoj99B1BV+tqpv7UMJHj2+V12WioiIUE5OjtO63Nxc+fj4KDQ01GWfmTNnKi8vz/HKysq6HKUCAAAP8aozNwkJCdq0aZPTuu3btys+Pl6+vr4u+9jtdtnt9stRHgAAqAc8eubmp59+0sGDB3Xw4EFJvzzqffDgQWVmZkr65azLqFGjHO3HjRunEydOaNq0afr888+1bNkyLV26VNOnT/dE+QAAoB7y6Jmbffv2qV+/fo7ladOmSZJGjx6tFStWKDs72xF0JKl169basmWLpk6dqpdeeklRUVFatGgRj4EDAAAHj4abm266yXFDsCsrVqwot65v3746cOBAHVYFAAC8mVfdUAwAAFAVwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUwg0AALAUj4ebl19+Wa1bt5a/v7/i4uL0wQcfVNg2LS1NNput3OuLL764jBUDAID6zKPhZt26dZoyZYoee+wxZWRkqHfv3ho4cKAyMzMr7XfkyBFlZ2c7Xu3bt79MFQMAgPrOo+FmwYIFGjNmjMaOHatOnTpp4cKFatGihRYvXlxpv7CwMEVERDheDRs2vEwVAwCA+s5j4ebChQvav3+/BgwY4LR+wIAB+te//lVp327duikyMlKJiYnatWtXXZYJAAC8jI+nDnzq1CmVlJQoPDzcaX14eLhycnJc9omMjNSSJUsUFxenwsJCrV69WomJiUpLS1OfPn1c9iksLFRhYaFjOT8/v/YGAQAA6h2PhZsyNpvNadkYU25dmZiYGMXExDiWExISlJWVpfnz51cYbpKTkzV37tzaKxgAANRrHrssdeWVV6phw4blztLk5uaWO5tTmR49eujo0aMVbp85c6by8vIcr6ysLLdrBgAA9Z/Hwo2fn5/i4uK0Y8cOp/U7duxQz549q72fjIwMRUZGVrjdbrcrODjY6QUAAKzLo5elpk2bpnvvvVfx8fFKSEjQkiVLlJmZqXHjxkn65azLyZMntWrVKknSwoUL1apVK8XGxurChQtas2aNUlNTlZqa6slhAACAesSj4WbEiBE6ffq0Hn/8cWVnZ6tz587asmWLWrZsKUnKzs52+sybCxcuaPr06Tp58qQaNWqk2NhYbd68WUlJSZ4aAgAAqGdsxhjj6SIup/z8fIWEhCgvL69OLlGNXLK71vcJrH0owdMleA1+BwHPq4u/s2ry77fHv34BAACgNhFuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApXg83Lz88stq3bq1/P39FRcXpw8++KDS9unp6YqLi5O/v7/atGmjlJSUy1QpAADwBh4NN+vWrdOUKVP02GOPKSMjQ71799bAgQOVmZnpsv2xY8eUlJSk3r17KyMjQ7NmzdKkSZOUmpp6mSsHAAD1lUfDzYIFCzRmzBiNHTtWnTp10sKFC9WiRQstXrzYZfuUlBRFR0dr4cKF6tSpk8aOHasHHnhA8+fPv8yVAwCA+spj4ebChQvav3+/BgwY4LR+wIAB+te//uWyz+7du8u1v+WWW7Rv3z4VFRXVWa0AAMB7+HjqwKdOnVJJSYnCw8Od1oeHhysnJ8dln5ycHJfti4uLderUKUVGRpbrU1hYqMLCQsdyXl6eJCk/P/9Sh+BS0c8FdbJf/Herq59XK+J3EPC8uvg7q2yfxpgq23os3JSx2WxOy8aYcuuqau9qfZnk5GTNnTu33PoWLVrUtFTAY9ZP8XQFAFB9dfl31tmzZxUSElJpG4+FmyuvvFINGzYsd5YmNze33NmZMhERES7b+/j4KDQ01GWfmTNnatq0aY7l0tJSnTlzRqGhoZWGKHfk5+erRYsWysrKUnBwcK3uuz6w+vgk64+R8Xk/q4+R8Xm/uhqjMUZnz55VVFRUlW09Fm78/PwUFxenHTt2aOjQoY71O3bs0JAhQ1z2SUhI0KZNm5zWbd++XfHx8fL19XXZx263y263O61r3LjxpRVfheDgYMv+0ErWH59k/TEyPu9n9TEyPu9XF2Os6oxNGY8+LTVt2jS99tprWrZsmT7//HNNnTpVmZmZGjdunKRfzrqMGjXK0X7cuHE6ceKEpk2bps8//1zLli3T0qVLNX36dE8NAQAA1DMevedmxIgROn36tB5//HFlZ2erc+fO2rJli1q2bClJys7O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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# your code here\n", + "#Let's make a histogram using a bin for each result\n", + "\n", + "ax = df_sorted['result'].plot.hist(bins=6, alpha=0.75, title='Frequency Distribution of Dice Rolls')\n", + "\n", + "# Set the labels\n", + "ax.set_xlabel('Dice Result')\n", + "ax.set_ylabel('Frequency')\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 66, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "\"\\nThe histogram doesn't care about the order of the dice rolls, it is simply showing how often each result was achieved. The scatterplot on \\nthe other hand does show an order which can be used (not in this case with dice rolls) to show potential patterns between the two axis.\\nBoth plots convey the same data put present it differently. If we saw a scatterplot with a condensed area of results the histogram would reflect\\nthis as well with a weighted frequency distribution\\n\"" + ] + }, + "execution_count": 66, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\"\"\"\n", + "The histogram doesn't care about the order of the dice rolls, it is simply showing how often each result was achieved. The scatterplot on \n", + "the other hand does show an order which can be used (not in this case with dice rolls) to show potential patterns between the two axis.\n", + "Both plots convey the same data put present it differently. If we saw a scatterplot with a condensed area of results the histogram would reflect\n", + "this as well with a weighted frequency distribution\n", + "\"\"\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Challenge 2\n", + "Now, using the dice results obtained in *challenge 1*, your are going to define some functions that will help you calculate the mean of your data in two different ways, the median and the four quartiles. \n", + "\n", + "#### 1.- Define a function that computes the mean by summing all the observations and dividing by the total number of observations. You are not allowed to use any methods or functions that directly calculate the mean value. " + ] + }, + { + "cell_type": "code", + "execution_count": 67, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "4.1\n" + ] + } + ], + "source": [ + "# your code here\n", + "def mean(rolls):\n", + " mean = sum(rolls) / len(rolls)\n", + " return mean\n", + "\n", + "print(mean(rolls))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 2.- First, calculate the frequency distribution. Then, calculate the mean using the values of the frequency distribution you've just computed. You are not allowed to use any methods or functions that directly calculate the mean value. " + ] + }, + { + "cell_type": "code", + "execution_count": 76, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{5: 4, 3: 3, 6: 1, 4: 1, 2: 1}\n", + "[2, 3, 3, 3, 4, 5, 5, 5, 5, 6]\n", + "4.1\n" + ] + } + ], + "source": [ + "# your code here\n", + "freq_dist = {}\n", + "\n", + "def calc_freq_dist(x):\n", + " freq_dist_calc = {}\n", + " for num in x:\n", + " if num in freq_dist_calc:\n", + " freq_dist_calc[num] += 1\n", + " else:\n", + " freq_dist_calc[num] = 1\n", + " return freq_dist_calc\n", + "\n", + "freq_dist = calc_freq_dist(rolls)\n", + "\n", + "print(freq_dist)\n", + "\n", + "#In hindsight, working with a dictionary comprehension is going to get quite annoying If I were to do it again\n", + "#I would just create a list from the created DataFrame\n", + "\n", + "\n", + "values = df_sorted['result'].tolist()\n", + "\n", + "print(values)\n", + "\n", + "total_sum = 0\n", + "\n", + "def calc_sum(x):\n", + " total_sum = 0\n", + " for key, value in x.items():\n", + " product = key * value\n", + " total_sum += product\n", + " return total_sum\n", + "\n", + "print(calc_sum(calc_freq_dist(rolls))/len(rolls))\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 3.- Define a function to calculate the median. You are not allowed to use any methods or functions that directly calculate the median value. \n", + "**Hint**: you might need to define two computation cases depending on the number of observations used to calculate the median." + ] + }, + { + "cell_type": "code", + "execution_count": 69, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "4.5\n", + "4.5\n" + ] + } + ], + "source": [ + "#Actually now I'm not sure, its quite easy to just create the list within in each function - I'm not sure what the best practice is here\n", + "\n", + "def median(x):\n", + " #Adding check depending on input list vs dict\n", + " if isinstance(x, dict):\n", + " flat_list = []\n", + " for key, value in x.items():\n", + " flat_list.extend([key] * value)\n", + " else:\n", + " flat_list = list(x)\n", + "\n", + " #sort the list - dict will already be sorted\n", + " flat_list.sort()\n", + " \n", + " length = len(flat_list)\n", + " mid = length // 2\n", + " if length % 2 == 0:\n", + " return (flat_list[mid - 1] + flat_list[mid]) / 2\n", + " else:\n", + " return flat_list[mid]\n", + "\n", + "print(median(freq_dist))\n", + "\n", + "print(median(values))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 4.- Define a function to calculate the four quartiles. You can use the function you defined above to compute the median but you are not allowed to use any methods or functions that directly calculate the quartiles. " + ] + }, + { + "cell_type": "code", + "execution_count": 70, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[3, 4.5, 5]\n", + "[3, 4.5, 5]\n" + ] + } + ], + "source": [ + "# your code here\n", + "def quartiles(x):\n", + " if isinstance(x, dict):\n", + " flat_list = []\n", + " for key, value in x.items():\n", + " flat_list.extend([key] * value)\n", + " flat_list.sort()\n", + " else:\n", + " flat_list = sorted(x)\n", + " \n", + " length = len(flat_list)\n", + " #lets split the list in half\n", + "\n", + " if length % 2 == 0:\n", + " lower_half = flat_list[:length // 2]\n", + " upper_half = flat_list[length // 2:]\n", + " else:\n", + " lower_half = flat_list[:length // 2]\n", + " upper_half = flat_list[length // 2 + 1:]\n", + "\n", + " Q2 = median(flat_list)\n", + " Q1 = median(lower_half)\n", + " Q3 = median(upper_half)\n", + "\n", + " Quartiles = [Q1, Q2, Q3]\n", + " \n", + " return Quartiles\n", + "\n", + "print(quartiles(freq_dist))\n", + "print(quartiles(values))\n", + "\n", + " " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Challenge 3\n", + "Read the csv `roll_the_dice_hundred.csv` from the `data` folder.\n", + "#### 1.- Sort the values and plot them. What do you see?" + ] + }, + { + "cell_type": "code", + "execution_count": 74, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Unnamed: 0rollvalue
0001
1112
2226
3331
4446
5555
6662
7772
8884
9991
\n", + "
" + ], + "text/plain": [ + " Unnamed: 0 roll value\n", + "0 0 0 1\n", + "1 1 1 2\n", + "2 2 2 6\n", + "3 3 3 1\n", + "4 4 4 6\n", + "5 5 5 5\n", + "6 6 6 2\n", + "7 7 7 2\n", + "8 8 8 4\n", + "9 9 9 1" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAioAAAHFCAYAAADcytJ5AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAt8klEQVR4nO3deXQUZb7G8adJSMeQpA1oNgkQWRREdhUMB4igOCzKdURFwKAzzqioCHoFdI7gRsT9OKMIqCCDgtcretEZQZBV0QGBIBgkYRPQAJJoGgLTQnjvHxkamgSy0Ol6Q76fc+ocq/pXVb9+Qfux6q1ulzHGCAAAwEJ1nG4AAADgVAgqAADAWgQVAABgLYIKAACwFkEFAABYi6ACAACsRVABAADWIqgAAABrEVQAAIC1CCqARaZPny6Xy+VfIiMjlZiYqPT0dGVmZmrv3r2l9hk/frxcLldI+9y+fXtAn3Xq1FFcXJx69uypzz777IyOOX36dP+2Y+Oxffv20+578riFh4crKSlJt9xyi3Jzc6vUT7C5XC6NHz/ev56dna3x48eX+96A2o6gAlho2rRp+uqrr7RgwQK9+uqrateunSZOnKiWLVtq4cKFAbV//OMf9dVXXznS53333aevvvpKy5cv1/PPP6/c3Fz16dNHy5Ytc6SfY+O2cOFC3XvvvZo7d666du2qX375xZF+Tic7O1uPP/44QQUoR7jTDQAorXXr1urUqZN//fe//71Gjhyprl276oYbblBubq4SEhIkSQ0bNlTDhg0d6bNRo0bq3LmzJCktLU3NmzdX9+7d9eabb6pbt24h7+fEcevRo4eKi4s1btw4ffTRR7r99ttD3g+AM8cVFaCGaNSokV544QXt379fkydP9m8/1a2fd999V126dFF0dLSio6PVrl07vfnmmwE1CxcuVM+ePRUbG6uoqCilpaXp888/r3KPx0LCnj17ArZv2LBB119/veLi4hQZGal27drp7bffrvJ5zrSfb775Rtddd53q16+vyMhItW/fXv/zP/8TUHPw4EE99NBDSk1NVWRkpOrXr69OnTpp1qxZ/poePXqoR48epc47bNgwNWnS5JR9TZ8+XQMHDpQkpaen+29ZHbvttXbtWvXr10/x8fFyu91KTk5W3759tWvXriqMAlCzcUUFqEH69OmjsLCwcm+tPPbYY3ryySd1ww036MEHH5TH49GGDRv0ww8/+Gtmzpyp2267Tddff73efvtt1a1bV5MnT1bv3r01f/589ezZs9L9bdu2TZLUokUL/7ZNmzbpyiuvVHx8vF555RU1aNBAM2fO1LBhw7Rnzx49/PDDlT7PmfSzePFiXXvttbriiiv0+uuvy+PxaPbs2br55pt18OBBDRs2TJI0atQo/f3vf9dTTz2l9u3bq6ioSBs2bFB+fv4Z99W3b19NmDBBjzzyiF599VV16NBBktS0aVMVFRXp6quvVmpqql599VUlJCRo9+7dWrx4sfbv33/G5wZqHAPAGtOmTTOSzKpVq05Zk5CQYFq2bOlfHzdunDnxX+WtW7easLAwM3jw4FMeo6ioyNSvX9/0798/YHtxcbFp27atufzyy0/b57Zt24wkM3HiRHP48GHz73//22RlZZkuXbqYpKQks23bNn/tLbfcYtxut9mxY0fAMX73u9+ZqKgo8+uvvwYcc9q0aaXG48TjleVY3ddff20OHz5s9u/fb+bNm2cSExNNt27dzOHDh/21F198sWnfvn3ANmOM6devn0lKSjLFxcXGGGNat25tBgwYcNrzdu/e3XTv3r3U9oyMDNO4ceOAbZLMuHHj/Ovvv/++kWQWL14cUPfNN98YSeajjz467bmB2oJbP0ANY4w57esLFixQcXGxhg8ffsqaFStWqKCgQBkZGTpy5Ih/OXr0qK699lqtWrVKRUVF5fYyevRo1a1b1387Z8OGDfr4448DbnssWrRIPXv2VEpKSsC+w4YN08GDB4M6Ebhz586qW7euYmJidO211youLk7/93//p/DwkovHmzdv1vfff6/BgwdLUsB779Onj/Ly8rRp0yZJ0uWXX65PP/1UY8aM0ZIlS3To0KGg9Xk6zZo1U1xcnEaPHq3XX39d2dnZITkvYCuCClCDFBUVKT8/X8nJyaes+fnnnyXptBNsj83ZuPHGG1W3bt2AZeLEiTLGqKCgoNx+RowYoVWrVumLL77Q888/r8OHD+v6668PuD2Sn5+vpKSkUvseew/BuJVyzIwZM7Rq1SotWrRIf/7zn7Vx40YNGjTI//qx9/3QQw+Vet/33HOPJGnfvn2SpFdeeUWjR4/WRx99pPT0dNWvX18DBgyo9sedPR6Pli5dqnbt2umRRx7RJZdcouTkZI0bN06HDx+u1nMDNmKOClCD/OMf/1BxcXGZEziPOf/88yVJu3btKnUV45jzzjtPkvTXv/7V/9TOyY49VXQ6DRs29E9YTUtLU2JiooYMGaJx48bpb3/7mySpQYMGysvLK7XvTz/9FNBLMLRs2dLfT3p6uoqLi/XGG2/of//3f3XjjTf6zzV27FjdcMMNZR7joosukiTVq1dPjz/+uB5//HHt2bPHf3Wlf//++v777yVJkZGRKiwsLHWMY2Gnqi699FLNnj1bxhh9++23mj59up544gmdc845GjNmzBkdG6hpuKIC1BA7duzQQw89JI/Hoz//+c+nrLvmmmsUFhamSZMmnbImLS1N5557rrKzs9WpU6cyl4iIiEr3OHjwYPXo0UNTp071T9zt2bOnFi1a5A8mx8yYMUNRUVGnDErB8OyzzyouLk6PPfaYjh49qosuukjNmzfXunXrTvm+Y2JiSh0nISFBw4YN06BBg7Rp0yYdPHhQktSkSRPl5OTI5/P5a/Pz87VixYpye3O73ZJ02ltKLpdLbdu21UsvvaRzzz1Xa9asqewQADUeV1QAC23YsME/d2Lv3r1avny5pk2bprCwMH344Yf+qyZladKkiR555BE9+eSTOnTokAYNGiSPx6Ps7Gzt27dPjz/+uKKjo/XXv/5VGRkZKigo0I033qj4+Hj9/PPPWrdunX7++efTBp3TmThxoq644go9+eSTeuONNzRu3Dh98sknSk9P12OPPab69evrnXfe0T/+8Q89++yz8ng8VR2mcsXFxWns2LF6+OGH9e6772rIkCGaPHmyfve736l3794aNmyYLrjgAhUUFGjjxo1as2aN3n//fUnSFVdcoX79+qlNmzaKi4vTxo0b9fe//11dunRRVFSUJGno0KGaPHmyhgwZojvvvFP5+fl69tlnFRsbW25vrVu3liRNmTJFMTExioyMVGpqqr766iu99tprGjBggC688EIZYzRnzhz9+uuvuvrqq6ttrABrOTuXF8CJjj29cmyJiIgw8fHxpnv37mbChAlm7969pfY5+amfY2bMmGEuu+wyExkZaaKjo0379u0DnqgxxpilS5eavn37mvr165u6deuaCy64wPTt29e8//77p+3z2BM6zz33XJmvDxw40ISHh5vNmzcbY4xZv3696d+/v/F4PCYiIsK0bdu2VC/BeOqnrKelDh06ZBo1amSaN29ujhw5YowxZt26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NmxoFi5caNasWWOuuuoqHk+uTq+++qpp3LixiYiIMB06dPA/Qouqk1TmMm3aNH/N0aNHzbhx40xiYqJxu92mW7duZv369c41fRY5Oagw1sHz8ccfm9atWxu3220uvvhiM2XKlIDXGevg8Hq9ZsSIEaZRo0YmMjLSXHjhhebRRx81Pp/PX8NYV83ixYvL/O9zRkaGMaZi43ro0CFz7733mvr165tzzjnH9OvXz+zYsSMo/bmMMebMr8sAAAAEH3NUAACAtQgqAADAWgQVAABgLYIKAACwFkEFAABYi6ACAACsRVABAADWIqgACLoePXrogQceqPL+27dvl8vlUlZWVtB6AlAz8evJAIJuzpw5qlu3rtNtADgLEFQABF39+vWdbgHAWYJbPwCC7sRbP02aNNGECRN0xx13KCYmRo0aNdKUKVMC6leuXKn27dsrMjJSnTp10tq1a0sdMzs7W3369FF0dLQSEhI0dOhQ7du3T5K0ZMkSRUREaPny5f76F154Qeedd57y8vKq740CqHYEFQDV7oUXXvAHkHvuuUd33323vv/+e0lSUVGR+vXrp4suukirV6/W+PHj9dBDDwXsn5eXp+7du6tdu3b65ptvNG/ePO3Zs0c33XSTpOPBaOjQoSosLNS6dev06KOPaurUqUpKSgr5+wUQPNz6AVDt+vTpo3vuuUeSNHr0aL300ktasmSJLr74Yr3zzjsqLi7WW2+9paioKF1yySXatWuX7r77bv/+kyZNUocOHTRhwgT/trfeekspKSnKyclRixYt9NRTT2nhwoX605/+pO+++05Dhw7Vf/3Xf4X8vQIILoIKgGrXpk0b/z+7XC4lJiZq7969kqSNGzeqbdu2ioqK8td06dIlYP/Vq1dr8eLFio6OLnXsLVu2qEWLFoqIiNDMmTPVpk0bNW7cWC+//HL1vBkAIUVQAVDtTn4CyOVy6ejRo5IkY0y5+x89elT9+/fXxIkTS7124q2dFStWSJIKCgpUUFCgevXqnUnbACzAHBUAjmrVqpXWrVunQ4cO+bd9/fXXATUdOnTQd999pyZNmqhZs2YBy7EwsmXLFo0cOVJTp05V586dddttt/nDEICai6ACwFG33nqr6tSpoz/84Q/Kzs7WP//5Tz3//PMBNcOHD1dBQYEGDRqklStXauvWrfrss890xx13qLi4WMXFxRo6dKiuueYa3X777Zo2bZo2bNigF154waF3BSBYCCoAHBUdHa2PP/5Y2dnZat++vR599NFSt3iSk5P15Zdfqri4WL1791br1q01YsQIeTwe1alTR08//bS2b9/uf+w5MTFRb7zxhv7yl7/w7bZADecyFblBDAAA4ACuqAAAAGsRVAAAgLUIKgAAwFoEFQAAYC2CCgAAsBZBBQAAWIugAgAArEVQAQAA1iKoAAAAaxFUAACAtQgqAADAWgQVAABgrf8HQLVquCpzkpoAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# your code here\n", + "df_100 = pd.read_csv(\"../data/roll_the_dice_hundred.csv\")\n", + "#I learned we can use ../ to go one folder back for the import just like in bash\n", + "\n", + "#df_100.shape\n", + "\n", + "display(df_100.head(10))\n", + "\n", + "#copy pasting from earlier:\n", + "df_sorted100 = df_100.sort_values(by=\"value\", inplace=False)\n", + "\n", + "df_sorted100 = df_sorted100.reset_index(drop=True)\n", + "\n", + "#plot using the reset index to have it sorted by value\n", + "graph = df_sorted100.reset_index().plot.scatter(x='index', y='value', c='orange', title='Dice Roll Results')\n", + "\n", + "# Display the plot\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "\"\"\"\n", + "well, we have more data so the we can expect the probability of each result to get closer to 1/6 as we increase our sample size.\n", + "at 1000 values it might be very difficult to see variance on the plotted chart\n", + "\"\"\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 2.- Using the functions you defined in *challenge 2*, calculate the mean value of the hundred dice rolls." + ] + }, + { + "cell_type": "code", + "execution_count": 75, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3.74\n" + ] + } + ], + "source": [ + "# your code here\n", + "rolls100 = df_100['value'].tolist()\n", + "\n", + "print(mean(rolls100))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 3.- Now, calculate the frequency distribution.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 77, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{1: 12, 2: 17, 6: 23, 5: 12, 4: 22, 3: 14}" + ] + }, + "execution_count": 77, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# your code here\n", + "calc_freq_dist(rolls100)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 4.- Plot the histogram. What do you see (shape, values...) ? How can you connect the mean value to the histogram? " + ] + }, + { + "cell_type": "code", + "execution_count": 79, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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1kz9+/d3nTpyOp2X9f3/WVRUlFq2bKnvv/9eBQUFFxzpXLFiheLj49WwYUNNmzZNsbGxSk5O1sqVK13rXO7vgxkFBQU6cOCA6tev71qWm5urLl26aO/evZo4caKaNm2qb7/9VomJidq2bVux8mfGvffeqy1btuiFF15Q/fr1deLECW3ZskUZGRmXnRcVhAFYICkpyZBU6i0/P99Yu3atIcm4+eabiz0vJyfHqF69uhEfH19seWFhodGsWTPjpptuci1r3bq1ERUVZZw5c8a1LCsry6hevbrx5x/9ffv2GZKMpKSkEjklGRMmTHDd//vf/25ER0cbJ0+eLLbeo48+avj4+BiZmZmGYRiu/L179y623kcffWRIMjZs2GAYhmFkZ2cbgYGBRocOHYyioqILHq8JEyYY3t7expEjR1zLPvzwQ0OSsX79+gs+zzD+71hv2rTpguuEh4cbDRs2LLa/Px+jTz75xJBkbNu27YLbOHr0aInj5b69Z5999oKP/VlcXJzhcDhK7K979+5GYGCgkZOTU+x727dvX7H1zh//tWvXupb16dPHiIuLKzW7e+6BAwcaTqfTSElJKbZer169DD8/P+PEiRPF9nOp1/lC2rRpY4SFhRnZ2dmuZQUFBUbjxo2N6Oho18/E+Z/Rl19++aLbM7vugAEDDEmun6fSjlfdunWNunXrFvv9cWf29+FC4uLijN69exv5+flGfn6+sX//fuPBBx80vLy8jC+++MK13qxZswxJxkcffVTs+VOmTDEkGStXriy2zSFDhpQ4Hn/+/a5ataoxatSoi2aDvXCaCZZasGCBNm3aVOz2578U77jjjmLrf//998rMzNSQIUNUUFDguhUVFalnz57atGmTcnJylJOTo02bNql///7y8fFxPT8gIEDx8fFlypqbm6uvv/5a/fr1k5+fX7H99+7dW7m5udq4cWOx59x2223F7jdt2lSStH//ftf3k5WVpeHDh1909tC//vUvSdJbb73lWjZjxgw1adJEN998c5m+nz8zLjFz5MYbb5S3t7ceeughzZ8/X3/88UeZ9uP+el5Mo0aN1KxZs2LLBg0apKysLG3ZsqVM+zdrzZo16tq1q2JiYootHzp0qE6fPl3ilN+lXufS5OTk6IcfftCdd96pqlWrupZ7eHjo3nvv1cGDB02fqrpcl3q9d+/erb179+qBBx4o9vvzZ2X5fSjNl19+KS8vL3l5eSkuLk5vvfWWXn/9dfXp08e1zpo1a+Tv768777yz2HPPn8Ys7RTzxdx0002aN2+eJk2apI0bNyo/P/+yno+KhzIDSzVs2FCtWrUqdvuzyMjIYvfPnyK68847Xf8Anr9NmTJFhmEoMzNTx48fV1FRkSIiIkrss7RlZmRkZKigoECvv/56iX337t1bknTs2LFizwkJCSl2//zpgTNnzkg6d+5e0iUvgA0PD9eAAQM0e/ZsFRYWavv27fr222/16KOPlul7+bOcnBxlZGRc9FRV3bp1tXr1aoWFhWnEiBGqW7eu6tatq1dfffWy9uX+el7MxV67q306ICMjo9Ss54+R+/4v9TqX5vjx4zIM47L2U172798vp9Op6tWrl/q4mZ/Lsvw+lKZDhw7atGmTNm7cqHfffVe1atXSo48+qu+++67YviIiIkoU/rCwMHl6el72cfrwww81ZMgQvf3222rbtq2qV6+uwYMHKy0t7bK2g4qDa2ZQobn/41WjRg1J0uuvv37B2Rfh4eGumU+l/ePkvuz8X57uFxK6/wMZHBzs+qt5xIgRpe67du3aF/luSjp/TcnBgwcvue7IkSP17rvv6rPPPtPy5ctVrVo13X333Ze1v9IsW7ZMhYWFl5xO3bFjR3Xs2FGFhYXavHmzXn/9dY0aNUrh4eEaOHCgqX1dznvXXOy1O18eLvTamfmf6MWEhIQoNTW1xPLzF1qf/zm8EsHBwapSpcpV34+7Q4cO6aefflKnTp0ueL2MmZ/L8vp9CAoKcv0R07p1a7Vu3VrNmjXT8OHDtW3bNlWpUkUhISH64YcfZBhGsZ+h9PR0FRQUXPZxqlGjhqZPn67p06crJSVFS5cu1VNPPaX09HQtX778sraFioGRGdhK+/btVa1aNf36668lRnTO37y9veXv76+bbrpJixcvVm5uruv52dnZ+vzzz4ttMzw8XD4+Ptq+fXux5Z999lmx+35+furSpYu2bt2qpk2blrpv97/QL6Vdu3YKCgrSrFmzLjn037JlS7Vr105TpkzR+++/r6FDh8rf3/+y9ucuJSVFY8eOVVBQkB5++GFTz/Hw8FDr1q1dM1bOn/IxMxpxOXbu3Kmff/652LKFCxcqICBALVq0kCTXrB73127p0qUltud0Ok1n69q1q9asWVNiltiCBQvk5+dXLtOY/f391bp1ay1evLhYrqKiIr333nuKjo4udhFseThz5oyGDRumgoKCEhcx/1n9+vVVt25dzZ0794Kzha7G74Mk1atXT+PGjdOOHTv04YcfSjr3epw6darEGwUuWLDA9XhZxcbG6tFHH1X37t2v+ulLXD2MzMBWqlatqtdff11DhgxRZmam7rzzToWFheno0aP6+eefdfToUc2cOVOS9Pzzz6tnz57q3r27nnjiCRUWFmrKlCny9/dXZmama5sOh0P33HOP5s6dq7p166pZs2b68ccftXDhwhL7f/XVV9WhQwd17NhR//rXv1SrVi1lZ2fr999/1+eff641a9Zc9vczdepUDRs2TN26ddODDz6o8PBw/f777/r55581Y8aMYuuPHDlSAwYMkMPh0PDhwy9rX7/88ovrmob09HR9++23SkpKkoeHh5YsWVJi5tGfzZo1S2vWrFGfPn0UGxur3NxczZ07V5Jcb7YXEBCguLg4ffbZZ+ratauqV6+uGjVqlHkacVRUlG677TYlJCQoMjJS7733nlatWqUpU6bIz89PkvS3v/1NDRo00NixY1VQUKDg4GAtWbKk2CmK85o0aaLFixdr5syZatmypapUqXLB9ziaMGGCvvjiC3Xp0kXPPvusqlevrvfff1/Lli3TSy+9pKCgoDJ9T+4SExPVvXt3denSRWPHjpW3t7fefPNN/fLLL/rggw8u+12Y/ywlJUUbN25UUVGRTp486XrTvP3792vq1Knq0aPHRZ//xhtvKD4+Xm3atNHo0aMVGxurlJQUrVixQu+//76k8v99OG/s2LGaNWuWJk6cqLvuukuDBw/WG2+8oSFDhig5OVlNmjTRd999p8mTJ6t3797F3vDxUk6ePKkuXbpo0KBBuv766xUQEKBNmzZp+fLl6t+/f5nyogKw8upj/HVdaobN+dkVH3/8camPr1+/3ujTp49RvXp1w8vLy6hZs6bRp0+fEusvXbrUaNq0qeHt7W3ExsYaL774YqmzZ06ePGkMGzbMCA8PN/z9/Y34+HgjOTm51Nk5+/btM+6//36jZs2ahpeXlxEaGmq0a9fOmDRp0iXzX2jm1Jdffml06tTJ8Pf3N/z8/IwbbrjBmDJlSonvOy8vz3A6nUbPnj1LPS6lcZ855u3tbYSFhRmdOnUyJk+ebKSnp5d4jvsx2rBhg9GvXz8jLi7OcDqdRkhIiNGpUydj6dKlxZ63evVqo3nz5obT6TQkuWaVnN/e0aNHL7kvwzg3I6VPnz7GJ598YjRq1Mjw9vY2atWqZUybNq3E83fv3m306NHDCAwMNEJDQ43HHnvMWLZsWYnZOZmZmcadd95pVKtWzXA4HMX2WdrrvGPHDiM+Pt4ICgoyvL29jWbNmpV43S73dS7Nt99+a9xyyy2Gv7+/4evra7Rp08b4/PPPS93e5cxmOn/z8PAwgoODjZYtWxqjRo0ydu7cWeI5pc1mMoxzr3uvXr2MoKAgw+l0GnXr1jVGjx5dYn+X+n24kPOvc2neeOMNQ5Ixf/58wzAMIyMjw3jkkUeMyMhIw9PT04iLizPGjx9v5ObmltjmxWYz5ebmGo888ojRtGlTIzAw0PD19TUaNGhgTJgwwTVLDvbjMIwyfgAGYFMJCQmaOHFimT/7xUqff/65brvtNi1btsx1kSUA/NVxmgmwgV9//VX79+/XE088oRtvvNH1NvQAAC4ABmxh+PDhuu222xQcHHzF11IAQGXDaSYAAGBrjMwAAABbo8wAAABbo8wAAABbq/SzmYqKinT48GEFBARw0SQAADZhGIays7MVFRWlKlUuPvZS6cvM4cOHS3zyLQAAsIcDBw5c8sN4K32ZCQgIkHTuYAQGBlqcBoAtbNsmdeokrV8v3Xij1WmAv6SsrCzFxMS4/j9+MZW+zJw/tRQYGEiZAWBOgwbS1KnnvvLvBmApM5eIVPoyAwCXLTxcGjPG6hQATGI2EwC4O35c+vjjc18BVHiUGQBwt2+fdNdd574CqPAoMwAAwNYoMwAAwNYoMwAAwNYoMwDgztdXat783FcAFR5TswHAXcOG0pYtVqcAYBIjMwAAwNYoMwDgbutWyek89xVAhUeZAQB3hiGdPXvuK4AKjzIDAABsjTIDAABsjTIDAABsjanZAOCuYUPpl1+kOnWsTgLABMoMALjz9ZUaNbI6BSw0cM4GqyPYxqKH2lodgdNMAFDC/v3SsGHnvgKo8CgzAOAuI0N6551zXwFUeJQZAABga5QZAABga5QZAABga5QZAHAXHi499dS5rwAqPKZmA4C7mjWlxESrUwAwiZEZAHCXnS2tW3fuK4AKjzIDAO727JG6dDn3FUCFR5kBAAC2RpkBAAC2RpkBAAC2RpkBAHdeXudmNHl5WZ0EgAlMzQYAd02aSAcPWp0CgEmUGQC2NnDOBqsj2Maih9paHQG4KjjNBABuYg7t1RtP9lXMob1WRwFgAmUGANx4FBYo5MRReRQWWB0FgAmUGQAAYGuUGQAAYGuUGQAAYGuUGQBwkxYWrefGzFBaWLTVUQCYwNRsAHCT6+OvXxu0sDoGAJMYmQEAN8HHj2rgkpkKPn7U6igATKDMAICboOxM3b78XQVlZ1odBYAJlBkAAGBrlBkAAGBrlBkAAGBrlBkAcHPKP1Br2sfrlH+g1VEAmMDUbABwcywkUnMGj7c6BgCTGJkBADdeZ/MUffgPeZ3NszoKABMoMwDgpmZasl6ZeI9qpiVbHQWACZQZAABga5QZAABga5QZAABga5QZAChFvqeX1REAmMTUbABwkxzbQPe+sd7qGABMYmQGAADYGmUGANxEpSYrcdJQRaUmWx0FgAmUGQBw452fp9oHdss7nzfNA+yAMgMAAGzN0jKTmJiov/3tbwoICFBYWJhuv/127dq1q9g6hmEoISFBUVFR8vX1VefOnbVz506LEgMAgIrG0jKzfv16jRgxQhs3btSqVatUUFCgHj16KCcnx7XOSy+9pGnTpmnGjBnatGmTIiIi1L17d2VnZ1uYHAAAVBSWTs1evnx5sftJSUkKCwvTTz/9pJtvvlmGYWj69Ol65pln1L9/f0nS/PnzFR4eroULF+rhhx+2IjaASu5oSKT+/dAkHQ2JtDoKABMq1DUzJ0+elCRVr15dkrRv3z6lpaWpR48ernWcTqc6deqk77//3pKMACq/HP9A/dDyFuX4B1odBYAJFabMGIahMWPGqEOHDmrcuLEkKS0tTZIUHh5ebN3w8HDXY+7y8vKUlZVV7AYAlyMoK1O9V32goKxMq6MAMKHClJlHH31U27dv1wcffFDiMYfDUey+YRgllp2XmJiooKAg1y0mJuaq5AVQeQWfOKrBn7yu4BNHrY4CwIQKUWYee+wxLV26VGvXrlV0dLRreUREhCSVGIVJT08vMVpz3vjx43Xy5EnX7cCBA1cvOAAAsJylZcYwDD366KNavHix1qxZo9q1axd7vHbt2oqIiNCqVatcy86ePav169erXbt2pW7T6XQqMDCw2A0AAFRels5mGjFihBYuXKjPPvtMAQEBrhGYoKAg+fr6yuFwaNSoUZo8ebLq1aunevXqafLkyfLz89OgQYOsjA4AACoIS8vMzJkzJUmdO3cutjwpKUlDhw6VJI0bN05nzpzR8OHDdfz4cbVu3VorV65UQEDANU4L4K/ijK+/NjftoDO+/lZHAWCCpWXGMIxLruNwOJSQkKCEhISrHwgAJB0JjdYrI16yOgYAkyrEBcAAUJF4FBYoIPu4PAoLrI4CwATKDAC4iTm0V2+N7aOYQ3utjgLABMoMAACwNcoMAACwNcoMAACwNcoMAACwNUunZgNARbQ/+jrdN32Vcp0+VkcBYAJlBgDcGFU8eMM8wEY4zQQAbiKOHND4V0cp4ggfVAvYAWUGANz45J1Ws19/lE/eaaujADCBMgMAAGyNMgMAAGyNMgMAAGyNMgMAbjKCwzR34BPKCA6zOgoAE5iaDQBusgOCtbLLHVbHAGASIzMA4MY/J0sdNi6Xf06W1VEAmECZAQA3oRmpejTpOYVmpFodBYAJlBkAAGBrlBkAAGBrlBkAAGBrlBkAcJPn7aPdtRspz5tPzQbsgKnZAOAmNSJOzz71ltUxAJjEyAwAALA1ygwAuKmVskuLHm6nWim7rI4CwATKDAAAsDXKDAAAsDXKDAAAsDXKDAAAsDWmZgOAm0ORtTTy+Y+UGRxqdRQAJlBmAMBNvpdTR8KirY4BwCROMwGAm9BjhzXinQSFHjtsdRQAJlBmAMCN/+lsdfxxpfxPZ1sdBYAJlBkAAGBrlBkAAGBrlBkAAGBrlBkAcHMiKESf3Hq/TgSFWB0FgAlMzQYANyeCauiT+GFWxwBgEiMzAODG90yOmu7cKN8zOVZHAWACZQYA3IQfPainXxuj8KMHrY4CwATKDAAAsDWumcE1M3DOBqsj2Maih9paHQEAbIORGQAAYGuUGQBwU+DppbTQmirw9LI6CgATOM0EAG4ORtXRqEkfWx0DgEmMzAAAAFujzACAm9iDv2vOE70Ve/B3q6MAMIEyAwBuqhQVKvDUCVUpKrQ6CgATKDMAAMDWKDMAAMDWKDMAAMDWKDMA4CY1LEb/O262UsNirI4CwATeZwYA3OT5+GlP3SZWxwBgEiMzAOCm+vF03fvRq6p+PN3qKABMoMwAgJvA7OPq8/WHCsw+bnUUACZQZgAAgK1RZgAAgK1RZgAAgK1RZgDATXbVIK3o1F/ZVYOsjgLABKZmA4CbjOoRSho01uoYAExiZAYA3HifzVWtlF3yPptrdRQAJlBmAMBNVNp+vfjCfYpK2291FAAmUGYAAICtUWYAAICtUWYAAICtUWYAwI3hcOi0j58Mh8PqKABMYGo2ALjZH1Nf97+62uoYAEyydGTmm2++UXx8vKKiouRwOPTpp58We3zo0KFyOBzFbm3atLEmLAAAqJAsLTM5OTlq1qyZZsyYccF1evbsqdTUVNftyy+/vIYJAfwV1Ty8Ty8n3K2ah/dZHQWACZaeZurVq5d69ep10XWcTqciIiKuUSIAkLwKziomdZ+8Cs5aHQWACRX+AuB169YpLCxM9evX14MPPqj09PSLrp+Xl6esrKxiNwAAUHlV6DLTq1cvvf/++1qzZo2mTp2qTZs26ZZbblFeXt4Fn5OYmKigoCDXLSYm5homBgAA11qFns00YMAA1383btxYrVq1UlxcnJYtW6b+/fuX+pzx48drzJgxrvtZWVkUGgAAKrEKXWbcRUZGKi4uTnv27LngOk6nU06n8xqmAlDZpNeI0svDpyi9RpTVUQCYYKsyk5GRoQMHDigyMtLqKAAqsdN+AfqpWUerYwAwydJrZk6dOqVt27Zp27ZtkqR9+/Zp27ZtSklJ0alTpzR27Fht2LBBycnJWrduneLj41WjRg3169fPytgAKrmgkxnq+9UCBZ3MsDoKABMsLTObN29W8+bN1bx5c0nSmDFj1Lx5cz377LPy8PDQjh071LdvX9WvX19DhgxR/fr1tWHDBgUEBFgZG0AlF3zymP756SwFnzxmdRQAJlh6mqlz584yDOOCj69YseIapgEAAHZUoadmAwAAXAplBgAA2BplBgDcnPatqo0tuui0b1WrowAwwVZTswHgWkgPranpD79gdQwAJjEyAwBuPAryVf14ujwK8q2OAsCEMpWZffv2lXcOAKgwYg7/oTeful0xh/+wOgoAE8pUZq677jp16dJF7733nnJzc8s7EwAAgGllKjM///yzmjdvrieeeEIRERF6+OGH9eOPP5Z3NgAAgEsq0wXAjRs31rRp0/TSSy/p888/17x589ShQwfVq1dPDzzwgO69916FhoaWd1bgL2PgnA1WRwAA27iiC4A9PT3Vr18/ffTRR5oyZYr27t2rsWPHKjo6WoMHD1Zqamp55QQAACjVFZWZzZs3a/jw4YqMjNS0adM0duxY7d27V2vWrNGhQ4fUt2/f8soJANfM/uh6umfGOu2Prmd1FAAmlOk007Rp05SUlKRdu3apd+/eWrBggXr37q0qVc51o9q1a2v27Nm6/vrryzUsAFwLRpUqKqjibXUMACaVaWRm5syZGjRokFJSUvTpp5/q1ltvdRWZ82JjY/XOO++US0gAuJYij6To2akjFHkkxeooAEwo08jMnj17LrmOt7e3hgwZUpbNA4ClnHlndMPurXLmnbE6CgATyjQyk5SUpI8//rjE8o8//ljz58+/4lAAAABmlanMvPjii6pRo0aJ5WFhYZo8efIVhwIAADCrTGVm//79ql27donlcXFxSknhHDMAALh2ylRmwsLCtH379hLLf/75Z4WEhFxxKACwUkb1cM2+9yllVA+3OgoAE8p0AfDAgQP1+OOPKyAgQDfffLMkaf369Ro5cqQGDhxYrgEB4FrLrlpNazvcZnUMACaVqcxMmjRJ+/fvV9euXeXpeW4TRUVFGjx4MNfMALC9gFMn1GrbN9p8483KrlrN6jgALqFMZcbb21sffvihnn/+ef3888/y9fVVkyZNFBcXV975AOCaC8k8oofffVH7YhtQZgAbKFOZOa9+/fqqX79+eWUBAAC4bGUqM4WFhZo3b56+/vprpaenq6ioqNjja9asKZdwAAAAl1KmMjNy5EjNmzdPffr0UePGjeVwOMo7FwAAgCllKjOLFi3SRx99pN69e5d3HgCwXJ7TV7/Wb648p6/VUQCYUOYLgK+77rryzgIAFUJqeKyee+INq2MAMKlMb5r3xBNP6NVXX5VhGOWdBwAs5ygqkmf+WTncrgcEUDGVaWTmu+++09q1a/XVV1+pUaNG8vLyKvb44sWLyyUcAFgh7uAevfjCfXrqmSQlxzawOg6ASyhTmalWrZr69etX3lkAAAAuW5nKTFJSUnnnAAAAKJMyXTMjSQUFBVq9erVmz56t7OxsSdLhw4d16tSpcgsHAABwKWUamdm/f7969uyplJQU5eXlqXv37goICNBLL72k3NxczZo1q7xzAgAAlKpMIzMjR45Uq1atdPz4cfn6/t/7MPTr109ff/11uYUDACsciKqj4S9+qgNRdayOAsCEMs9m+u9//ytvb+9iy+Pi4nTo0KFyCQYAVin09FJmcJjVMQCYVKaRmaKiIhUWFpZYfvDgQQUEBFxxKACwUtjRQxo1+xmFHeWPM8AOylRmunfvrunTp7vuOxwOnTp1ShMmTOAjDgDYnt+ZU2qzZa38zjChAbCDMp1m+ve//60uXbrohhtuUG5urgYNGqQ9e/aoRo0a+uCDD8o7IwAAwAWVqcxERUVp27Zt+uCDD7RlyxYVFRXpgQce0N13313sgmAAAICrrUxlRpJ8fX11//336/777y/PPAAAAJelTGVmwYIFF3188ODBZQpjRwPnbLA6AoBydjyohj64/REdD6phdZRyxb9XqKzKVGZGjhxZ7H5+fr5Onz4tb29v+fn5/aXKDIDK52RQiD7rxb9jgF2UaTbT8ePHi91OnTqlXbt2qUOHDlwADMD2/E5nq+XP38rvdLbVUQCYUObPZnJXr149vfjiiyVGbQDAbsKOHdb/vPmkwo4dtjoKABPKrcxIkoeHhw4f5pcfAABcO2W6Zmbp0qXF7huGodTUVM2YMUPt27cvl2AAAABmlKnM3H777cXuOxwOhYaG6pZbbtHUqVPLIxcAAIApZSozRUVF5Z0DACqMfE9vHYisrXxP70uvDMByZX7TPACorA5F1db/JLxvdQwAJpWpzIwZM8b0utOmTSvLLgAAAEwpU5nZunWrtmzZooKCAjVo0ECStHv3bnl4eKhFixau9RwOR/mkBIBrKO7Abk14Zbgmjn1T+2PqWx0HwCWUqczEx8crICBA8+fPV3BwsKRzb6R33333qWPHjnriiSfKNSQAXEsOw5Bf7mk5DMPqKABMKNP7zEydOlWJiYmuIiNJwcHBmjRpErOZAADANVWmMpOVlaUjR46UWJ6enq7sbN7+GwAAXDtlKjP9+vXTfffdp08++UQHDx7UwYMH9cknn+iBBx5Q//79yzsjAADABZXpmplZs2Zp7Nixuueee5Sfn39uQ56eeuCBB/Tyyy+Xa0AAuNYOR8TpqWeSdDgizuooAEwoU5nx8/PTm2++qZdffll79+6VYRi67rrr5O/vX975AOCaO+vto+TYBlbHAGDSFX3QZGpqqlJTU1W/fn35+/vL4Mp/AJVASGaa7lv4ikIy06yOAsCEMpWZjIwMde3aVfXr11fv3r2VmpoqSRo2bBjTsgHYXsCpk/r7+sUKOHXS6igATChTmRk9erS8vLyUkpIiPz8/1/IBAwZo+fLl5RYOAADgUsp0zczKlSu1YsUKRUdHF1ter1497d+/v1yCAQAAmFGmkZmcnJxiIzLnHTt2TE6n84pDAQAAmFWmMnPzzTdrwYIFrvsOh0NFRUV6+eWX1aVLl3ILBwBWyAoI1rKuA5QVEHzplQFYrkynmV5++WV17txZmzdv1tmzZzVu3Djt3LlTmZmZ+u9//1veGQHgmsoMDtO7d420OgYAk8o0MnPDDTdo+/btuummm9S9e3fl5OSof//+2rp1q+rWrVveGQHgmnLmnla9vTvkzD1tdRQAJlz2yEx+fr569Oih2bNna+LEiVcjEwBYKjL9gJ5/6WE99UwSb54H2MBlj8x4eXnpl19+kcPhuOKdf/PNN4qPj1dUVJQcDoc+/fTTYo8bhqGEhARFRUXJ19dXnTt31s6dO694vwAAoPIo02mmwYMH65133rninefk5KhZs2aaMWNGqY+/9NJLmjZtmmbMmKFNmzYpIiJC3bt355O5AQCAS5kuAD579qzefvttrVq1Sq1atSrxmUzTpk0ztZ1evXqpV69epT5mGIamT5+uZ555xvVJ3PPnz1d4eLgWLlyohx9+uCzRAQBAJXNZZeaPP/5QrVq19Msvv6hFixaSpN27dxdbpzxOP0nSvn37lJaWph49eriWOZ1OderUSd9//z1lBsBVU1TFQ1lVq6moiofVUQCYcFllpl69ekpNTdXatWslnfv4gtdee03h4eHlHiwt7dwHvLlvOzw8/KLvMpyXl6e8vDzX/aysrHLPBqByS4m+Tg9N/dLqGABMuqxrZtw/Ffurr75STk5OuQZy5z7SYxjGRUd/EhMTFRQU5LrFxMRc1XwAAMBaZboA+Dz3clOeIiIiJP3fCM156enpFx0JGj9+vE6ePOm6HThw4KplBFA5RR/+Q9P/3z8UffgPq6MAMOGyyozD4SgxKlJe18i4q127tiIiIrRq1SrXsrNnz2r9+vVq167dBZ/ndDoVGBhY7AYAl8OzIF8RRw/JsyDf6igATLisa2YMw9DQoUNdHyaZm5urRx55pMRspsWLF5va3qlTp/T777+77u/bt0/btm1T9erVFRsbq1GjRmny5MmqV6+e6tWrp8mTJ8vPz0+DBg26nNgAAKASu6wyM2TIkGL377nnniva+ebNm4t9MOWYMWNc+5k3b57GjRunM2fOaPjw4Tp+/Lhat26tlStXKiAg4Ir2CwAAKo/LKjNJSUnluvPOnTtf9Lobh8OhhIQEJSQklOt+AQBA5XFFFwADQGV0JDRakx+fpiOh0VZHAWBCmd4BGAAqszO+/treqI3VMQCYxMgMALipdvKY7vz8bVU7eczqKABMoMwAgJtqJzN05xdzVe1khtVRAJhAmQEAALZGmQEAALZGmQEAALZGmQEANzl+Afr2ph7K8eMNOgE7YGo2ALg5WiNKbzyQYHUMACYxMgMAbrzy8xSeflBe+XlWRwFgAmUGANzUTE3Wq/97l2qmJlsdBYAJlBkAAGBrlBkAAGBrlBkAAGBrlBkAAGBrTM0GADfJsQ00cPb3VscAYBIjMwAAwNYoMwDgJjJtv5578UFFpu23OgoAEygzAODGeTZX9fftlPNsrtVRAJhAmQEAALZGmQEAALZGmQEAALZGmQEAN0dDIjXjvmd1NCTS6igATOB9ZgDATY5/oL5r09PqGABMYmQGANwEZB9Xj7X/UUD2caujADCBMgMAbkKOp+v+RVMVcjzd6igATKDMAAAAW6PMAAAAW6PMAAAAW6PMAICbXKeffr7hJuU6/ayOAsAEpmYDgJu08BgljpxudQwAJjEyAwBuHEWF8j2TI0dRodVRAJhAmQEAN3EHf1fSqO6KO/i71VEAmECZAQAAtkaZAQAAtkaZAQAAtkaZAQAAtsbUbABwc6BmXT34yjKd9guwOgoAEygzAOCm0MNT2QHBVscAYBKnmQDATfjRgxr7xjiFHz1odRQAJlBmAMCN75kctdr+nXzP5FgdBYAJlBkAAGBrlBkAAGBrlBkAAGBrlBkAcHO8WqgW3PmYjlcLtToKABOYmg0Abk4GVteX3f9pdQwAJjEyAwBu/HOy1PqnNfLPybI6CgATKDMA4CY0I1Wj5/w/hWakWh0FgAmUGQAAYGuUGQAAYGuUGQAAYGuUGQBwc9bLqX0x9XXWy2l1FAAmMDUbANwcjqyl8f9vntUxAJjEyAwAALA1ygwAuKmVskvvjuikWim7rI4CwATKDACUwqsg3+oIAEyizAAAAFujzAAAAFujzAAAAFtjajYAuDkUUUtjJ7ynIzVqWh0FgAmUGQBwk+/t1MGoOlbHAGASp5kAwE2NjFQ9tCBRNfjUbMAWKDMA4KZqTpZu+e/nqpqTZXUUACZQZgAAgK1RZgAAgK1RZgAAgK1V6DKTkJAgh8NR7BYREWF1LACV3MmA6vq05706GVDd6igATKjwU7MbNWqk1atXu+57eHhYmAbAX8Hx4FAt6vcvq2MAMKnClxlPT09GYwBcUz65Oaqzf5f+iGugXB9/q+MAuIQKfZpJkvbs2aOoqCjVrl1bAwcO1B9//HHR9fPy8pSVlVXsBgCXIyL9oJ6d9qgi0g9aHQWACRW6zLRu3VoLFizQihUr9NZbbyktLU3t2rVTRkbGBZ+TmJiooKAg1y0mJuYaJgYAANdahS4zvXr10h133KEmTZqoW7duWrZsmSRp/vz5F3zO+PHjdfLkSdftwIED1youAACwQIW/ZubP/P391aRJE+3Zs+eC6zidTjmdzmuYCgAAWKlCj8y4y8vL02+//abIyEirowCoxAo9PJVRLVSFHrb6ew/4y6rQv6ljx45VfHy8YmNjlZ6erkmTJikrK0tDhgyxOhqASuxAzboaMeUzq2MAMKlCl5mDBw/qn//8p44dO6bQ0FC1adNGGzduVFxcnNXRAABABVGhy8yiRYusjgDgLyjm0F499doYvfj4NB2oWdfqOAAuwVbXzADAteBRWKCQE0flUVhgdRQAJlBmAACArVFmAACArVFmAACArVFmAMBNWli0nhszQ2lh0VZHAWBChZ7NBABWyPXx168NWlgdA4BJjMwAgJvg40c1cMlMBR8/anUUACZQZgDATVB2pm5f/q6CsjOtjgLABMoMAACwNcoMAACwNcoMAACwNcoMALg55R+oNe3jdco/0OooAExgajYAuDkWEqk5g8dbHQOASYzMAIAbr7N5ij78h7zO5lkdBYAJlBkAcFMzLVmvTLxHNdOSrY4CwATKDAAAsDXKDAAAsDXKDAAAsDXKDACUIt/Ty+oIAExiajYAuEmObaB731hvdQwAJjEyAwAAbI0yAwBuolKTlThpqKJSk62OAsAEygwAuPHOz1PtA7vlnc+b5gF2QJkBAAC2RpkBAAC2RpkBAAC2RpkBADdHQyL174cm6WhIpNVRAJjA+8wAgJsc/0D90PIWq2MAMImRGQBwE5SVqd6rPlBQVqbVUQCYQJkBADfBJ45q8CevK/jEUaujADCBMgMAAGyNMgMAAGyNMgMAAGyNMgMAbs74+mtz0w464+tvdRQAJjA1GwDcHAmN1isjXrI6BgCTGJkBADcehQUKyD4uj8ICq6MAMIEyAwBuYg7t1Vtj+yjm0F6rowAwgTIDAABsjTIDAABsjTIDAABsjTIDAABsjanZAOBmf/R1um/6KuU6fayOAsAEygwAuDGqePCGeYCNcJoJANxEHDmg8a+OUsSRA1ZHAWACZQYA3PjknVazX3+UT95pq6MAMIEyAwAAbI0yAwAAbI0yAwAAbI0yAwBuMoLDNHfgE8oIDrM6CgATmJoNAG6yA4K1sssdVscAYBIjMwDgxj8nSx02Lpd/TpbVUQCYQJkBADehGal6NOk5hWakWh0FgAmUGQAAYGuUGQAAYGuUGQAAYGuUGQBwk+fto921GynPm0/NBuyAqdkA4CY1Ik7PPvWW1TEAmMTIDAAAsDXKDAC4qZWyS4sebqdaKbusjgLABMoMAACwNcoMAACwNcoMAACwNcoMAACwNaZmA4CbQ5G1NPL5j5QZHGp1FAAmUGYAwE2+l1NHwqKtjgHAJFucZnrzzTdVu3Zt+fj4qGXLlvr222+tjgSgEgs9dlgj3klQ6LHDVkcBYEKFLzMffvihRo0apWeeeUZbt25Vx44d1atXL6WkpFgdDUAl5X86Wx1/XCn/09lWRwFgQoUvM9OmTdMDDzygYcOGqWHDhpo+fbpiYmI0c+ZMq6MBAIAKoEKXmbNnz+qnn35Sjx49ii3v0aOHvv/+e4tSAQCAiqRCXwB87NgxFRYWKjw8vNjy8PBwpaWllfqcvLw85eXlue6fPHlSkpSVlXVVMuafybkq2wVgnby8M8r6/7/yOw5c3NX6/+v57RqGccl1K3SZOc/hcBS7bxhGiWXnJSYmauLEiSWWx8TEXJVsACqn6ZL0ynCLUwAV3+JRV3f72dnZCgoKuug6FbrM1KhRQx4eHiVGYdLT00uM1pw3fvx4jRkzxnW/qKhImZmZCgkJuWABKqusrCzFxMTowIEDCgwMLNdt4/9wnK8NjvO1wXG+NjjO18bVPM6GYSg7O1tRUVGXXLdClxlvb2+1bNlSq1atUr9+/VzLV61apb59+5b6HKfTKafTWWxZtWrVrmZMBQYG8styDXCcrw2O87XBcb42OM7XxtU6zpcakTmvQpcZSRozZozuvfdetWrVSm3bttWcOXOUkpKiRx55xOpoAACgAqjwZWbAgAHKyMjQc889p9TUVDVu3Fhffvml4uLirI4GAAAqgApfZiRp+PDhGj684l2I53Q6NWHChBKntVC+OM7XBsf52uA4Xxsc52ujohxnh2FmzhMAAEAFVaHfNA8AAOBSKDMAAMDWKDMAAMDWKDMAAMDWKDNl8M033yg+Pl5RUVFyOBz69NNPrY5U6SQmJupvf/ubAgICFBYWpttvv127du2yOlalNHPmTDVt2tT1pldt27bVV199ZXWsSi0xMVEOh0OjRo2yOkqlk5CQIIfDUewWERFhdaxK6dChQ7rnnnsUEhIiPz8/3Xjjjfrpp58syUKZKYOcnBw1a9ZMM2bMsDpKpbV+/XqNGDFCGzdu1KpVq1RQUKAePXooJ4cP/Stv0dHRevHFF7V582Zt3rxZt9xyi/r27audO3daHa1S2rRpk+bMmaOmTZtaHaXSatSokVJTU123HTt2WB2p0jl+/Ljat28vLy8vffXVV/r11181derUq/6O+xdii/eZqWh69eqlXr16WR2jUlu+fHmx+0lJSQoLC9NPP/2km2++2aJUlVN8fHyx+y+88IJmzpypjRs3qlGjRhalqpxOnTqlu+++W2+99ZYmTZpkdZxKy9PTk9GYq2zKlCmKiYlRUlKSa1mtWrUsy8PIDGzh5MmTkqTq1atbnKRyKyws1KJFi5STk6O2bdtaHafSGTFihPr06aNu3bpZHaVS27Nnj6KiolS7dm0NHDhQf/zxh9WRKp2lS5eqVatW+sc//qGwsDA1b95cb731lmV5KDOo8AzD0JgxY9ShQwc1btzY6jiV0o4dO1S1alU5nU498sgjWrJkiW644QarY1UqixYt0pYtW5SYmGh1lEqtdevWWrBggVasWKG33npLaWlpateunTIyMqyOVqn88ccfmjlzpurVq6cVK1bokUce0eOPP64FCxZYkofTTKjwHn30UW3fvl3fffed1VEqrQYNGmjbtm06ceKE/vOf/2jIkCFav349haacHDhwQCNHjtTKlSvl4+NjdZxK7c+XADRp0kRt27ZV3bp1NX/+fI0ZM8bCZJVLUVGRWrVqpcmTJ0uSmjdvrp07d2rmzJkaPHjwNc/DyAwqtMcee0xLly7V2rVrFR0dbXWcSsvb21vXXXedWrVqpcTERDVr1kyvvvqq1bEqjZ9++knp6elq2bKlPD095enpqfXr1+u1116Tp6enCgsLrY5Yafn7+6tJkybas2eP1VEqlcjIyBJ/7DRs2FApKSmW5GFkBhWSYRh67LHHtGTJEq1bt061a9e2OtJfimEYysvLszpGpdG1a9cSM2ruu+8+XX/99XryySfl4eFhUbLKLy8vT7/99ps6duxodZRKpX379iXeLmP37t2Ki4uzJA9lpgxOnTql33//3XV/37592rZtm6pXr67Y2FgLk1UeI0aM0MKFC/XZZ58pICBAaWlpkqSgoCD5+vpanK5yefrpp9WrVy/FxMQoOztbixYt0rp160rMKEPZBQQElLjey9/fXyEhIVwHVs7Gjh2r+Ph4xcbGKj09XZMmTVJWVpaGDBlidbRKZfTo0WrXrp0mT56su+66Sz/++KPmzJmjOXPmWBPIwGVbu3atIanEbciQIVZHqzRKO76SjKSkJKujVTr333+/ERcXZ3h7exuhoaFG165djZUrV1odq9Lr1KmTMXLkSKtjVDoDBgwwIiMjDS8vLyMqKsro37+/sXPnTqtjVUqff/650bhxY8PpdBrXX3+9MWfOHMuyOAzDMKypUQAAAFeOC4ABAICtUWYAAICtUWYAAICtUWYAAICtUWYAAICtUWYAAICtUWYAAICtUWYAlDuHw6FPP/3U6hhXVXJyshwOh7Zt22Z1FOAvjzIDwJShQ4fK4XDI4XDIy8tL4eHh6t69u+bOnauioqJi66amphb79OLylpCQ4MpSpUoVRUVF6e6779aBAweu2j4vZd26dXI4HDpx4oRlGYC/KsoMANN69uyp1NRUJScn66uvvlKXLl00cuRI3XrrrSooKHCtFxERIafTeVWzNGrUSKmpqTp48KA+/PBD7dixQ3fddddV3SeAiokyA8A0p9OpiIgI1axZUy1atNDTTz+tzz77TF999ZXmzZvnWs/9NNPBgwc1cOBAVa9eXf7+/mrVqpV++OEH1+Off/65WrZsKR8fH9WpU0cTJ04sVo5K4+npqYiICEVFRaljx4568MEHtXHjRmVlZZnebkJCgmJjY+V0OhUVFaXHH3/8gt+DJFWrVq3Y93lecnKyunTpIkkKDg6Ww+HQ0KFDL5ofQPnhU7MBXJFbbrlFzZo10+LFizVs2LASj586dUqdOnVSzZo1tXTpUkVERGjLli2uU1MrVqzQPffco9dee00dO3bU3r179dBDD0mSJkyYYCpDWlqaFi9eLA8PD3l4eJja7ieffKJ///vfWrRokRo1aqS0tDT9/PPPZToGMTEx+s9//qM77rhDu3btUmBgIJ/uDlxDlBkAV+z666/X9u3bS31s4cKFOnr0qDZt2qTq1atLkq677jrX4y+88IKeeuopDRkyRJJUp04dPf/88xo3btxFy8yOHTtUtWpVFRUV6cyZM5Kkxx9/XP7+/qa2m5KSooiICHXr1k1eXl6KjY3VTTfdVKbv38PDw/W9hYWFqVq1amXaDoCyocwAuGKGYcjhcJT62LZt29S8eXPX/+zd/fTTT9q0aZNeeOEF17LCwkLl5ubq9OnT8vPzK/V5DRo00NKlS5WXl6fPPvtMH3/8cbFtXGq7//jHPzR9+nTVqVNHPXv2VO/evRUfHy9PT/5ZBOyG31oAV+y3335T7dq1S33sUqdbioqKNHHiRPXv37/EYz4+Phd8nre3t2uEp1GjRtqzZ4/+9a9/6d133zW13ZiYGO3atUurVq3S6tWrNXz4cL388stav369vLy85HA4ZBhGsefl5+df9HsBYA3KDIArsmbNGu3YsUOjR48u9fGmTZvq7bffVmZmZqmjMy1atNCuXbuKnXoqi//93/9V/fr1NXr0aLVo0cLUdn19fXXbbbfptttu04gRI3T99ddrx44datGihUJDQ5Wamupad8+ePTp9+vQFt+Xt7S3p3OgPgGuLMgPAtLy8PKWlpamwsFBHjhzR8uXLlZiYqFtvvVWDBw8u9Tn//Oc/NXnyZN1+++1KTExUZGSktm7dqqioKLVt21bPPvusbr31VsXExOgf//iHqlSpou3bt2vHjh2aNGmS6Wx16tRR37599eyzz+qLL7645HbnzZunwsJCtW7dWn5+fnr33Xfl6+uruLg4SecubJ4xY4batGmjoqIiPfnkk/Ly8rrg/uPi4uRwOPTFF1+od+/e8vX1VdWqVS/vAAMoGwMATBgyZIghyZBkeHp6GqGhoUa3bt2MuXPnGoWFhcXWlWQsWbLEdT85Odm44447jMDAQMPPz89o1aqV8cMPP7geX758udGuXTvD19fXCAwMNG666SZjzpw5F8wyYcIEo1mzZiWW//e//zUkGRs3brzkdpcsWWK0bt3aCAwMNPz9/Y02bdoYq1evdm3r0KFDRo8ePQx/f3+jXr16xpdffmkEBQUZSUlJhmEYxr59+wxJxtatW13Pee6554yIiAjD4XAYQ4YMMXlkAVwph2G4nRQGAACwEd40DwAA2BplBgAA2BplBgAA2BplBgAA2BplBgAA2BplBgAA2BplBgAA2BplBgAA2BplBgAA2BplBgAA2BplBgAA2BplBgAA2Nr/B1A32lSyId8uAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# your code here\n", + "\n", + "ax = df_sorted100['value'].plot.hist(bins=6, alpha=0.75, title='Frequency Distribution of Dice Rolls')\n", + "\n", + "# Set the labels\n", + "ax.set_xlabel('Dice Result')\n", + "ax.set_ylabel('Frequency')\n", + "\n", + "\n", + "#adding a line\n", + "plt.axvline(mean(rolls100), color='red', linestyle='dashed', linewidth=1)\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "\"\"\"\n", + "the bigger our sample size, or population the closer each bar should get to 100/6 and because our histogram is sorted it should\n", + "always be between bins 3 and 4. The bigger our sample size, the closer our dotted red line should get to 3.5.\n", + "\"\"\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 5.- Read the `roll_the_dice_thousand.csv` from the `data` folder. Plot the frequency distribution as you did before. Has anything changed? Why do you think it changed?" + ] + }, + { + "cell_type": "code", + "execution_count": 83, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3.447\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjsAAAHFCAYAAAAUpjivAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABHyklEQVR4nO3deZzO9eL//+dllmsWM2P2hZkhobJlOdkSkyVDo6iDow4K1SERPpX6ndCRSUWKkjqMPaqDlCKylFM6lhQ6X0l2M0aD2Zgxy/v3R8dVlxnbNOb9nneP++32vnG9t+t5XWPGc17v5XIYhmEIAADApqqYHQAAAOBaouwAAABbo+wAAABbo+wAAABbo+wAAABbo+wAAABbo+wAAABbo+wAAABbo+wAAABbo+zAsubMmSOHw1HqNHr0aLPj2cqF77WPj4+ioqKUkJCg5ORkpaenl9hm3LhxcjgcV/U8Z86c0bhx47Rhw4ar2q6056pZs6buvPPOq9rP5SxatEhTp04tdZnD4dC4cePK9fnK22effabmzZvL399fDodDy5cvL3W9AwcOuH29vby8FBoaqj/96U96/PHHtXv37hLbbNiwQQ6H46q/dr9XzZo13bL6+/uradOmmj59usr6AQA1a9bUgAEDXI/Pvx9z5swpn9CwHE+zAwCXk5KSohtuuMFtXkxMjElp7O38e11QUKD09HRt2rRJkyZN0ssvv6wlS5aoY8eOrnUHDRqkLl26XNX+z5w5o/Hjx0uS2rdvf8XbleW5ymLRokXatWuXRowYUWLZV199pRo1alzzDGVlGIZ69eqlunXrasWKFfL391e9evUuuc2wYcPUt29fFRcX6/Tp0/rmm280e/ZsTZs2TcnJyfq///s/17pNmzbVV199pZtuuulav5QS2rRpo5dfflmSdOzYMU2ZMkXDhg1TVlaWnn766QrPg8qHsgPLa9CggZo3b35F6xYUFMjhcMjTk3/aZXHhe33PPffo8ccf16233qqePXtq7969ioyMlCTVqFHjmv/nf+bMGfn5+VXIc11Oy5YtTX3+yzl27JhOnjypHj16qEOHDle0TVxcnNvr6tq1q0aOHKmePXvqiSeeUIMGDZSYmChJCgwMNO09qFatmttzd+zYUXFxcZo5cyZlB1eEw1iotM4Pq8+fP1+jRo1S9erV5XQ69eOPP0qS1q5dqw4dOigwMFB+fn5q06aNPvvssxL7WblypW6++WY5nU7VqlVLL7/8conDJpca5i7t8MbevXvVt29fRUREyOl06sYbb9Trr79eav533nlHzzzzjGJiYhQYGKiOHTtqz549JZ5n1apV6tChg4KCguTn56cbb7xRycnJkqT58+fL4XDoq6++KrHdc889Jy8vLx07duyy72lp4uLiNHnyZGVnZ2vmzJmu+aUdWlq3bp3at2+v0NBQ+fr6Ki4uTvfcc4/OnDmjAwcOKDw8XJI0fvx412GJ84cTzu9v+/btuvfeexUcHKzatWtf9LnOW7ZsmRo1aiQfHx9dd911eu2119yWnz9Ed+DAAbf5Fx6Wad++vVauXKmDBw+6HTY5r7Sv865du3TXXXcpODhYPj4+uvnmmzV37txSn+dKv86l2bRpkzp06KCAgAD5+fmpdevWWrlypWv5uHHjXGXwySeflMPhUM2aNa9o3xfy9fXVrFmz5OXlpZdeeqnE67jwMNbXX3+tpKQkhYaGysfHR7Vr1y4xMnYl3w9XIzAwUHXr1tXx48fd5p88eVJDhgxR9erV5e3treuuu07PPPOM8vPzr/o5Tpw4oYceekixsbFyOp0KDw9XmzZttHbt2jLnhnn49ReWV1RUpMLCQrd5vx25GTNmjFq1aqU333xTVapUUUREhBYsWKB+/frprrvu0ty5c+Xl5aWZM2fqjjvu0OrVq12/+X722We666671KpVKy1evFhFRUV68cUXS/wQvRrff/+9Wrdu7SoJUVFRWr16tR577DH9/PPPGjt2rNv6Tz/9tNq0aaN//vOfysrK0pNPPqmkpCT997//lYeHhyRp1qxZGjx4sNq1a6c333xTERER+uGHH7Rr1y5JUu/evfXEE0/o9ddfV6tWrVz7Liws1MyZM9WjR4/fdeiva9eu8vDw0Oeff37RdQ4cOKBu3bqpbdu2mj17tqpVq6ajR49q1apVOnfunKKjo7Vq1Sp16dJFAwcO1KBBgyTJVYDO69mzp/r06aNHHnlEubm5l8y1Y8cOjRgxQuPGjVNUVJQWLlyo4cOH69y5c1d9Xtcbb7yhhx56SPv27dOyZcsuu/6ePXvUunVrRURE6LXXXlNoaKgWLFigAQMG6Pjx43riiSfc1r+Sr3NpNm7cqE6dOqlRo0aaNWuWnE6n3njjDSUlJemdd95R7969NWjQIDVu3Fg9e/Z0HZpyOp1X9fp/KyYmRs2aNdOXX36pwsLCi46Url69WklJSbrxxhs1ZcoUxcXF6cCBA/r0009d61zt98OVKCws1OHDh1W3bl3XvLy8PCUkJGjfvn0aP368GjVqpC+++ELJycnasWOHWzm8En/961+1fft2Pf/886pbt65Onz6t7du3KyMj46rzwgIMwKJSUlIMSaVOBQUFxvr16w1Jxm233ea2XW5urhESEmIkJSW5zS8qKjIaN25s3HLLLa55LVq0MGJiYoyzZ8+65mVlZRkhISHGb7899u/fb0gyUlJSSuSUZIwdO9b1+I477jBq1KhhZGZmuq336KOPGj4+PsbJkycNwzBc+bt27eq23rvvvmtIMr766ivDMAwjOzvbCAwMNG699VajuLj4ou/X2LFjDW9vb+P48eOueUuWLDEkGRs3brzodobx63u9ZcuWi64TGRlp3HjjjW7P99v36P333zckGTt27LjoPk6cOFHi/bpwf88+++xFl/1WfHy84XA4Sjxfp06djMDAQCM3N9ftte3fv99tvfPv//r1613zunXrZsTHx5ea/cLcffr0MZxOp3Ho0CG39RITEw0/Pz/j9OnTbs9zua/zxbRs2dKIiIgwsrOzXfMKCwuNBg0aGDVq1HD9mzj/b/Sll1665P6udN3evXsbklz/nkp7v2rXrm3Url3b7fvnQlf6/XAx8fHxRteuXY2CggKjoKDAOHjwoDF48GDDy8vL+Oijj1zrvfnmm4Yk491333XbftKkSYYk49NPP3XbZ//+/Uu8H7/9/q5ataoxYsSIS2ZD5cFhLFjevHnztGXLFrfpt79p3nPPPW7rf/nllzp58qT69++vwsJC11RcXKwuXbpoy5Ytys3NVW5urrZs2aKePXvKx8fHtX1AQICSkpLKlDUvL0+fffaZevToIT8/P7fn79q1q/Ly8rR582a3bbp37+72uFGjRpKkgwcPul5PVlaWhgwZcsmrn/72t79Jkt5++23XvOnTp6thw4a67bbbyvR6fsu4zJUvN998s7y9vfXQQw9p7ty5+umnn8r0PBd+PS+lfv36aty4sdu8vn37KisrS9u3by/T81+pdevWqUOHDoqNjXWbP2DAAJ05c6bEIcXLfZ1Lk5ubq6+//lr33nuvqlat6prv4eGhv/71rzpy5MgVHwq7Wpf7ev/www/a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99mZMmWKUlJStGfPHnXt2lXz5s1T165dVaXKL92pVq1amjlzpm644YZyDQsAl2JUqaLCKt5mxwBgMWUa2ZkxY4b69u2rQ4cOafny5brzzjtdRee8uLg4zZo1q1xCAsCViD5+SM9OHqro44fMjgLAQso0srN3797LruPt7a3+/fuXZfcAUCbO/LO66Ydv5Mw/a3YUABZSppGdlJQUvffeeyXmv/fee5o7d+7vDgUAAFBeylR2XnjhBYWFhZWYHxERoYkTJ/7uUAAAAOWlTGXn4MGDqlWrVon58fHxOnSIY+UAAMA6ylR2IiIi9N1335WY/+233yo0NPSK9/P5558rKSlJMTExcjgcWr58udtywzA0btw4xcTEyNfXV+3bt9fu3bvd1snPz9ewYcMUFhYmf39/de/eXUeOHCnLywJQyWWERGrmX59SRkik2VEAWEiZyk6fPn302GOPaf369SoqKlJRUZHWrVun4cOHq0+fPle8n9zcXDVu3FjTp08vdfmLL76oKVOmaPr06dqyZYuioqLUqVMnZWdnu9YZMWKEli1bpsWLF2vTpk3KycnRnXfeqaKiorK8NACVWHbValp/a3dlV61mdhQAFlKmq7EmTJiggwcPqkOHDvL0/GUXxcXF6tev31Wds5OYmKjExMRSlxmGoalTp+qZZ55Rz549JUlz585VZGSkFi1apIcffliZmZmaNWuW5s+fr44dO0qSFixYoNjYWK1du1Z33HFHWV4egEoqIOe0mu/4XFtvvo3CA8ClTCM73t7eWrJkif7f//t/WrhwoZYuXap9+/Zp9uzZ8vYunxt67d+/X2lpaercubNrntPpVLt27fTll19KkrZt26aCggK3dWJiYtSgQQPXOgD+OEJPHtfD819Q6MnjZkcBYCFlGtk5r27duqpbt255ZXGTlpYmSYqMdD/2HhkZqYMHD7rW8fb2VnBwcIl1zm9fmvz8fOXn57seZ2VllVdsAABgMWUqO0VFRZozZ44+++wzpaenq7i42G35unXryiWcJDkcDrfHhmGUmHehy62TnJys8ePHl0s+AABgbWU6jDV8+HANHz5cRUVFatCggRo3buw2lYeoqChJKjFCk56e7hrtiYqK0rlz53Tq1KmLrlOaMWPGKDMz0zUdPny4XDIDAADrKdPIzuLFi/Xuu++qa9eu5Z3HpVatWoqKitKaNWvU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5eWlyMhIderUSbNnz1ZxcbHbuqmpqW6fPl3exo0b58pSpUoVxcTE6L777tPhw4ev2XNezoYNG+RwOHT69GnTMgB/RJQdAOWqS5cuSk1N1YEDB/TJJ58oISFBw4cP15133qnCwkLXelFRUXI6ndc0S/369ZWamqojR45oyZIl2rlzp3r16nVNnxOA9VB2AJQrp9OpqKgoVa9eXU2bNtXTTz+tDz74QJ988onmzJnjWu/Cw1hHjhxRnz59FBISIn9/fzVv3lxff/21a/mHH36oZs2aycfHR9ddd53Gjx/vVp5K4+npqaioKMXExKht27YaPHiwNm/erKysrCve77hx4xQXFyen06mYmBg99thjF30NklStWjW313negQMHlJCQIEkKDg6Ww+HQgAEDLpkfQPngU88BXHO33367GjdurKVLl2rQoEEllufk5Khdu3aqXr26VqxYoaioKG3fvt116Gv16tW6//779dprr6lt27bat2+fHnroIUnS2LFjryhDWlqali5dKg8PD3l4eFzRft9//3298sorWrx4serXr6+0tDR9++23ZXoPYmNj9a9//Uv33HOP9uzZo8DAQPn6+pZpXwCuDmUHQIW44YYb9N1335W6bNGiRTpx4oS2bNmikJAQSdL111/vWv7888/rqaeeUv/+/SVJ1113nf7xj3/oiSeeuGTZ2blzp6pWrari4mKdPXtWkvTYY4/J39//ivZ76NAhRUVFqWPHjvLy8lJcXJxuueWWMr1+Dw8P12uLiIhQtWrVyrQfAFePsgOgQhiGIYfDUeqyHTt2qEmTJq4ycKFt27Zpy5Ytev75513zioqKlJeXpzNnzsjPz6/U7erVq6cVK1YoPz9fH3zwgd577z23fVxuv3/+8581depUXXfdderSpYu6du2qpKQkeXryoxOoTPiOBVAh/vvf/6pWrVqlLrvc4Zzi4mKNHz9ePXv2LLHMx8fnott5e3u7Rojq16+vvXv36m9/+5vmz59/RfuNjY3Vnj17tGbNGq1du1ZDhgzRSy+9pI0bN8rLy0sOh0OGYbhtV1BQcMnXAqDiUXYAXHPr1q3Tzp079fjjj5e6vFGjRvrnP/+pkydPljq607RpU+3Zs8ft0FZZ/P3vf1fdunX1+OOPq2nTple0X19fX3Xv3l3du3fX0KFDdcMNN2jnzp1q2rSpwsPDlZqa6lp37969OnPmzEX35e3tLemX0SMAFYeyA6Bc5efnKy0tTUVFRTp+/LhWrVql5ORk3XnnnerXr1+p2/zlL3/RxIkTdffddys5OVnR0dH65ptvFBMTo1atWunZZ5/VnXfeqdjYWP35z39WlSpV9N1332nnzp2aMGHCFWe77rrrdNddd+nZZ5/VRx99dNn9zpkzR0VFRWrRooX8/Pw0f/58+fr6Kj4+XtIvJ15Pnz5dLVu2VHFxsZ588kl5eXld9Pnj4+PlcDj00UcfqWvXrvL19VXVqlWv7g0GcPUMACgn/fv3NyQZkgxPT08jPDzc6NixozF79myjqKjIbV1JxrJly1yPDxw4YNxzzz1GYGCg4efnZzRv3tz4+uuvXctXrVpltG7d2vD19TUCAwONW265xXjrrbcummXs2LFG48aNS8z/97//bUgyNm/efNn9Llu2zGjRooURGBho+Pv7Gy1btjTWrl3r2tfRo0eNzp07G/7+/kadOnWMjz/+2AgKCjJSUlIMwzCM/fv3G5KMb775xrXNc889Z0RFRRkOh8Po37//Fb6zAH4Ph2FccMAZAADARripIAAAsDXKDgAAsDXKDgAAsDXKDgAAsDXKDgAAsDXKDgAAsDXKDgAAsDXKDgAAsDXKDgAAsDXKDgAAsDXKDgAAsDXKDgAAsLX/H8Pm3W+uDnk3AAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# your code here\n", + "df_1000 = pd.read_csv(\"../data/roll_the_dice_thousand.csv\")\n", + "#I learned we can use ../ to go one folder back for the import just like in bash\n", + "\n", + "#df_100.shape\n", + "rolls1000 = df_1000['value'].tolist()\n", + "\n", + "print(mean(rolls1000))\n", + "\n", + "#display(df_1000.head(10))\n", + "\n", + "#copy pasting from earlier:\n", + "df_sorted1000 = df_1000.sort_values(by=\"value\", inplace=False)\n", + "\n", + "df_sorted1000 = df_sorted1000.reset_index(drop=True)\n", + "\n", + "ax = df_sorted1000['value'].plot.hist(bins=6, alpha=0.75, title='Frequency Distribution of Dice Rolls')\n", + "\n", + "# Set the labels\n", + "ax.set_xlabel('Dice Result')\n", + "ax.set_ylabel('Frequency')\n", + "\n", + "\n", + "#adding a line\n", + "plt.axvline(mean(rolls1000), color='red', linestyle='dashed', linewidth=1)\n", + "\n", + "plt.show()\n", + "\n", + "# Display the plot\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "\"\"\"\n", + "I answered this above\n", + "\"\"\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Challenge 4\n", + "In the `data` folder of this repository you will find three different files with the prefix `ages_population`. These files contain information about a poll answered by a thousand people regarding their age. Each file corresponds to the poll answers in different neighbourhoods of Barcelona.\n", + "\n", + "#### 1.- Read the file `ages_population.csv`. Calculate the frequency distribution and plot it as we did during the lesson. Try to guess the range in which the mean and the standard deviation will be by looking at the plot. " + ] + }, + { + "cell_type": "code", + "execution_count": 91, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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PXpUR48eVadOnRQUFOR0Kats/2U3ppfx9fUt19Ovv/6qDz74oNzvfpMmTSSV/90HyvBICXAeZ57tCA8PlyS9/PLLZ32CJjIy0vHkVk5OTrn1Z46VnfkpKipyGj/zD02NGjUc/9c9bNiwCo8dFxd3jm7KK7upt+z+nHMZNWqUFi5cqPfff18fffSRrrzySt13332VOl5FVq1apZKSkvM+Ln7rrbfq1ltvVUlJib755hu9/PLLSklJUWRkpJKTky/oWJX57J5zvXdlf4jP9t5d7B/emjVrVvi5NGU3gpf9Hl6MGjVqqFq1am4/zpo1axxnlM4MLJL01Vdf6fvvv9d1113nWP/rr7/qqquucswpLi4u9/sfHh6uZs2a6bnnnqvwuHxkBM6GsANU0i233KIrr7xS33///TnPavj7++vmm29Wenq6pk2b5vijWFBQoA8++MBpbmRkpKpXr65t27Y5jb///vtOrwMDA9WxY0d99913atasmfz9/S+6n4SEBIWGhmrOnDlKTk4+Zxho0aKFEhISNHXqVO3YsUOPPPKIgoKCLur4+/bt09ixYxUaGqohQ4Zc0DY+Pj5q1aqVGjdurLfeekvffvutkpOTL+hsRmXs3LlTW7dudbqUtXjxYgUHB+vGG2+UJMdTSdu2bXP63JmVK1eW25/dbr/g2hITE7V8+XL98ssvTn/EFyxYoMDAQLc8qh4UFKRWrVopPT1dL7zwggICAiT9fmZm0aJFql27tho2bFjp/c6dO1fVqlVTenq6QkNDndYdOHBADzzwgN5880298MILjkugy5Ytc/xMJendd98t97BAz549tXr1atWvX181atSodF24fBF2gEq64oor9PLLL6t///46fPiw7rrrLkVEROjgwYPaunWrDh48qNmzZ0uS/vGPf6hr167q3LmzxowZo5KSEk2dOlVBQUE6fPiwY582m03333+/3nzzTdWvX1/NmzfX119/rcWLF5c7/j//+U+1bdtWt956qx599FHVq1dPBQUF+vHHH/XBBx9o7dq1le5n+vTpGjx4sDp16qSHH35YkZGR+vHHH7V161bNmjXLaf6oUaPUr18/2Ww2DR06tFLH2rFjh+M+i9zcXH3xxRdKS0uTj4+Pli9f7jjLVJE5c+Zo7dq16tGjh+rWrauTJ0/qzTfflCTHhxEGBwcrNjZW77//vhITExUWFqbw8PALeky6IjExMbr99ts1ceJERUdHa9GiRcrIyNDUqVMVGBgoSbrpppvUqFEjjR07VsXFxapRo4aWL19e4SPWTZs2VXp6umbPnq0WLVqoWrVqZ/2MpwkTJjjuUfn73/+usLAwvfXWW1q1apWef/75ciHCVampqercubM6duyosWPHyt/fX6+88op27NihJUuWVPpTrA8dOqT3339fXbp00R133FHhnBdffFELFixQamqqmjRponvuuUfTp0+Xj4+PbrvtNu3cuVPTp09XaGioqlX7v7stnnnmGWVkZCghIUEjR45Uo0aNdPLkSe3Zs0erV6/WnDlzPP55SaiiPHyDNOAx53tCqOwpl3feeafC9ZmZmaZHjx4mLCzM+Pn5mauuusr06NGj3PyVK1eaZs2aGX9/f1O3bl0zZcqUCp/+ycvLM4MHDzaRkZEmKCjI9OrVy+zZs6fCp4uysrLMwIEDzVVXXWX8/PxMrVq1TEJCgnn22WfPW//ZnvxavXq142mZwMBAc91115mpU6eW67uoqMjY7XbTtWvXCn8uFTnzyTd/f38TERFh2rdvbyZPnmxyc3PLbXPmz2jjxo2md+/eJjY21tjtdlOzZk3Tvn17s3LlSqft1qxZY2644QZjt9udnuYp29/BgwfPeyxjfn8aq0ePHubdd981TZo0Mf7+/qZevXpmxowZ5bb/4YcfTFJSkgkJCTG1atUyI0aMMKtWrSr3NNbhw4fNXXfdZa688kpjs9mcjlnR+7x9+3bTq1cvExoaavz9/U3z5s3LvW+VfZ8r8sUXX5jbbrvNBAUFmYCAANO6dWvzwQcfVLi/8z2NNXPmTCPJrFix4qxz5syZYySZ9957zxhjzMmTJ83o0aNNRESEqV69umndurXZuHGjCQ0NNY899pjTtgcPHjQjR440cXFxxs/Pz4SFhZkWLVqY8ePHm2PHjp23V1yebMac5xEIAG43ceJETZo06bxPIFVFH3zwgW6//XatWrXKcVM04G4bNmzQLbfcorfeekv33nuvp8uBl+MyFoAL8v3332vv3r0aM2aMrr/+esfjvsDFysjI0MaNG9WiRQsFBARo69atmjJliho0aKA+ffp4ujxYAGEHwAUZOnSovvzyS914442aP39+pe/lAM4mJCREn3zyiWbOnKmCggKFh4erW7duSk1NdfqMKsBVXMYCAACW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c38rV640q1atMrt27TK7du0yTz31lPHz8zM7duwwxnh3b3/09ddfm3r16plmzZqZUaNGOca9ub8JEyaYJk2amOzsbMeSm5vrWO/NvRljzOHDh01sbKwZMGCA+c9//mOysrLMmjVrzI8//uiY48095ubmOr13GRkZRpJZt26dMca7e3v22WdNzZo1zb///W+TlZVl3nnnHXPFFVeYmTNnOuZ4S3+EnYt08803m7/+9a9OY40bNzZPPvmkhypyjzPDTmlpqYmKijJTpkxxjJ08edKEhoaaOXPmeKDCi5Obm2skmczMTGOM9fozxpgaNWqYN954wzK9FRQUmAYNGpiMjAzTvn17R9jx9v4mTJhgmjdvXuE6b+/NGGOeeOIJ07Zt27Out0KPfzRq1ChTv359U1pa6vW99ejRwwwcONBprE+fPub+++83xnjXe8dlrItw6tQpbd68WUlJSU7jSUlJ2rBhg4equjSysrKUk5Pj1Kvdblf79u29ste8vDxJUlhYmCRr9VdSUqKlS5eqsLBQbdq0sUxvw4YNU48ePdSpUyencSv0t3v3bsXExCguLk7Jycn66aefJFmjt5UrV6ply5b6y1/+ooiICN1www16/fXXHeut0GOZU6dOadGiRRo4cKBsNpvX99a2bVt9+umn+uGHHyRJW7du1fr169W9e3dJ3vXeWeYTlD3ht99+U0lJSblvV4+MjCz3Lezerqyfinrdu3evJ0pymTFGo0ePVtu2bRUfHy/JGv1t375dbdq00cmTJ3XFFVdo+fLluu666xz/0fHm3pYuXapvv/1WmzZtKrfO29+7Vq1aacGCBWrYsKF+/fVXPfvss0pISNDOnTu9vjdJ+umnnzR79myNHj1aTz31lL7++muNHDlSdrtdDz74oCV6LLNixQodPXpUAwYMkOT9v5tPPPGE8vLy1LhxY/n4+KikpETPPfec7rnnHkne1R9hxw1sNpvTa2NMuTGrsEKvw4cP17Zt27R+/fpy67y5v0aNGmnLli06evSo3nvvPfXv31+ZmZmO9d7a2/79+zVq1Ch98sknql69+lnneWt/3bp1c/xz06ZN1aZNG9WvX1/z589X69atJXlvb5JUWlqqli1bavLkyZKkG264QTt37tTs2bP14IMPOuZ5c49l5s6dq27duikmJsZp3Ft7W7ZsmRYtWqTFixerSZMm2rJli1JSUhQTE6P+/fs75nlDf1zGugjh4eHy8fEpdxYnNze3XNL1dmVPh3h7ryNGjNDKlSu1bt061a5d2zFuhf78/f11zTXXqGXLlkpNTVXz5s31z3/+0+t727x5s3Jzc9WiRQv5+vrK19dXmZmZeumll+Tr6+vowVv7O1NQUJCaNm2q3bt3e/17J0nR0dG67rrrnMauvfZa7du3T5I1/t2TpL1792rNmjUaPHiwY8zbe/t//+//6cknn1RycrKaNm2qBx54QI899phSU1MleVd/hJ2L4O/vrxYtWigjI8NpPCMjQwkJCR6q6tKIi4tTVFSUU6+nTp1SZmamV/RqjNHw4cOVnp6utWvXKi4uzmm9t/dXEWOMioqKvL63xMREbd++XVu2bHEsLVu21H333actW7bo6quv9ur+zlRUVKT//ve/io6O9vr3TpJuueWWch/z8MMPPyg2NlaSdf7dS0tLU0REhHr06OEY8/bejh8/rmrVnGOCj4+P49Fzr+rPM/dFW0fZo+dz584133//vUlJSTFBQUFmz549ni6t0goKCsx3331nvvvuOyPJzJgxw3z33XeOx+inTJliQkNDTXp6utm+fbu55557quQjhhV59NFHTWhoqPnss8+cHhM9fvy4Y4439zdu3Djz+eefm6ysLLNt2zbz1FNPmWrVqplPPvnEGOPdvVXkj09jGePd/Y0ZM8Z89tln5qeffjJfffWV6dmzpwkODnb8N8SbezPm948L8PX1Nc8995zZvXu3eeutt0xgYKBZtGiRY46391hSUmLq1q1rnnjiiXLrvLm3/v37m6uuusrx6Hl6eroJDw83jz/+uGOOt/RH2HGDf/3rXyY2Ntb4+/ubG2+80fE4s7dZt26dkVRu6d+/vzHm98cMJ0yYYKKioozdbjft2rUz27dv92zRF6iiviSZtLQ0xxxv7m/gwIGO38FatWqZxMRER9Axxrt7q8iZYceb+yv7XBI/Pz8TExNj+vTpY3bu3OlY7829lfnggw9MfHy8sdvtpnHjxua1115zWu/tPX788cdGktm1a1e5dd7cW35+vhk1apSpW7euqV69urn66qvN+PHjTVFRkWOOt/RnM8YYj5xSAgAA+BNwzw4AALA0wg4AALA0wg4AALA0wg4AALA0wg4AALA0wg4AALA0wg4AALA0wg4AALA0wg4Ar7Vhwwb5+Pioa9euni4FQBXGJygD8FqDBw/WFVdcoTfeeEPff/+96tat6+mSAFRBnNkB4JUKCwv19ttv69FHH1XPnj01b948p/UrV65UgwYNFBAQoI4dO2r+/Pmy2Ww6evSoY86GDRvUrl07BQQEqE6dOho5cqQKCwv/3EYAXHKEHQBeadmyZWrUqJEaNWqk+++/X2lpaSo7Ub1nzx7ddddduvPOO7VlyxYNGTJE48ePd9p++/bt6tKli/r06aNt27Zp2bJlWr9+vYYPH+6JdgBcQlzGAuCVbrnlFt19990aNWqUiouLFR0drSVLlqhTp0568skntWrVKm3fvt0x/29/+5uee+45HTlyRFdeeaUefPBBBQQE6NVXX3XMWb9+vdq3b6/CwkJVr17dE20BuAQ4swPA6+zatUtff/21kpOTJUm+vr7q16+f3nzzTcf6m266yWmbm2++2en15s2bNW/ePF1xxRWOpUuXLiotLVVWVtaf0wiAP4WvpwsAgMqaO3euiouLddVVVznGjDHy8/PTkSNHZIyRzWZz2ubMk9ilpaUaMmSIRo4cWW7/3OgMWAthB4BXKS4u1oIFCzR9+nQlJSU5revbt6/eeustNW7cWKtXr3Za98033zi9vvHGG7Vz505dc801l7xmAJ7FPTsAvMqKFSvUr18/5ebmKjQ01Gnd+PHjtXr1aqWnp6tRo0Z67LHHNGjQIG3ZskVjxozRgQMHdPToUYWGhmrbtm1q3bq1HnroIT388MMKCgrSf//7X2VkZOjll1/2UHcALgXu2QHgVebOnatOnTqVCzrS72d2tmzZoiNHjujdd99Venq6mjVrptmzZzuexrLb7ZKkZs2aKTMzU7t379att96qG264QU8//bSio6P/1H4AXHqc2QFwWXjuuec0Z84c7d+/39OlAPiTcc8OAEt65ZVXdNNNN6lmzZr68ssvNW3aND5DB7hMEXYAWNLu3bv17LPP6vDhw6pbt67GjBmjcePGebosAB7AZSwAAGBp3KAMAAAsjbADAAAsjbADAAAsjbADAAAsjbADAAAsjbADAAAsjbADAAAsjbADAAAsjbADAAAs7f8DJYdf1wgcnpEAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# your code here\n", + "df_pop = pd.read_csv(\"../data/ages_population.csv\")\n", + "\n", + "df_pop.shape\n", + "df_pop.head(5)\n", + "\n", + "df_popsorted = df_pop.sort_values(by=\"observation\", inplace=False)\n", + "\n", + "df_popsorted = df_popsorted.reset_index(drop=True)\n", + "\n", + "ax = df_popsorted['observation'].plot.hist(bins=10, alpha=0.75, title='Frequency Distribution of Age')\n", + "\n", + "# Set the labels\n", + "ax.set_xlabel('Age')\n", + "ax.set_ylabel('Frequency')\n", + "\n", + "# Display the plot\n", + "plt.show()\n", + "\n", + "\"\"\"\n", + "The mean will be late 30s\n", + "We can figure out an estimate for the standard deviation using the known 68-95-99.7 rule. So 1 stDev from the mean (in either direction)\n", + "will include 68% of the data. My guess is around 15 years (so 38+/-15\n", + "\"\"\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 2.- Calculate the exact mean and standard deviation and compare them with your guesses. Do they fall inside the ranges you guessed?" + ] + }, + { + "cell_type": "code", + "execution_count": 98, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "36.56\n", + "12.816499625976762\n" + ] + } + ], + "source": [ + "# Do I still need to use my methods?\n", + "\n", + "print(df_pop['observation'].mean())\n", + "print(df_pop['observation'].std())\n", + "\n", + "\"\"\"\n", + "close enough for a guess I suppose :)\n", + "\"\"\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 3.- Now read the file `ages_population2.csv` . Calculate the frequency distribution and plot it." + ] + }, + { + "cell_type": "code", + "execution_count": 102, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjsAAAHFCAYAAAAUpjivAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA6UklEQVR4nO3deXQUZd7+/6vJ0iQxiQTIJiHmQUAxgAoom+wEkE3AAwyjgoIysgscFf3OiDMOYRHEkUfAEcO+qBMWH9AxCKJIHFlkdQ6iE7YhMciShACBJPfvD35p7aykCXSn8n6dU+fYVXfd9am7i85lLd02Y4wRAACARVVzdwEAAAA3E2EHAABYGmEHAABYGmEHAABYGmEHAABYGmEHAABYGmEHAABYGmEHAABYGmEHAABYGmEHVdbixYtls9mKnSZPnuzu8iyl8FhXr15d4eHh6tixo+Lj45Wenl5knalTp8pms5VrOxcvXtTUqVP1xRdflGu94rZ15513qlevXuXqpywrV67U3Llzi11ms9k0derUCt1eRfv888/VvHlzBQQEyGazad26dWWuc+DAAdlsNvn4+Cg1NfXmFwkUw9vdBQDulpCQoLvvvttpXmRkpJuqsbaCsb569arS09O1fft2zZgxQ2+88YbWrFmjLl26ONqOGDFC3bt3L1f/Fy9e1GuvvSZJ6tChw3Wv58q2XLFy5UodPHhQEyZMKLIsOTlZderUuek1uMoYo4EDB6pBgwbasGGDAgIC1LBhwzLXe++99yRJubm5Wrp0qV588cWbXSpQBGEHVV5sbKyaN29+XW2vXr0qm80mb2/+6bii8FgPGDBAzz//vNq2bav+/fvryJEjCgsLkyTVqVPnpv/xv3jxovz9/W/JtsrSsmVLt26/LKdOndLZs2fVr18/de7c+brWycnJ0YoVK9S0aVP98ssvev/99wk7cAsuYwEl+OKLL2Sz2bRs2TJNmjRJd9xxh+x2u3788UdJ0ubNm9W5c2cFBQXJ399fbdq00eeff16kn40bN+q+++6T3W5XTEyM3njjjSKXTY4ePSqbzabFixcXWb+4yxtHjhzRkCFDFBoaKrvdrnvuuUf/+7//W2z9q1at0iuvvKLIyEgFBQWpS5cuOnz4cJHtfPrpp+rcubOCg4Pl7++ve+65R/Hx8ZKkZcuWyWazKTk5uch6f/7zn+Xj46NTp06VOabFqVu3rmbPnq2srCwtXLjQMb+4S0tbtmxRhw4dVLNmTfn5+alu3boaMGCALl68qKNHj6p27dqSpNdee81xyWzYsGFO/e3Zs0ePPfaYatSooXr16pW4rQJr165VkyZNVL16df3P//yP/va3vzktL7hEd/ToUaf5BeNfcEmtQ4cO2rhxo44dO+Z0Sa9Ace/zwYMH1bdvX9WoUUPVq1fXfffdpyVLlhS7net9n4uzfft2de7cWYGBgfL391fr1q21ceNGx/KpU6c6wuCLL74om82mO++8s8x+161bpzNnzmjEiBEaOnSofvjhB23fvr1Iu5ycHE2aNEnh4eHy9/dXu3bttHv3bt15552O969AWlqaRo4cqTp16sjX11cxMTF67bXXlJube137iqqJsIMqLy8vT7m5uU7Tb02ZMkXHjx/XggUL9PHHHys0NFTLly9XXFycgoKCtGTJEn3wwQcKCQlRt27dnALP559/rr59+yowMFCrV6/WrFmz9MEHHyghIcHler///nu1aNFCBw8e1OzZs/V///d/6tmzp8aNG+e4hPNbL7/8so4dO6b33ntP7777ro4cOaLevXsrLy/P0WbRokV65JFHlJ+f79jPcePG6eTJk5KkQYMGKTw8vEigys3N1cKFC9WvX78buvT3yCOPyMvLS19++WWJbY4ePaqePXvK19dX77//vj799FNNnz5dAQEBunLliiIiIvTpp59KkoYPH67k5GQlJyfrj3/8o1M//fv311133aUPP/xQCxYsKLWuvXv3asKECXr++ee1du1atW7dWuPHj9cbb7xR7n1855131KZNG4WHhztqKy48Fjh8+LBat26tQ4cO6W9/+5sSExPVqFEjDRs2TDNnzizS/nre5+Js27ZNnTp1UkZGhhYtWqRVq1YpMDBQvXv31po1ayRdu8yXmJgoSRo7dqySk5O1du3aMvd50aJFstvt+v3vf6+nn35aNptNixYtKtLuqaee0ty5c/XUU09p/fr1GjBggPr166fz5887tUtLS9ODDz6of/7zn/rTn/6kTz75RMOHD1d8fLyeeeaZMutBFWaAKiohIcFIKna6evWq2bp1q5Fk2rVr57Redna2CQkJMb1793aan5eXZ5o2bWoefPBBx7yHHnrIREZGmkuXLjnmZWZmmpCQEPPbf34pKSlGkklISChSpyTz6quvOl5369bN1KlTx2RkZDi1GzNmjKlevbo5e/asMcY46n/kkUec2n3wwQdGkklOTjbGGJOVlWWCgoJM27ZtTX5+fonj9eqrrxpfX1/z888/O+atWbPGSDLbtm0rcT1jfh3rnTt3ltgmLCzM3HPPPU7b++0YffTRR0aS2bt3b4l9nD59ush4Fe7vT3/6U4nLfis6OtrYbLYi2+vatasJCgoy2dnZTvuWkpLi1K5g/Ldu3eqY17NnTxMdHV1s7YXrHjx4sLHb7eb48eNO7Xr06GH8/f3N+fPnnbZT1vtckpYtW5rQ0FCTlZXlmJebm2tiY2NNnTp1HMdEwTE6a9asUvsrcPToUVOtWjUzePBgx7z27dubgIAAk5mZ6Zh36NAhI8m8+OKLTuuvWrXKSDJDhw51zBs5cqS57bbbzLFjx5zavvHGG0aSOXTo0HXVhqqHMzuo8pYuXaqdO3c6Tb+9J2fAgAFO7Xfs2KGzZ89q6NChTmeD8vPz1b17d+3cuVPZ2dnKzs7Wzp071b9/f1WvXt2xfsH/Nbvi8uXL+vzzz9WvXz/5+/s7bf+RRx7R5cuX9c033zit06dPH6fXTZo0kSQdO3bMsT+ZmZkaNWpUqU8/Pffcc5Kkv//974558+bNU+PGjdWuXTuX9ue3jDGlLr/vvvvk6+urZ599VkuWLNF//vMfl7ZT+P0szb333qumTZs6zRsyZIgyMzO1Z88el7Z/vbZs2aLOnTsrKirKaf6wYcN08eLFImeFynqfi5Odna1//etfeuyxx3Tbbbc55nt5eemJJ57QyZMnr/tSWGEJCQnKz8/X008/7Zj39NNPKzs723HGSLp2ZkmSBg4c6LT+Y489VuTeuP/7v/9Tx44dFRkZ6XTs9+jRw6kvoDDCDqq8e+65R82bN3eafisiIsLp9c8//yzp2oexj4+P0zRjxgwZY3T27FmdO3dO+fn5Cg8PL7LN4uZdjzNnzig3N1dvv/12kW0/8sgjkqRffvnFaZ2aNWs6vbbb7ZKkS5cuSZJOnz4tSWXeoBsWFqZBgwZp4cKFysvL0/79+/XVV19pzJgxLu3Lb2VnZ+vMmTOlXgqrV6+eNm/erNDQUI0ePVr16tVTvXr19NZbb5VrW4Xfz9KU9t6dOXOmXNstrzNnzhRba8EYFd5+We9zcc6dOydjTLm2cz3y8/O1ePFiRUZGqlmzZjp//rzOnz+vLl26KCAgwOlSVkH/BTemF/D29i6yTz///LM+/vjjIsf+vffeK6nosQ8U4JESoAyFz3bUqlVLkvT222+X+ARNWFiY48mttLS0IssLzys485OTk+M0v/Afmho1ajj+r3v06NHFbjsmJqaUvSmq4KbegvtzSjN+/HgtW7ZM69ev16effqrbb79dv//978u1veJs3LhReXl5ZT4u/vDDD+vhhx9WXl6edu3apbffflsTJkxQWFiYBg8efF3bKs9395T23hX8IS7pvbvRP7w1a9Ys9ntpCm4ELzgOb0SNGjVUrVq1Ct/O5s2bHWeUCgcWSfrmm2/0/fffq1GjRo7lP//8s+644w5Hm9zc3CLHf61atdSkSRP99a9/LXa7fGUESkLYAcqpTZs2uv322/X999+XelbD19dXDz74oBITEzVr1izHH8WsrCx9/PHHTm3DwsJUvXp17d+/32n++vXrnV77+/urY8eO+u6779SkSRP5+vre8P60bt1awcHBWrBggQYPHlxqGGjWrJlat26tGTNm6ODBg3r22WcVEBBwQ9s/fvy4Jk+erODgYI0cOfK61vHy8tJDDz2ku+++WytWrNCePXs0ePDg6zqbUR6HDh3Svn37nC5lrVy5UoGBgXrggQckyfFU0v79+52+d2bDhg1F+rPb7dddW+fOnbV27VqdOnXK6Y/40qVL5e/vXyGPqgcEBOihhx5SYmKi3njjDfn5+Um6dmZm+fLlqlOnjho0aFDufhctWqRq1aopMTFRwcHBTstOnjypJ554Qu+//77eeOMNxyXQNWvWOMZUkj766KMiDwv06tVLmzZtUr169VSjRo1y14Wqi7ADlNNtt92mt99+W0OHDtXZs2f12GOPKTQ0VKdPn9a+fft0+vRpzZ8/X5L0l7/8Rd27d1fXrl01adIk5eXlacaMGQoICNDZs2cdfdpsNj3++ON6//33Va9ePTVt2lTffvutVq5cWWT7b731ltq2bauHH35Yzz33nO68805lZWXpxx9/1Mcff6wtW7aUe39mz56tESNGqEuXLnrmmWcUFhamH3/8Ufv27dO8efOc2o8fP16DBg2SzWbTqFGjyrWtgwcPOu6zSE9P11dffaWEhAR5eXlp7dq1jrNMxVmwYIG2bNminj17qm7durp8+bLef/99SXJ8GWFgYKCio6O1fv16de7cWSEh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e/fu1ciRI/XKK684rX/gwAF169ZN/fv31/79+7VmzRpt375dY8aMccfuALiJuIwFoFJq06aNBg4cqPHjxys3N1cRERFatWqVunTpopdeekkbN27UgQMHHO3/3//7f/rrX/+qc+fO6fbbb9eTTz4pPz8/LVy40NFm+/btat++vbKzs1W9enV37BaAm4AzOwAqncOHD+vbb7/V4MGDJUne3t4aNGiQ3n//fcfyFi1aOK3z4IMPOr3evXu3Fi9erNtuu80xdevWTfn5+UpJSbk1OwLglvB2dwEAUF6LFi1Sbm6u7rjjDsc8Y4x8fHx07tw5GWNks9mc1il8Ejs/P18jR47UuHHjivTPjc6AtRB2AFQqubm5Wrp0qWbPnq24uDinZQMGDNCKFSt09913a9OmTU7Ldu3a5fT6gQce0KFDh3TXXXfd9JoBuBf37ACoVNatW6dBgwYpPT1dwcHBTsteeeUVbdq0SYmJiWrYsKGef/55DR8+XHv37tWkSZN08uRJnT9/XsHBwdq/f79atmypp556Ss8884wCAgL073//W0lJSXr77bfdtHcAbgbu2QFQqSxatEhdunQpEnSka2d29u7dq3Pnzumjjz5SYmKimjRpovnz5zuexrLb7ZKkJk2aaNu2bTpy5Igefvhh3X///frjH/+oiIiIW7o/AG4+zuwAqBL++te/asGCBTpx4oS7SwFwi3HPDgBLeuedd9SiRQvVrFlTX3/9tWbNmsV36ABVFGEHgCUdOXJEr7/+us6ePau6detq0qRJmjJlirvLAuAGXMYCAACWxg3KAADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0gg7AADA0v4/pY7duEqXpgEAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# your code here\n", + "# your code here\n", + "df_pop2 = pd.read_csv(\"../data/ages_population2.csv\")\n", + "\n", + "#display(df_pop2.shape)\n", + "#display(df_pop2.head(5))\n", + "\n", + "df_popsorted2 = df_pop2.sort_values(by=\"observation\", inplace=False)\n", + "\n", + "df_popsorted2 = df_popsorted2.reset_index(drop=True)\n", + "\n", + "ax = df_popsorted2['observation'].plot.hist(bins=10, alpha=0.75, title='Frequency Distribution of Age')\n", + "\n", + "# Set the labels\n", + "ax.set_xlabel('Age')\n", + "ax.set_ylabel('Frequency')\n", + "\n", + "# Display the plot\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 4.- What do you see? Is there any difference with the frequency distribution in step 1?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "\"\"\"\n", + "Yes, the starting age is higher, the oldest age is lower. The average age in this sample is also younger at roughly 27.5\n", + "The range before was close to 80 and now its closer to 15. So the standard deviation should also be much lower in absolute terms\n", + "\"\"\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 5.- Calculate the mean and standard deviation. Compare the results with the mean and standard deviation in step 2. What do you think?" + ] + }, + { + "cell_type": "code", + "execution_count": 103, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "27.155\n", + "2.969813932689186\n" + ] + } + ], + "source": [ + "# your code here\n", + "print(df_pop2['observation'].mean())\n", + "print(df_pop2['observation'].std())\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "\"\"\"\n", + "As expected.\n", + "\"\"\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Challenge 5\n", + "Now is the turn of `ages_population3.csv`.\n", + "\n", + "#### 1.- Read the file `ages_population3.csv`. Calculate the frequency distribution and plot it." + ] + }, + { + "cell_type": "code", + "execution_count": 104, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkAAAAHFCAYAAAAaD0bAAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA9ZUlEQVR4nO3deVRV9f7/8deJ4SgEJCJTKpKplag5VE6l5IhmpQ3SJOaQNy015VeZt6t2LSzTrLyp3RQ1NW1Qs7QBx/JqN+cB7zIsnArEHAAxUeHz+6PF+XYEJzx44OznY629FvuzP3vv9+ccjFefvfc5NmOMEQAAgIVc4+4CAAAArjYCEAAAsBwCEAAAsBwCEAAAsBwCEAAAsBwCEAAAsBwCEAAAsBwCEAAAsBwCEAAAsBwCECxr5syZstlsJS6JiYnuLs+jnPtaV6pUSeHh4YqNjVVSUpKysrKK7TN69GjZbLbLOs/Jkyc1evRorV69+rL2K+lctWrV0j333HNZx7mYefPmadKkSSVus9lsGj16tEvP52orVqxQs2bN5O/vL5vNpsWLF190nx07dshms8nHx0cZGRllXyRwibzdXQDgbsnJybrpppuc2iIjI91UjWcreq3PnDmjrKwsrV27Vq+//rrefPNNLViwQO3bt3f07devnzp37nxZxz958qTGjBkjSWrbtu0l71eac5XGvHnztHPnTg0dOrTYtvXr16t69eplXkNpGWP08MMPq27dulqyZIn8/f1Vr169i+73wQcfSJLOnj2r2bNn64UXXijrUoFLQgCC5cXExKhZs2aX1PfMmTOy2Wzy9uafTmmc+1o/8MADeu6559S6dWv16NFDaWlpCgsLkyRVr169zAPByZMn5efnd1XOdTHNmzd36/kv5rffftPRo0fVvXt3tWvX7pL2yc/P19y5c9WoUSP9/vvvmjFjBgEI5QaXwIDzWL16tWw2mz788EMNHz5c119/vex2u/bs2SNJWr58udq1a6fAwED5+fmpVatWWrFiRbHjLF26VLfeeqvsdruio6P15ptvFrvksnfvXtlsNs2cObPY/iVdGklLS9Ojjz6q0NBQ2e123XzzzfrXv/5VYv0fffSRRo4cqcjISAUGBqp9+/bavXt3sfN8/fXXateunYKCguTn56ebb75ZSUlJkqQPP/xQNptN69evL7bfK6+8Ih8fH/32228XfU1LUrNmTU2YMEG5ubmaNm2ao72ky1IrV65U27ZtVbVqVVWuXFk1a9bUAw88oJMnT2rv3r2qVq2aJGnMmDGOy229e/d2Ot7mzZv14IMPqkqVKqpdu/Z5z1Vk0aJFatiwoSpVqqQbbrhB77zzjtP2ost7e/fudWovev2LLse1bdtWS5cu1b59+5wuBxYp6X3euXOn7rvvPlWpUkWVKlXSrbfeqlmzZpV4nkt9n0uydu1atWvXTgEBAfLz81PLli21dOlSx/bRo0c7AuILL7wgm82mWrVqXfS4ixcv1pEjR9SvXz8lJCTop59+0tq1a4v1y8/P1/DhwxUeHi4/Pz/ddddd2rRpk2rVquV4/4pkZmZqwIABql69unx9fRUdHa0xY8bo7NmzlzRWoAgBCJZXUFCgs2fPOi1/NWLECO3fv19Tp07VF198odDQUM2ZM0cdO3ZUYGCgZs2apY8//ljBwcHq1KmTUwhasWKF7rvvPgUEBGj+/PkaP368Pv74YyUnJ5e63l27dum2227Tzp07NWHCBH355Zfq2rWrBg8e7Lj881cvvfSS9u3bpw8++EDvv/++0tLS1K1bNxUUFDj6TJ8+XV26dFFhYaFjnIMHD9bBgwclST179lR4eHixkHX27FlNmzZN3bt3v6LLhl26dJGXl5e+++678/bZu3evunbtKl9fX82YMUNff/21xo0bJ39/f50+fVoRERH6+uuvJUl9+/bV+vXrtX79er388stOx+nRo4duvPFGffLJJ5o6deoF69q6dauGDh2q5557TosWLVLLli01ZMgQvfnmm5c9xvfee0+tWrVSeHi4o7aSAmWR3bt3q2XLlkpNTdU777yjhQsX6pZbblHv3r31xhtvFOt/Ke9zSdasWaO7775b2dnZmj59uj766CMFBASoW7duWrBggaQ/LxEuXLhQkvTss89q/fr1WrRo0UXHPH36dNntdj322GPq06ePbDabpk+fXqzfk08+qUmTJunJJ5/U559/rgceeEDdu3fX8ePHnfplZmbq9ttv1zfffKN//OMf+uqrr9S3b18lJSWpf//+F60HcGIAi0pOTjaSSlzOnDljVq1aZSSZu+66y2m/vLw8ExwcbLp16+bUXlBQYBo1amRuv/12R9sdd9xhIiMjzR9//OFoy8nJMcHBweav//zS09ONJJOcnFysTklm1KhRjvVOnTqZ6tWrm+zsbKd+zzzzjKlUqZI5evSoMcY46u/SpYtTv48//thIMuvXrzfGGJObm2sCAwNN69atTWFh4Xlfr1GjRhlfX19z6NAhR9uCBQuMJLNmzZrz7mfM/73WGzZsOG+fsLAwc/PNNzud76+v0aeffmokma1bt573GIcPHy72ep17vH/84x/n3fZXUVFRxmazFTtfhw4dTGBgoMnLy3MaW3p6ulO/otd/1apVjrauXbuaqKioEms/t+74+Hhjt9vN/v37nfrFxcUZPz8/c/z4cafzXOx9Pp/mzZub0NBQk5ub62g7e/asiYmJMdWrV3f8ThT9jo4fP/6Cxyuyd+9ec80115j4+HhHW5s2bYy/v7/JyclxtKWmphpJ5oUXXnDa/6OPPjKSTEJCgqNtwIAB5tprrzX79u1z6vvmm28aSSY1NfWSagOMMYYZIFje7NmztWHDBqflr/f4PPDAA079161bp6NHjyohIcFp1qiwsFCdO3fWhg0blJeXp7y8PG3YsEE9evRQpUqVHPsX/d91aZw6dUorVqxQ9+7d5efn53T+Ll266NSpU/rhhx+c9rn33nud1hs2bChJ2rdvn2M8OTk5Gjhw4AWfunr66aclSf/+978dbZMnT1aDBg101113lWo8f2WMueD2W2+9Vb6+vnrqqac0a9Ys/fLLL6U6z7nv54XUr19fjRo1cmp79NFHlZOTo82bN5fq/Jdq5cqVateunWrUqOHU3rt3b508ebLY7NHF3ueS5OXl6b///a8efPBBXXvttY52Ly8vPfHEEzp48OAlX0Y7V3JysgoLC9WnTx9HW58+fZSXl+eYWZL+nIGSpIcffthp/wcffLDYvXZffvmlYmNjFRkZ6fS7HxcX53Qs4FIQgGB5N998s5o1a+a0/FVERITT+qFDhyT9+R9oHx8fp+X111+XMUZHjx7VsWPHVFhYqPDw8GLnLKntUhw5ckRnz57Vu+++W+zcXbp0kST9/vvvTvtUrVrVad1ut0uS/vjjD0nS4cOHJemiNwGHhYWpZ8+emjZtmgoKCrR9+3Z9//33euaZZ0o1lr/Ky8vTkSNHLngZrXbt2lq+fLlCQ0M1aNAg1a5dW7Vr19bbb799Wec69/28kAu9d0eOHLms816uI0eOlFhr0Wt07vkv9j6X5NixYzLGXNZ5LkVhYaFmzpypyMhINW3aVMePH9fx48fVvn17+fv7O10GKzp+0c3vRby9vYuN6dChQ/riiy+K/e7Xr19fUvHffeBCeJQFuIhzZ0VCQkIkSe++++55n9wJCwtzPDGWmZlZbPu5bUUzRPn5+U7t5/7xqVKliuP/zgcNGlTiuaOjoy8wmuKKbhwuut/nQoYMGaIPP/xQn3/+ub7++mtdd911euyxxy7rfCVZunSpCgoKLvro+p133qk777xTBQUF2rhxo959910NHTpUYWFhio+Pv6RzXc5nC13ovSv643y+9+5K/xhXrVq1xM/NKbrZvOj38EpUqVJF11xzjcvPs3z5csfM07khRpJ++OEH7dq1S7fccotj+6FDh3T99dc7+pw9e7bY739ISIgaNmyoV199tcTz8vEVuBwEIOAytWrVStddd5127dp1wdkPX19f3X777Vq4cKHGjx/v+EOZm5urL774wqlvWFiYKlWqpO3btzu1f/75507rfn5+io2N1ZYtW9SwYUP5+vpe8XhatmypoKAgTZ06VfHx8RcMCE2bNlXLli31+uuva+fOnXrqqafk7+9/Reffv3+/EhMTFRQUpAEDBlzSPl5eXrrjjjt00003ae7cudq8ebPi4+MvadbjcqSmpmrbtm1Ol8HmzZungIAANWnSRJIcT0Nt377d6XNxlixZUux4drv9kmtr166dFi1apN9++83pD/vs2bPl5+fnksfm/f39dccdd2jhwoV68803VblyZUl/zuDMmTNH1atXV926dS/7uNOnT9c111yjhQsXKigoyGnbwYMH9cQTT2jGjBl68803HZdPFyxY4HhNJenTTz8t9kDCPffco2XLlql27dqqUqXKZdcF/BUBCLhM1157rd59910lJCTo6NGjevDBBxUaGqrDhw9r27ZtOnz4sKZMmSJJ+uc//6nOnTurQ4cOGj58uAoKCvT666/L399fR48edRzTZrPp8ccf14wZM1S7dm01atRIP/74o+bNm1fs/G+//bZat26tO++8U08//bRq1aql3Nxc7dmzR1988YVWrlx52eOZMGGC+vXrp/bt26t///4KCwvTnj17tG3bNk2ePNmp/5AhQ9SzZ0/ZbDYNHDjwss61c+dOx30bWVlZ+v7775WcnCwvLy8tWrTIMRtVkqlTp2rlypXq2rWratasqVOnTmnGjBmS5PgAxYCAAEVFRenzzz9Xu3btFBwcrJCQkEt6ZLskkZGRuvfeezV69GhFRERozpw5SklJ0euvvy4/Pz9J0m233aZ69eopMTFRZ8+eVZUqVbRo0aISH/du0KCBFi5cqClTpqhp06a65pprzvsZVKNGjXLc8/KPf/xDwcHBmjt3rpYuXao33nijWLAoraSkJHXo0EGxsbFKTEyUr6+v3nvvPe3cuVMfffTRZX8a95EjR/T555+rU6dOuu+++0rs89Zbb2n27NlKSkpS/fr19cgjj2jChAny8vLS3XffrdTUVE2YMEFBQUG65pr/u1PjlVdeUUpKilq2bKnBgwerXr16OnXqlPbu3atly5Zp6tSpbv88J1Qgbr4JG3Cbiz2ZVPR0zSeffFLi9jVr1piuXbua4OBg4+PjY66//nrTtWvXYv2XLFliGjZsaHx9fU3NmjXNuHHjSnzqKDs72/Tr18+EhYUZf39/061bN7N3794Sn2pKT083ffr0Mddff73x8fEx1apVMy1btjRjx469aP3ne+Js2bJljqd0/Pz8zC233GJef/31YuPOz883drvddO7cucTXpSTnPnHn6+trQkNDTZs2bcxrr71msrKyiu1z7mu0fv160717dxMVFWXsdrupWrWqadOmjVmyZInTfsuXLzeNGzc2drvd6SmiouMdPnz4oucy5s+nwLp27Wo+/fRTU79+fePr62tq1aplJk6cWGz/n376yXTs2NEEBgaaatWqmWeffdYsXbq02FNgR48eNQ8++KC57rrrjM1mczpnSe/zjh07TLdu3UxQUJDx9fU1jRo1Kva+Xe77XJLvv//e3H333cbf399UrlzZNG/e3HzxxRclHu9iT4FNmjTJSDKLFy8+b5+pU6caSeazzz4zxhhz6tQpM2zYMBMaGmoqVapkmjdvbtavX2+CgoLMc88957Tv4cOHzeDBg010dLTx8fExwcHBpmnTpmbkyJHmxIkTFx0rUMRmzEUevQDgcqNHj9aYMWMu+uRTefTFF1/o3nvv1dKlSx03XgOutm7dOrVq1Upz587Vo48+6u5y4IG4BAbgkuzatUv79u3T8OHDdeuttzoePQauVEpKitavX6+mTZuqcuXK2rZtm8aNG6c6deqoR48e7i4PHooABOCSDBw4UP/5z3/UpEkTzZo167LvDQHOJzAwUN9++60mTZqk3NxchYSEKC4uTklJSU6foQW4EpfA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GKP8/HyPG2u7du20Y8cObd261bE0a9ZMjz32mLZu3aobbrjBo8b7V/n5+frf//6niIgIj3tfJalVq1bFPq7ip59+UlRUlCTP/HebnJys0NBQde3a1dHmaeM8efKkrrnGOZp4eXk5HoN36XhLd582ihQ9Bj99+nSza9cuM3ToUOPv72/27t3r7tKuWG5urtmyZYvZsmWLkWQmTpxotmzZ4njEf9y4cSYoKMgsXLjQ7NixwzzyyCMV8tHLp59+2gQFBZnVq1c7PWp68uRJRx9PGasxxowYMcJ89913Jj093Wzfvt289NJL5pprrjHffvutMcazxlqSvz4FZoznjHf48OFm9erV5pdffjE//PCDueeee0xAQIDjv0WeMs4iP/74o/H29javvvqqSUtLM3PnzjV+fn5mzpw5jj6eNOaCggJTs2ZN88ILLxTb5knjTEhIMNdff73jMfiFCxeakJAQ8/zzzzv6uGq8BCAX+Ne//mWioqKMr6+vadKkiePx6Ypu1apVRlKxJSEhwRjz5+OIo0aNMuHh4cZut5u77rrL7Nixw71Fl0JJY5RkkpOTHX08ZazGGNOnTx/H72u1atVMu3btHOHHGM8aa0nODUCeMt6iz0Lx8fExkZGRpkePHiY1NdWx3VPG+VdffPGFiYmJMXa73dx0003m/fffd9ruSWP+5ptvjCSze/fuYts8aZw5OTlmyJAhpmbNmqZSpUrmhhtuMCNHjjT5+fmOPq4ar80YY0ozTQUAAFBRcQ8QAACwHAIQAACwHAIQAACwHAIQAACwHAIQAACwHAIQAACwHAIQAACwHAIQAACwHAIQgApr3bp18vLyUufOnd1dCoAKhk+CBlBh9evXT9dee60++OAD7dq1SzVr1nR3SQAqCGaAAFRIeXl5+vjjj/X000/rnnvu0cyZM522L1myRHXq1FHlypUVGxurWbNmyWaz6fjx444+69at01133aXKlSurRo0aGjx4sPLy8q7uQAC4BQEIQIW0YMEC1atXT/Xq1dPjjz+u5ORkFU1o7927Vw8++KDuv/9+bd26VQMGDNDIkSOd9t+xY4c6deqkHj16aPv27VqwYIHWrl2rZ555xh3DAXCVcQkMQIXUqlUrPfzwwxoyZIjOnj2riIgIffTRR2rfvr1efPFFLV26VDt27HD0//vf/65XX31Vx44d03XXXadevXqpcuXKmjZtmqPP2rVr1aZNG+Xl5alSpUruGBaAq4QZIAAVzu7du/Xjjz8qPj5ekuTt7a2ePXtqxowZju233Xab0z6333670/qmTZs0c+ZMXXvttY6lU6dOKiwsVHp6+tUZCAC38XZ3AQBwuaZPn66zZ8/q+uuvd7QZY+Tj46Njx47JGCObzea0z7mT3YWFhRowYIAGDx5c7PjcTA14PgIQgArl7Nmzmj17tiZMmKCOHTs6bXvggQc0d+5c3XTTTVq2bJnTto0bNzqtN2nSRKmpqbrxxhvLvGYA5Q/3AAGoUBYvXqyePXsqKytLQUFBTttGjhypZcuWaeHChapXr56ee+459e3bV1u3btXw4cN18OBBHT9+XEFBQdq+fbuaN2+uJ598Uv3795e/v7/+97//KSUlRe+++66bRgfgauEeIAAVyvTp09W+ffti4Uf6cwZo69atOnbsmD799FMtXLhQDRs21JQpUxxPgdntdklSw4YNtWbNGqWlpenOO+9U48aN9fLLLysiIuKqjgeAezADBMASXn31VU2dOlUHDhxwdykAygHuAQLgkd577z3ddtttqlq1qv7zn/9o/PjxfMYPAAcCEACPlJaWprFjx+ro0aOqWbOmhg8frhEjRri7LADlBJfAAACA5XATNAAAsBwCEAAAsBwCEAAAsBwCEAAAsBwCEAAAsBwCEAAAsBwCEAAAsBwCEAAAsBwCEAAAsJz/Dxoybb80pKenAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# your code here\n", + "# your code here\n", + "df_pop3 = pd.read_csv(\"../data/ages_population3.csv\")\n", + "\n", + "#display(df_pop2.shape)\n", + "#display(df_pop2.head(5))\n", + "\n", + "df_popsorted3 = df_pop3.sort_values(by=\"observation\", inplace=False)\n", + "\n", + "df_popsorted3 = df_popsorted3.reset_index(drop=True)\n", + "\n", + "ax = df_popsorted3['observation'].plot.hist(bins=10, alpha=0.75, title='Frequency Distribution of Age')\n", + "\n", + "# Set the labels\n", + "ax.set_xlabel('Age')\n", + "ax.set_ylabel('Frequency')\n", + "\n", + "# Display the plot\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 2.- Calculate the mean and standard deviation. Compare the results with the plot in step 1. What is happening?" + ] + }, + { + "cell_type": "code", + "execution_count": 106, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "41.989\n", + "16.144705959865934\n" + ] + } + ], + "source": [ + "# your code here\n", + "# your code here\n", + "print(df_pop3['observation'].mean())\n", + "print(df_pop3['observation'].std())" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "\"\"\"\n", + "Our data is a lot less uniform, we have a spike in 60-70 years olds. I would wonder if we have any data input errors \n", + "and some data cleaning to do :)\n", + "\n", + "\"\"\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 3.- Calculate the four quartiles. Use the results to explain your reasoning for question in step 2. How much of a difference is there between the median and the mean?" + ] + }, + { + "cell_type": "code", + "execution_count": 109, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1.0 30.0 40.0 53.0 77.0\n", + "1.9889999999999972\n" + ] + } + ], + "source": [ + "# your code here\n", + "\n", + "Q1 = df_pop3['observation'].quantile(0.25)\n", + "Q2 = df_pop3['observation'].quantile(0.50) #This is also the median\n", + "Q3 = df_pop3['observation'].quantile(0.75)\n", + "Q4 = df_pop3['observation'].max() \n", + "\n", + "min = df_pop3['observation'].min() \n", + "\n", + "print(min, Q1, Q2, Q3, Q4)\n", + "print(df_pop3['observation'].mean() - Q2)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "\"\"\"\n", + "Which question? I guess the \"What is happening?\" question above?\n", + "Well 25% of our 'observations are 30 or lower, 50% 40 or lower, 75% 53 or lower.\n", + "From this we can tell that the mean has a delta of roughly 2 because of the skewed nature of the distribution, it is non-uniform\n", + "We also know it is skewed to the older ages as opposed to the younger ones.\n", + "\"\"\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 4.- Calculate other percentiles that might be useful to give more arguments to your reasoning." + ] + }, + { + "cell_type": "code", + "execution_count": 111, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "13.0 30.0\n" + ] + } + ], + "source": [ + "# your code here\n", + "print(Q3-Q2, Q1)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "\"\"\"\n", + "I don't think its neceassary to calculate other percentiles, we can see that the tail end of the data is more sparse with\n", + "the above calculation. where as Q1 (25% of the data has included ages up till 30. A range of 30 years. the 25% between Q3 and Q2 have a range\n", + "of only 13, which is less than half. So we are looking at a skewed distribution with a spike around the age of 65 (potentially a data \n", + "cleaning error), as we wouldn't expect this in a large enough sample size. Especially if all 3 pop samples are taken from the same population\n", + "We can deduce from Q3 alone that 25% (1-0.75 if we want to be specific) of the observations are over 53. You could check the 90th quantile\n", + "to further confirm the skewness but it is also pretty clear in the histogram :).\n", + "\"\"\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Bonus challenge\n", + "Compare the information about the three neighbourhoods. Prepare a report about the three of them. Remember to find out which are their similarities and their differences backing your arguments in basic statistics." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# your code here" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "\"\"\"\n", + "your comments here\n", + "\"\"\"" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "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": 4 +}