"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "# sort the values to understand what we are going to plot\n",
+ "# Create the bar chart\n",
+ "plt.plot(result['Round'], result['Result'], \"ro\")\n",
+ "\n",
+ "# Add labels and title\n",
+ "plt.xlabel('Round')\n",
+ "plt.ylabel('Result')\n",
+ "plt.title('Results Sorted by Value')\n",
+ "\n",
+ "# Show 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": 4,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "1 2\n",
+ "2 3\n",
+ "3 2\n",
+ "5 2\n",
+ "6 1\n",
+ "Name: Result, dtype: int64"
+ ]
+ },
+ "execution_count": 4,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# your code here\n",
+ "\n",
+ "frequency = result['Result'].value_counts().sort_index()\n",
+ "\n",
+ "frequency"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAHFCAYAAAAOmtghAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAzR0lEQVR4nO3de1gV9b7H8c9S7sglL9wSgdLMS5pJ7TCvkaiYmdXZtruIeXmOaWqip72xzlbSE1rpNrPEK2Se7ljp0UwrwdrqkyhamZmVCinkNVBK5DLnDx/X0wpEWQKzGN+v55k/5je/mfnOgPrxN79Zy2YYhiEAAACLaGR2AQAAALWJcAMAACyFcAMAACyFcAMAACyFcAMAACyFcAMAACyFcAMAACyFcAMAACyFcAMAACyFcAPUsfT0dNlstiqXKVOmmF3eVWH69Omy2WwObZGRkRo+fHiNjrNlyxZNnz5dv/76a432+/O5MjMzZbPZ9N5779XoONX57bffNH36dGVmZlbaduF38ODBg7V2PsCVuZldAHC1SEtL04033ujQFhYWZlI1eP/99+Xv71+jfbZs2aLk5GQNHz5cgYGBdXqumvrtt9+UnJwsSerdu7fDtoEDB2rr1q0KDQ2t0xoAV0G4AepJx44dFR0dfVl9S0tLZbPZ5ObGH9G60qVLlzo/x++//y5vb+96OVd1WrRooRYtWphaA1CfeCwFmOzCI4rXX39dkydP1rXXXitPT0/98MMPkqRPPvlEsbGx8vf3l4+Pj+644w59+umnlY6zdu1a3XzzzfL09FRUVJRefPHFSo9jDh48KJvNpvT09Er722w2TZ8+3aFt//79euihhxQUFCRPT0+1a9dOr7zySpX1v/nmm3r66acVFhYmf39/3XXXXdq3b1+l86xfv16xsbEKCAiQj4+P2rVrp5SUFEnS66+/LpvNpq1bt1ba79lnn5W7u7uOHDlS7f2s6j5U5c+PiioqKjRz5ky1bdtW3t7eCgwMVKdOnfTSSy9JOv9o67/+678kSVFRUfZHixceA0VGRuruu+/WqlWr1KVLF3l5edlHUi72COzs2bNKTExUSEiIvL291atXL+Xk5Dj06d27d6WRGEkaPny4IiMjJZ3/uV4IL8nJyfbaLpzzYo+lli9frs6dO8vLy0tNmzbVkCFDtHfv3krnadKkiX744QfFx8erSZMmCg8P1+TJk1VSUlLlvQXMxn8LgXpSXl6usrIyh7Y/jswkJSUpJiZGqampatSokYKCgrRy5UoNGzZMgwcP1muvvSZ3d3ctWrRI/fr108cff6zY2FhJ0qeffqrBgwcrJiZGb731lsrLy/X888/rl19+cbreb7/9Vt26dVOrVq00Z84chYSE6OOPP9aECRN0/PhxTZs2zaH/1KlTdccdd2jp0qUqKirS3//+dw0aNEh79+5V48aNJUnLli3T6NGj1atXL6WmpiooKEjff/+9vvnmG0nS0KFD9dRTT+mVV15RTEyM/dhlZWVatGiRhgwZUu2jvCu5D88//7ymT5+uZ555Rj179lRpaam+++47+/yaUaNG6eTJk3r55Ze1atUq+yOe9u3b24+xc+dO7d27V88884yioqLk6+tb7TmnTp2qW265RUuXLlVhYaGmT5+u3r17KycnR9ddd90la74gNDRU69evV//+/TVy5EiNGjVKkqodrUlJSdHUqVP1t7/9TSkpKTpx4oSmT5+umJgYbd++XW3atLH3LS0t1T333KORI0dq8uTJ2rx5s2bMmKGAgAD985//vOw6gXpjAKhTaWlphqQql9LSUmPTpk2GJKNnz54O+xUXFxtNmzY1Bg0a5NBeXl5udO7c2bjtttvsbX/5y1+MsLAw4/fff7e3FRUVGU2bNjX++Mf8wIEDhiQjLS2tUp2SjGnTptnX+/XrZ7Rs2dIoLCx06PfEE08YXl5exsmTJw3DMOz1x8fHO/R75513DEnG1q1bDcMwjNOnTxv+/v5G9+7djYqKiover2nTphkeHh7GL7/8Ym97++23DUlGVlbWRferyX0wDMOIiIgwEhIS7Ot33323cfPNN1d7/BdeeMGQZBw4cKDStoiICKNx48bGvn37qtz2x3NduGe33HKLw704ePCg4e7ubowaNcre1qtXL6NXr16VjpmQkGBERETY148dO1bpZ3jBhd/BC3WfOnXK8Pb2rvQzy83NNTw9PY2HHnrI4TySjHfeecehb3x8vNG2bdtK5wJcAY+lgHqyYsUKbd++3WH548jN/fff79B/y5YtOnnypBISElRWVmZfKioq1L9/f23fvl3FxcUqLi7W9u3bdd9998nLy8u+v5+fnwYNGuRUrWfPntWnn36qIUOGyMfHx+H88fHxOnv2rLZt2+awzz333OOw3qlTJ0nS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2dnZuvPOOzV48GDt2bOnyv4HDhxQfHy8evTooZycHE2dOlUTJkxQRkZGPVcOAABclc0wDMPsIv6oadOmeuGFFzRy5MhK2/7+979r9erV2rt3r71tzJgx2r17t7Zu3XpZxy8qKlJAQIAKCwv54kwAABqImvz77TJzbsrLy/XWW2+puLhYMTExVfbZunWr4uLiHNr69eun7OxslZaW1keZAADAxbmZXcDXX3+tmJgYnT17Vk2aNNH777+v9u3bV9m3oKBAwcHBDm3BwcEqKyvT8ePHFRoaWmmfkpISlZSU2NeLiopq9wIAAIBLMT3ctG3bVrt27dKvv/6qjIwMJSQkKCsr66IBx2azOaxfeKr25/YLUlJSlJycXLtFo9ZF/mOt2SWY4uCsgWaXAACWY/pjKQ8PD7Vu3VrR0dFKSUlR586d9dJLL1XZNyQkRAUFBQ5tR48elZubm5o1a1blPklJSSosLLQveXl5tX4NAADAdZg+cvNnhmE4PEb6o5iYGK1Zs8ahbcOGDYqOjpa7u3uV+3h6esrT07PW6wQAAK7J1JGbqVOn6vPPP9fBgwf19ddf6+mnn1ZmZqYefvhhSedHXYYNG2bvP2bMGB06dEiJiYnau3evli9frmXLlmnKlClmXQIAAHAxpo7c/PLLL3r00UeVn5+vgIAAderUSevXr1ffvn0lSfn5+crNzbX3j4qK0rp16zRp0iS98sorCgsL0/z583X//febdQkAAMDFuNzn3NQ1PufGNTGhGABQnQb5OTcAAAC1gXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAsxdRwk5KSoltvvVV+fn4KCgrSvffeq3379lW7T2Zmpmw2W6Xl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AHamhpvevXvbJwRXJT09vVJbr169tHPnzjqsCgAANGQNas4NAADApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApZgebl599VVFRUXJy8tLXbt21eeff37RvpmZmbLZbJWW7777rh4rBgAArszUcPP222/rySef1NNPP62cnBz16NFDAwYMUG5ubrX77du3T/n5+falTZs29VQxAABwdaaGm7lz52rkyJEaNWqU2rVrp3nz5ik8PFwLFy6sdr+goCCFhITYl8aNG9dTxQAAwNWZFm7OnTunHTt2KC4uzqE9Li5OW7ZsqXbfLl26KDQ0VLGxsdq0aVO1fUtKSlRUVOSwAAAA6zIt3Bw/flzl5eUKDg52aA8ODlZBQUGV+4SGhmrx4sXKyMjQqlWr1LZtW8XGxmrz5s0XPU9KSooCAgLsS3h4eK1eBwAAcC1uZhdgs9kc1g3DqNR2Qdu2bdW2bVv7ekxMjPLy8vTiiy+qZ8+eVe6TlJSkxMRE+3pRUREBBwAACzNt5KZ58+Zq3LhxpVGao0ePVhrNqc7tt9+u/fv3X3S7p6en/P39HRYAAGBdpoUbDw8Pde3aVRs3bnRo37hxo7p163bZx8nJyVFoaGhtlwcAABooUx9LJSYm6tFHH1V0dLRiYmK0ePFi5ebmasyYMZLOP1I6fPiwVqxYIUmaN2+eIiMj1aFDB507d04rV65URkaGMjIyzLwMAADgQkwNN0OHDtWJEyf07LPPKj8/Xx07dtS6desUEREhScrPz3f4zJtz585pypQpOnz4sLy9vdWhQwetXbtW8fHxZl0CAABwMaZPKB47dqzGjh1b5bb09HSH9aeeekpPPfVUPVQFAAAaKtO/fgEAAKA2EW4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClmB5uXn31VUVFRcnLy0tdu3bV559/Xm3/rKwsde3aVV5eXrruuuuUmppaT5UCAICGwNRw8/bbb+vJJ5/U008/rZycHPXo0UMDBgxQbm5ulf0PHDig+Ph49ejRQzk5OZo6daomTJigjIyMeq4cAAC4KlPDzdy5czVy5EiNGjVK7dq107x58xQeHq6FCxdW2T81NVWtWrXSvHnz1K5dO40aNUojRozQiy++WM+VAwAAV2VauDl37px27NihuLg4h/a4uDht2bKlyn22bt1aqX+/fv2UnZ2t0tLSOqsVAAA0HG5mnfj48eMqLy9XcHCwQ3twcLAKCgqq3KegoKDK/mVlZTp+/LhCQ0Mr7VNSUqKSkhL7emFhoSSpqKjoSi+hShUlv9XJcV3dld5P7lvNXa33TKq7P7+4uKv1942/25xTF39GLxzTMIxL9jUt3Fxgs9kc1g3DqNR2qf5VtV+QkpKi5OTkSu3h4eE1LRXVCJhndgUNE/fNOdw31Bd+15xTl/ft9OnTCggIqLaPaeGmefPmaty4caVRmqNHj1YanbkgJCSkyv5ubm5q1qxZlfskJSUpMTHRvl5RUaGTJ0+qWbNm1YaohqaoqEjh4eHKy8uTv7+/2eU0GNw353Dfao575hzum3OseN8Mw9Dp06cVFhZ2yb6mhRsPDw917dpVGzdu1JAhQ+ztGzdu1ODBg6vcJyYmRmvWrHFo27Bhg6Kjo+Xu7l7lPp6envL09HRoCwwMvLLiXZi/v79lfpHrE/fNOdy3muOeOYf75hyr3bdLjdhcYOrbUomJiVq6dKmWL1+uvXv3atKkScrNzdWYMWMknR91GTZsmL3/mDFjdOjQISUmJmrv3r1avny5li1bpilTpph1CQAAwMWYOudm6NChOnHihJ599lnl5+erY8eOWrdunSIiIiRJ+fn5Dp95ExUVpXXr1mnSpEl65ZVXFBYWpvnz5+v+++836xIAAICLMX1C8dixYzV27Ngqt6Wnp1dq69Wrl3bu3FnHVTU8np6emjZtWqVHcKge98053Lea4545h/vmnKv9vtmMy3mnCgAAoIEw/bulAAAAahPhBgAAWArhBgAAWArhBgAAWArhpoHbvHmzBg0apLCwMNlsNn3wwQdml+TyUlJSdOutt8rPz09BQUG69957tW/fPrPLcnkLFy5Up06d7B8KFhMTo48++sjsshqclJQU2Ww2Pfnkk2aX4tKmT58um83msISEhJhdlss7fPiwHnnkETVr1kw+Pj66+eabtWPHDrPLqneEmwauuLhYnTt31oIFC8wupcHIysrSuHHjtG3bNm3cuFFlZWWKi4tTcXGx2aW5tJYtW2rWrFnKzs5Wdna27rzzTg0ePFh79uwxu7QGY/v27Vq8eLE6depkdikNQocOHZSfn29fvv76a7NLcmmnTp3SHXfcIXd3d3300Uf69ttvNWfOHEt/Kv/FmP45N7gyAwYM0IABA8wuo0FZv369w3paWpqCgoK0Y8cO9ezZ06SqXN+gQYMc1v/nf/5HCxcu1LZt29ShQweTqmo4zpw5o4cfflhLlizRzJkzzS6nQXBzc2O0pgZmz56t8PBwpaWl2dsiIyPNK8hEjNzgqldYWChJatq0qcmVNBzl5eV66623VFxcrJiYGLPLaRDGjRungQMH6q677jK7lAZj//79CgsLU1RUlB588EH99NNPZpfk0lavXq3o6Gj9x3/8h4KCgtSlSxctWbLE7LJMQbjBVc0wDCUmJqp79+7q2LGj2eW4vK+//lpNmjSRp6enxowZo/fff1/t27c3uyyX99Zbb2nnzp1KSUkxu5QG4y9/+YtWrFihjz/+WEuWLFFBQYG6deumEydOmF2ay/rpp5+0cOFCtWnTRh9//LHGjBmjCRMmaMWKFWaXVu94LIWr2hNPPKGvvvpKX3zxhdmlNAht27bVrl279OuvvyojI0MJCQnKysoi4FQjLy9PEydO1IYNG+Tl5WV2OQ3GHx+333TTTYqJidH111+v1157TYmJiSZW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\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "plt.bar(frequency.index, frequency.values)\n",
+ "\n",
+ "# Add labels and title\n",
+ "plt.xlabel('Result')\n",
+ "plt.ylabel('Frequency')\n",
+ "plt.title('Frequency distribution')\n",
+ "\n",
+ "# Show the plot\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "'\\nFirst plot: displays all rolls and their results.\\nSecond plot: displays frequency of the results\\n\\n'"
+ ]
+ },
+ "execution_count": 6,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "\"\"\"\n",
+ "First plot: displays all rolls and their results.\n",
+ "Second plot: displays frequency of the results\n",
+ "\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": 7,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "3.0"
+ ]
+ },
+ "execution_count": 7,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# your code here\n",
+ "\n",
+ "def mean_1(array):\n",
+ " return sum(array)/len(array)\n",
+ "\n",
+ "mean_1(result['Result'])"
+ ]
+ },
+ {
+ "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": 8,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "3.0"
+ ]
+ },
+ "execution_count": 8,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# your code here\n",
+ "frequency = result['Result'].value_counts().reset_index()\n",
+ "frequency.columns = ['Result', 'Frequency']\n",
+ "\n",
+ "def weighted_mean(column1, column2):\n",
+ " return (column1 * column2).sum() / column2.sum()\n",
+ "\n",
+ "mean_with_freq = weighted_mean(frequency['Result'], frequency['Frequency'])\n",
+ "\n",
+ "mean_with_freq"
+ ]
+ },
+ {
+ "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": 9,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "2.5"
+ ]
+ },
+ "execution_count": 9,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# your code here\n",
+ "\n",
+ "result_series = result[\"Result\"].astype(int).sort_values(ascending=True)\n",
+ "\n",
+ "def median(values):\n",
+ " \n",
+ " if len(values) % 2 == 0:\n",
+ " return sum(values[int(len(values)/2)-1:int(len(values)/2)+1])/2\n",
+ " \n",
+ " else:\n",
+ " return values[int(len(values)/2)]\n",
+ "\n",
+ "median(result_series)\n",
+ " \n",
+ "# val is assumed to be a list or array of values.\n",
+ " # len(val) calculates the number of elements in the val list.\n",
+ " # int(len(val)/2) calculates the index of the middle element in the list. The int() function is used to ensure that the result is an integer, as list indices must be integers.\n",
+ " # val[int(len(val)/2)-1:int(len(val)/2)+1] slices the list to extract the two middle elements (or element if the list has an odd number of elements). The [x:y] slice notation extracts elements starting from index x up to, but not including, index y. In this case, it extracts the two middle elements or the middle element and the one before it.\n",
+ " # sum(val[int(len(val)/2)-1:int(len(val)/2)+1]) calculates the sum of the extracted values. This is needed to compute the median, especially when there are two middle values to average.\n",
+ " # Finally, /2 divides the sum by 2 to compute the median. This division by 2 is performed when there are two middle values, averaging them to get the median.\n",
+ " # So, in summary, the code calculates the median of a list of values by finding the middle one or averaging the two middle values when the list has an even number of elements."
+ ]
+ },
+ {
+ "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": 25,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Q1: 2\n",
+ "Q2 (Median): 2.5\n",
+ "Q3: 5\n",
+ "Q4 (Max): 6\n"
+ ]
+ }
+ ],
+ "source": [
+ "array = list(result.sort_values(by=\"Result\", ascending=True)['Result'])\n",
+ "\n",
+ "def quartiles(values):\n",
+ " n = len(values)\n",
+ "\n",
+ " if n % 2 == 0:\n",
+ " middle_index = n // 2\n",
+ " lower_half = values[:middle_index]\n",
+ " upper_half = values[middle_index:]\n",
+ " q1 = median(lower_half)\n",
+ " q3 = median(upper_half)\n",
+ " else:\n",
+ " middle_index = n // 2\n",
+ " lower_half = values[:middle_index]\n",
+ " upper_half = values[middle_index + 1:]\n",
+ " q1 = median(lower_half)\n",
+ " q3 = median(upper_half)\n",
+ "\n",
+ " q2 = median(values)\n",
+ " q4 = max(values)\n",
+ "\n",
+ " return q1, q2, q3, q4\n",
+ "\n",
+ "def median(values):\n",
+ " n = len(values)\n",
+ " if n % 2 == 0:\n",
+ " middle1 = values[n // 2 - 1]\n",
+ " middle2 = values[n // 2]\n",
+ " return (middle1 + middle2) / 2\n",
+ " else:\n",
+ " return values[n // 2]\n",
+ "\n",
+ "q1, q2, q3, q4 = quartiles(array)\n",
+ "print(\"Q1:\", q1)\n",
+ "print(\"Q2 (Median):\", q2)\n",
+ "print(\"Q3:\", q3)\n",
+ "print(\"Q4 (Max):\", q4)\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "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": 34,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "
"
+ ],
+ "text/plain": [
+ " roll\n",
+ "value \n",
+ "1 12\n",
+ "2 17\n",
+ "3 14\n",
+ "4 22\n",
+ "5 12\n",
+ "6 23"
+ ]
+ },
+ "execution_count": 47,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# your code here\n",
+ "frequency_df = dice_hundred_df.groupby('value').agg({'roll':'count'})\n",
+ "\n",
+ "frequency_df"
+ ]
+ },
+ {
+ "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": 55,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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Pj1eeumlQfv39fVFX19f/3pPT09ERPT29hZ6tIiIONz3/4blfYG09meH44z//af/rmFohuN77JH3zLLsI/cteHy8/fbb8f7770dNTc2A7TU1NdHd3T1o//b29njkkUcGbW9oaCj0aMAJ5DNH/nBwX8TCLxVzFCg7VQuH7733798fVVVVH7pPwePjiFwuN2A9y7JB2yIi5s2bF62trf3rhw8fjn/9619x1llnHXX/E1Fvb280NDREV1dXjBo1qtjjlDTn6tg5V8fOuTp2ztWxO9nOVZZlsX///qivr//IfQseH2effXaMGDFi0FWOPXv2DLoaEhGRz+cjn88P2PbJT36y0GOVhVGjRp0U/4IWgnN17JyrY+dcHTvn6tidTOfqo654HFHwG05PPfXUuPTSS2P9+vUDtq9fvz6mTJlS6MMBAGVmWD52aW1tja997WsxceLEmDx5cixevDjefPPNuPvuu4fjcABAGRmW+Ljtttti79698cMf/jB2794d48aNi6effjoaGxuH43BlL5/Pxw9+8INBHz8xmHN17JyrY+dcHTvn6tg5Vx8slx3Lz8QAABSIZ7sAAEmJDwAgKfEBACQlPgCApMRHEW3cuDFmzJgR9fX1kcvl4sknnyz2SCWpvb09LrvssqisrIzq6uq4+eab49VXXy32WCWro6MjLr744v5fbDR58uR45plnij1WyWtvb49cLhdz584t9iglqa2tLXK53ICltra22GOVrH/+85/x1a9+Nc4666w4/fTT43Of+1xs3bq12GOVDPFRRAcPHowJEybEokWLij1KSevs7IyWlpbYtGlTrF+/Pg4dOhTTp0+PgwcPFnu0kjRmzJj48Y9/HFu2bIktW7bEtddeGzfddFPs2LGj2KOVrM2bN8fixYvj4osvLvYoJe2iiy6K3bt39y/bt28v9kglad++fXHFFVfEKaecEs8880z89a9/jccff/yk/e3dRzNsz3bhozU3N0dzc3Oxxyh5zz777ID1pUuXRnV1dWzdujWuvvrqIk1VumbMmDFg/Uc/+lF0dHTEpk2b4qKLLirSVKXrwIED8ZWvfCWWLFkSjz76aLHHKWkVFRWudhyDn/zkJ9HQ0BBLly7t33beeecVb6AS5MoHZaenpyciIkaPHl3kSUrf+++/HytXroyDBw/G5MmTiz1OSWppaYnPf/7zcf311xd7lJK3c+fOqK+vj6amprj99tvj9ddfL/ZIJWn16tUxceLE+OIXvxjV1dVxySWXxJIlS4o9VkkRH5SVLMuitbU1rrzyyhg3blyxxylZ27dvjzPPPDPy+Xzcfffd8cQTT8RnP/vZYo9VclauXBl//vOfo729vdijlLxJkybF8uXLY+3atbFkyZLo7u6OKVOmxN69e4s9Wsl5/fXXo6OjI8aOHRtr166Nu+++O77zne/E8uXLiz1ayfCxC2Xl3nvvjZdffjlefPHFYo9S0j7zmc/Etm3b4p133onf/OY3MWvWrOjs7BQg/6arqyvuu+++WLduXZx22mnFHqfk/ftHxOPHj4/JkyfHpz71qVi2bFm0trYWcbLSc/jw4Zg4cWLMnz8/IiIuueSS2LFjR3R0dMTXv/71Ik9XGlz5oGzMmTMnVq9eHc8//3yMGTOm2OOUtFNPPTU+/elPx8SJE6O9vT0mTJgQP/3pT4s9VknZunVr7NmzJy699NKoqKiIioqK6OzsjJ/97GdRUVER77//frFHLGlnnHFGjB8/Pnbu3FnsUUpOXV3doNC/8MIL48033yzSRKXHlQ9KXpZlMWfOnHjiiSdiw4YN0dTUVOyRyk6WZdHX11fsMUrKddddN+inNb7xjW/EBRdcEN/73vdixIgRRZqsPPT19cUrr7wSV111VbFHKTlXXHHFoF8H8Le//c3DVf+N+CiiAwcOxGuvvda/vmvXrti2bVuMHj06zj333CJOVlpaWlpixYoV8dRTT0VlZWV0d3dHRERVVVWMHDmyyNOVnoceeiiam5ujoaEh9u/fHytXrowNGzYM+qmhk11lZeWg+4bOOOOMOOuss9xPdBT3339/zJgxI84999zYs2dPPProo9Hb2xuzZs0q9mgl57vf/W5MmTIl5s+fH1/60pfiT3/6UyxevDgWL15c7NFKR0bRPP/881lEDFpmzZpV7NFKytHOUURkS5cuLfZoJemb3/xm1tjYmJ166qnZOeeck1133XXZunXrij1WWbjmmmuy++67r9hjlKTbbrstq6ury0455ZSsvr4+mzlzZrZjx45ij1Wyfve732Xjxo3L8vl8dsEFF2SLFy8u9kglJZdlWVak7gEATkJuOAUAkhIfAEBS4gMASEp8AABJiQ8AICnxAQAkJT4AgKTEBwCQlPgAAJISHwBAUuIDAEhKfAAASf1/LdB2gPopjN8AAAAASUVORK5CYII=\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "# your code here\n",
+ "plt.hist(dice_hundred_df['value'], bins=6, range= (0.5, 6.5))\n",
+ "plt.vlines(dice_hundred_df['value'].mean(), ymin=0, ymax=25, lw=2, color= \"r\")\n",
+ "\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "\"\"\"\n",
+ "The mean shows as the red line (3.74). The distribution of hundred dice rolls is slightly skewed to the right\n",
+ "\n",
+ "\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": 65,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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nfx+v8rKysLbLrroovgNZBBXUNAlNTY2SpJSU1PjPIltp06d0tq1a9XS0qKRI0fGexyzZs2apYkTJ2r8+PHxHsW86upq+Xw+ZWVlaerUqfroo4/iPZJJGzduVE5Ojm677Talp6dryJAhWrp0abzHMoVAQZfjOI4KCwt11VVXKTs7O97jmLR//35997vfldvt1j333KP169frhz/8YbzHMmnt2rXau3evSktL4z2KecOHD9fKlSu1efNmLV26VPX19Ro1apSOHj0a79HM+eijj7R48WINGDBAmzdv1j333KNf/epXWrlyZbxHM4OPeNDl3HfffXrnnXe0Y8eOeI9i1g9+8APt27dPx48f15/+9CcVFBSosrKSSPmK2tpa3X///dqyZYu6d+8e73HM+/LH0YMGDdLIkSN18cUXa8WKFSosLIzjZPacPn1aOTk5mj9/viRpyJAhOnjwoBYvXqw777wzztPZwBUUdCmzZ8/Wxo0btW3bNvXr1y/e45iVlJSk73//+8rJyVFpaakGDx6sZ555Jt5jmVNVVaWGhgYNGzZMiYmJSkxMVGVlpf7whz8oMTFRp06diveIpvXq1UuDBg1SdXV1vEcxx+v1tvkPgssuu0xHjhyJ00T2cAUFXYLjOJo9e7bWr1+viooKZWVlxXukTsVxHIVCoXiPYc64cePa/BbKz3/+c1166aV68MEHlZCQEKfJOodQKKT33ntPV199dbxHMWf06NFt/imEDz74gC/M/RICxbjm5mYdOnQovF5TU6N9+/YpNTVV/fv3j+NktsyaNUtr1qzRyy+/rOTkZNXX10uSUlJS1KNHjzhPZ8vDDz+sQCAgv9+vpqYmrV27VhUVFW1+EwpScnJym/uYevXqpT59+nB/UzuKioqUn5+v/v37q6GhQY8//riCwaAKCgriPZo5v/71rzVq1CjNnz9fkydP1l//+lctWbJES5Ysifdodjgwbdu2bY6kNktBQUG8RzOlvfdIklNWVhbv0cy56667nMzMTCcpKcnp27evM27cOGfLli3xHqvTGDNmjHP//ffHewyTpkyZ4ni9Xqdbt26Oz+dzJk2a5Bw8eDDeY5n15z//2cnOznbcbrdz6aWXOkuWLIn3SKa4HMdx4tRGAAAA7eImWQAAYA6BAgAAzCFQAACAOQQKAAAwh0ABAADmECgAAMAcAgUAAJhDoAAAAHMIFAAAYA6BAgAAzCFQAACAOQQKAAAw538Btr762p1t7HsAAAAASUVORK5CYII=\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "mean is 3.447\n"
+ ]
+ }
+ ],
+ "source": [
+ "# your code here\n",
+ "file_path_2 = '/Users/alvarog/Desktop/DA.RMT.OCT23/Week03/Descriptive-Stats/data/roll_the_dice_thousand.csv'\n",
+ "dice_thousand_df = pd.read_csv(file_path_2)\n",
+ "\n",
+ "frequency_th_df = dice_thousand_df.groupby('value').agg({'roll':'count'})\n",
+ "\n",
+ "plt.hist(dice_thousand_df['value'], bins=6, range= (0.5, 6.5))\n",
+ "plt.vlines(dice_thousand_df['value'].mean(), ymin=0, ymax=175, lw=2, color= \"r\")\n",
+ "\n",
+ "plt.show()\n",
+ "\n",
+ "print('mean is ', dice_thousand_df['value'].mean())"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "\"\"\"\n",
+ "The bigger the roll count, the more evenly distributed it becomes.\n",
+ "\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": 83,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "array([[]], dtype=object)"
+ ]
+ },
+ "execution_count": 83,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAigAAAGxCAYAAABIjE2TAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA07ElEQVR4nO3df3QU5b3H8c8m2SwJJkCIyWZLiFHxejUpKlQQrIRiQiNikaqV+APEH7SiVy5SFLleFqvAoaeKBaHV0oBihPYUqIotBIUARatEqQRbjDX8UBNzQEiA4LIkz/3Dw16XBEjCJnl2eb/OmRPmmWdmnu9ms/thdmbHYYwxAgAAsEhURw8AAADgRAQUAABgHQIKAACwDgEFAABYh4ACAACsQ0ABAADWIaAAAADrEFAAAIB1CCgAAMA6BBTgLLZo0SI5HA5t2bKlo4fSZoqKijRnzpwmlzkcDnm93nYdD4DmienoAQBAWyoqKlJZWZkmTJjQaNnbb7+tHj16tP+gAJwWAQWAFerq6hQfH9+u++zfv3+77g9A8/ERDxDBNm3apCFDhighIUHx8fEaMGCAVq1a1ajf/v37dddddykpKUmdO3fW8OHD9emnnwb1+eCDD3T99dcrJSVFLpdLHo9Hw4YN02effRboY4zR/PnzddlllykuLk7dunXTTTfd1GhbOTk5ysrK0oYNGzRgwADFx8dr7NixGjFihDIyMtTQ0NBojP369dMVV1wRmH/uued0zTXXKCUlRZ07d1Z2drZmz54tv98ftJ9Vq1Zp165dcjgcgem4pj7iKSsr049+9CN169ZNnTp10mWXXabFixcH9Vm/fr0cDodeeeUVTZ06VR6PR4mJibr22mu1Y8eOU/xGADQXAQWIUCUlJfrBD36gmpoaLVy4UK+88ooSEhI0fPhwLVu2LKjv3XffraioqMD5Gu+++65ycnJ04MABSdLhw4eVm5urL7/8Us8995yKi4s1Z84c9ezZUwcPHgxsZ9y4cZowYYKuvfZarVy5UvPnz9f27ds1YMAAffnll0H7rKys1O23366CggK98cYbuv/++zV27Fjt3r1bb731VlDff/3rX3r33Xd11113Bdr+/e9/q6CgQC+99JJef/113X333frlL3+pcePGBfrMnz9fAwcOlNvt1ttvvx2YTmbHjh0aMGCAtm/frl//+tdavny5LrnkEo0ZM0azZ89u1P+xxx7Trl279Lvf/U7PP/+8ysvLNXz4cNXX15/+FwTg1AyAiNS/f3+TkpJiDh48GGg7duyYycrKMj169DANDQ2msLDQSDI33nhj0Lp/+9vfjCTz5JNPGmOM2bJli5FkVq5cedL9vf3220aS+dWvfhXUvmfPHhMXF2cmT54caBs0aJCRZN58882gvn6/36SmppqCgoKg9smTJ5vY2Fizd+/eJvddX19v/H6/efHFF010dLT56quvAsuGDRtmMjIymlxPkpk2bVpg/tZbbzUul8vs3r07qF9+fr6Jj483Bw4cMMYYs27dOiPJXHfddUH9/vCHPxhJ5u23325yfwCajyMoQAQ6fPiw/v73v+umm27SOeecE2iPjo7WHXfcoc8++yzoo4jbbrstaP0BAwYoIyND69atkyRdeOGF6tatmx555BH95je/0UcffdRon6+//rocDoduv/12HTt2LDC53W717t1b69evD+rfrVs3/eAHPwhqi4mJ0e23367ly5erpqZGklRfX6+XXnpJP/rRj9S9e/dA3w8++EA33HCDunfvrujoaDmdTt15552qr6/Xxx9/3KrH7a233tKQIUOUnp4e1D5mzBjV1dU1Ovpyww03BM1/97vflSTt2rWrVfsH8P8IKEAE2r9/v4wxSktLa7TM4/FIkvbt2xdoc7vdjfq53e5Any5duqikpESXXXaZHnvsMV166aXyeDyaNm1a4JyPL7/8UsYYpaamyul0Bk3vvPOO9u7dG7T9psYmSWPHjtXXX3+tpUuXSpJWr16tysrKoI93du/ere9///v6/PPP9eyzz2rjxo1677339Nxzz0mSjhw50uzH6tv27dvX7MdMUlBgkiSXy3VG+wfw/7iKB4hA3bp1U1RUlCorKxst++KLLyRJycnJKi8vlyRVVVU16ldVVaULL7wwMJ+dna2lS5fKGKMPP/xQixYt0hNPPKG4uDg9+uijSk5OlsPh0MaNGwNv1N92Ytu3T1b9tksuuURXXnmlCgsLNW7cOBUWFsrj8SgvLy/QZ+XKlTp8+LCWL1+ujIyMQPvWrVtP8aicXvfu3U/7mAFoHxxBASJQ586d1a9fPy1fvjzof/MNDQ1asmSJevTooYsuuijQ/vLLLwetv3nzZu3atUs5OTmNtu1wONS7d28988wz6tq1q95//31J0vXXXy9j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XFFGv+jboMe3RMnX4GjjUbW/tq6vzDs05NtsiXB8bjZXJNcmUV97qK2tVXJycrMCSpt8xOP3+3XLLbeooqJCb7311mkHccUVV8jpdKq8vLzJgOJyueRyuRq1O53OM36QQ7ENm1GfPXz1LXsz9jU4WrxOOGmr+mx5PoTTc7OlIrk2ifraet/NFfKAcjyclJeXa926derevftp19m+fbv8fr/S0tJCPRwAABCGWhxQDh06pE8++SQwX1FRoa1btyopKUkej0c33XST3n//fb3++uuqr69XVVWVJCkpKUmxsbH697//rZdfflnXXXedkpOT9dFHH+nhhx/W5ZdfroEDB4auMgAAELZaHFC2bNmiwYMHB+YnTpwoSRo9erS8Xq9effVVSdJll10WtN66deuUk5Oj2NhYvfnmm3r22Wd16NAhpaena9iwYZo2bZqio6PPoBQAABApWhxQcnJydKrzak93zm16erpKSkpaulsAAHAW4V48AADAOgQUAABgHQIKAACwDgEFAABYh4ACAACsQ0ABAADWIaAAAADrEFAAAIB1CCgAAMA6BBQAAGAdAgoAALAOAQUAAFiHgAIAAKxDQAEAANYhoAAAAOsQUAAAgHUIKAAAwDoEFAAAYB0CCgAAsA4BBQAAWIeAAgAArENAAQAA1iGgAAAA6xBQAACAdQgoAADAOjEdPQAACKXzHl3VIfvdOWtYh+wXiFQcQQEAANYhoAAAAOsQUAAAgHUIKAAAwDoEFAAAYB0CCgAAsA4BBQAAWIeAAgAArNPiL2rbsGGDfvnLX6q0tFSVlZVasWKFRowYEVhujNH06dP1/PPPa//+/erXr5+ee+45XXrppYE+Pp9PkyZN0iuvvKIjR45oyJAhmj9/vnr06BGSooBT6agv8gIANF+Lj6AcPnxYvXv31rx585pcPnv2bD399NOaN2+e3nvvPbndbuXm5urgwYOBPhMmTNCKFSu0dOlSbdq0SYcOHdL111+v+vr61lcCAAAiRouPoOTn5ys/P7/JZcYYzZkzR1OnTtXIkSMlSYsXL1ZqaqqKioo0btw41dTUaOHChXrppZd07bXXSpKWLFmi9PR0rV27VkOHDj2DcgAAQCQI6b14KioqVFVVpby8vECby+XSoEGDtHnzZo0bN06lpaXy+/1BfTwej7KysrR58+YmA4rP55PP5wvM19bWSpL8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7Jj+53/+R5mZmYqLi9P555+vJ554Qg0NDYE+YVPjGd31L0wtXbrUOJ1O88ILL5iPPvrIPPTQQ6Zz585m165dHT20FnvjjTfM1KlTzZ/+9CcjyaxYsSJo+axZs0xCQoL505/+ZLZt22Z+8pOfmLS0NFNbW9sxA26BoUOHmsLCQlNWVma2bt1qhg0bZnr27GkOHToU6BPO9b366qtm1apVZseOHWbHjh3mscceM06n05SVlRljwru2b3v33XfNeeedZ7773e+ahx56KNAezvVNmzbNXHrppaaysjIwVVdXB5aHc21fffWVycjIMGPGjDF///vfTUVFhVm7dq355JNPAn3Cub7q6uqg31txcbGRZNatW2eMCe/ajDHmySefNN27dzevv/66qaioMH/84x/NOeecY+bMmRPoEy41npUB5corrzQ//elPg9ouvvhi8+ijj3bQiELjxIDS0NBg3G63mTVrVqDt66+/Nl26dDG/+c1vOmCEZ6a6utpIMiUlJcaYyKvPGGO6detmfve730VMbQcPHjS9evUyxcXFZtCgQYGAEu71TZs2zfTu3bvJZeFe2yOPPGKuvvrqky4P9/pO9NBDD5kLLrjANDQ0RERtw4YNM2PHjg1qGzlypLn99tuNMeH1+zvrPuI5evSoSktLlZeXF9Sel5enzZs3d9Co2kZFRYWqqqqCanW5XBo0aFBY1lpTUyNJSkpKkhRZ9dXX12vp0qU6fPiwrrrqqoipbfz48Ro2bJiuvfbaoPZIqK+8vFwej0eZmZm69dZb9emnn0oK/9peffVV9e3bVzfffLNSUlJ0+eWX64UXXggsD/f6vu3o0aNasmSJxo4dK4fDERG1XX311XrzzTf18ccfS5L+8Y9/aNOmTbruuuskhdfvr8O+6r6j7N27V/X19Y3umpyamtro7srh7ng9TdW6a9eujhhSqxljNHHiRF199dXKysqSFBn1bdu2TVdddZW+/vprnXPOOVqxYoUuueSSwAtFONe2dOlSvf/++3rvvfcaLQv3312/fv304osv6qKLLtKXX36pJ598UgMGDND27dvDvrZPP/1UCxYs0MSJE/XYY4/p3Xff1X/913/J5XLpzjvvDPv6vm3lypU6cOCAxowZIyn8n5eS9Mgjj6impkYXX3yxoqOjVV9fr6eeekqjRo2SFF41nnUB5TiHwxE0b4xp1BYpIqHWBx54QB9++KE2bdrUaFk41/cf//Ef2rp1qw4cOKA//elPGj16tEpKSgLLw7W2PXv26KGHHtKaNWvUqVOnk/YL1/ry8/MD/87OztZVV12lCy64QIsXL1b//v0lhW9tDQ0N6tu3r2bMmCFJuvzyy7V9+3YtWLBAd955Z6BfuNb3bQsXLlR+fr48Hk9QezjXtmzZMi1ZskRFRUW69NJLtXXrVk2YMEEej0ejR48O9AuHGs+6j3iSk5MVHR3d6GhJdXV1o0QZ7o5fVRDutT744IN69dVXtW7dOvXo0SPQHgn1xcbG6sILL1Tfvn01c+ZM9e7dW88++2zY11ZaWqrq6mr16dNHMTExiomJUUlJiX79618rJiYmUEO41neizp07Kzs7W+Xl5WH/u0tLS9Mll1wS1Paf//mf2r17t6TI+LuTpF27dmnt2rW65557Am2RUNvPf/5zPfroo7r11luVnZ2tO+64Q//93/+tmTNnSgqvGs+6gBIbG6s+ffqouLg4qL24uFgDBgzooFG1jczMTLnd7qBajx49qpKSkrCo1RijBx54QMuXL9dbb72lzMzMoOXhXl9TjDHy+XxhX9uQIUO0bds2bd26NTD17dtXt912m7Zu3arzzz8/rOs7kc/n0z//+U+lpaWF/e9u4MCBjS7n//jjjwN3mg/3+o4rLCxUSkqKhg0bFmiLhNrq6uoUFRX81h4dHR24zDisauyYc3M71vHLjBcuXGg++ugjM2HCBNO5c2ezc+fOjh5aix08eNB88MEH5oMPPjCSzNNPP20++OCDwCXTs2bNMl26dDHLly8327ZtM6NGjbLycrKm/OxnPzNdunQx69evD7ossK6uLtAnnOubMmWK2bBhg6moqDAffviheeyxx0xUVJRZs2aNMSa8a2vKt6/iMSa863v44YfN+vXrzaeffmreeecdc/3115uEhITAa0g41/buu++amJgY89RTT5ny8nLz8ssvm/j4eLNkyZJAn3Cuzxhj6uvrTc+ePc0jjzzSaFm41zZ69Gjzne98J3CZ8fLly01ycrKZPHlyoE+41HhWBhRjjHnuuedMRkaGiY2NNVdccUXg0tVws27dOiOp0TR69GhjzDeXlE2bNs243W7jcrnMNddcY7Zt29axg26mpuqSZAoLCwN9wrm+sWPHBp6D5557rhkyZEggnBgT3rU15cSAEs71Hf/eCKfTaTwejxk5cqTZvn17YHk412aMMa+99prJysoyLpfLXHzxxeb5558PWh7u9a1evdpIMjt27Gi0LNxrq62tNQ899JDp2bOn6dSpkzn//PPN1KlTjc/nC/QJlxodxhjTIYduAAAATuKsOwcFAADYj4ACAACsQ0ABAADWIaAAAADrEFAAAIB1CCgAAMA6BBQAAGAdAgoAALAOAQUAAFiHgAIAAKxDQAEAANb5Pxr9tJZRXl7dAAAAAElFTkSuQmCC\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "# sort the values to understand what we are going to plot\n",
+ "# Create the bar chart\n",
+ "plt.plot(result['Round'], result['Result'], \"ro\")\n",
+ "\n",
+ "# Add labels and title\n",
+ "plt.xlabel('Round')\n",
+ "plt.ylabel('Result')\n",
+ "plt.title('Results Sorted by Value')\n",
+ "\n",
+ "# Show 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": 4,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "1 2\n",
+ "2 3\n",
+ "3 2\n",
+ "5 2\n",
+ "6 1\n",
+ "Name: Result, dtype: int64"
+ ]
+ },
+ "execution_count": 4,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# your code here\n",
+ "\n",
+ "frequency = result['Result'].value_counts().sort_index()\n",
+ "\n",
+ "frequency"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAHFCAYAAAAOmtghAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAzR0lEQVR4nO3de1gV9b7H8c9S7sglL9wSgdLMS5pJ7TCvkaiYmdXZtruIeXmOaWqip72xzlbSE1rpNrPEK2Se7ljp0UwrwdrqkyhamZmVCinkNVBK5DLnDx/X0wpEWQKzGN+v55k/5je/mfnOgPrxN79Zy2YYhiEAAACLaGR2AQAAALWJcAMAACyFcAMAACyFcAMAACyFcAMAACyFcAMAACyFcAMAACyFcAMAACyFcAMAACyFcAPUsfT0dNlstiqXKVOmmF3eVWH69Omy2WwObZGRkRo+fHiNjrNlyxZNnz5dv/76a432+/O5MjMzZbPZ9N5779XoONX57bffNH36dGVmZlbaduF38ODBg7V2PsCVuZldAHC1SEtL04033ujQFhYWZlI1eP/99+Xv71+jfbZs2aLk5GQNHz5cgYGBdXqumvrtt9+UnJwsSerdu7fDtoEDB2rr1q0KDQ2t0xoAV0G4AepJx44dFR0dfVl9S0tLZbPZ5ObGH9G60qVLlzo/x++//y5vb+96OVd1WrRooRYtWphaA1CfeCwFmOzCI4rXX39dkydP1rXXXitPT0/98MMPkqRPPvlEsbGx8vf3l4+Pj+644w59+umnlY6zdu1a3XzzzfL09FRUVJRefPHFSo9jDh48KJvNpvT09Er722w2TZ8+3aFt//79euihhxQUFCRPT0+1a9dOr7zySpX1v/nmm3r66acVFhYmf39/3XXXXdq3b1+l86xfv16xsbEKCAiQj4+P2rVrp5SUFEnS66+/LpvNpq1bt1ba79lnn5W7u7uOHDlS7f2s6j5U5c+PiioqKjRz5ky1bdtW3t7eCgwMVKdOnfTSSy9JOv9o67/+678kSVFRUfZHixceA0VGRuruu+/WqlWr1KVLF3l5edlHUi72COzs2bNKTExUSEiIvL291atXL+Xk5Dj06d27d6WRGEkaPny4IiMjJZ3/uV4IL8nJyfbaLpzzYo+lli9frs6dO8vLy0tNmzbVkCFDtHfv3krnadKkiX744QfFx8erSZMmCg8P1+TJk1VSUlLlvQXMxn8LgXpSXl6usrIyh7Y/jswkJSUpJiZGqampatSokYKCgrRy5UoNGzZMgwcP1muvvSZ3d3ctWrRI/fr108cff6zY2FhJ0qeffqrBgwcrJiZGb731lsrLy/X888/rl19+cbreb7/9Vt26dVOrVq00Z84chYSE6OOPP9aECRN0/PhxTZs2zaH/1KlTdccdd2jp0qUqKirS3//+dw0aNEh79+5V48aNJUnLli3T6NGj1atXL6WmpiooKEjff/+9vvnmG0nS0KFD9dRTT+mVV15RTEyM/dhlZWVatGiRhgwZUu2jvCu5D88//7ymT5+uZ555Rj179lRpaam+++47+/yaUaNG6eTJk3r55Ze1atUq+yOe9u3b24+xc+dO7d27V88884yioqLk6+tb7TmnTp2qW265RUuXLlVhYaGmT5+u3r17KycnR9ddd90la74gNDRU69evV//+/TVy5EiNGjVKkqodrUlJSdHUqVP1t7/9TSkpKTpx4oSmT5+umJgYbd++XW3atLH3LS0t1T333KORI0dq8uTJ2rx5s2bMmKGAgAD985//vOw6gXpjAKhTaWlphqQql9LSUmPTpk2GJKNnz54O+xUXFxtNmzY1Bg0a5NBeXl5udO7c2bjtttvsbX/5y1+MsLAw4/fff7e3FRUVGU2bNjX++Mf8wIEDhiQjLS2tUp2SjGnTptnX+/XrZ7Rs2dIoLCx06PfEE08YXl5exsmTJw3DMOz1x8fHO/R75513DEnG1q1bDcMwjNOnTxv+/v5G9+7djYqKiover2nTphkeHh7GL7/8Ym97++23DUlGVlbWRferyX0wDMOIiIgwEhIS7Ot33323cfPNN1d7/BdeeMGQZBw4cKDStoiICKNx48bGvn37qtz2x3NduGe33HKLw704ePCg4e7ubowaNcre1qtXL6NXr16VjpmQkGBERETY148dO1bpZ3jBhd/BC3WfOnXK8Pb2rvQzy83NNTw9PY2HHnrI4TySjHfeecehb3x8vNG2bdtK5wJcAY+lgHqyYsUKbd++3WH548jN/fff79B/y5YtOnnypBISElRWVmZfKioq1L9/f23fvl3FxcUqLi7W9u3bdd9998nLy8u+v5+fnwYNGuRUrWfPntWnn36qIUOGyMfHx+H88fHxOnv2rLZt2+awzz333OOw3qlTJ0nS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2dnZuvPOOzV48GDt2bOnyv4HDhxQfHy8evTooZycHE2dOlUTJkxQRkZGPVcOAABclc0wDMPsIv6oadOmeuGFFzRy5MhK2/7+979r9erV2rt3r71tzJgx2r17t7Zu3XpZxy8qKlJAQIAKCwv54kwAABqImvz77TJzbsrLy/XWW2+puLhYMTExVfbZunWr4uLiHNr69eun7OxslZaW1keZAADAxbmZXcDXX3+tmJgYnT17Vk2aNNH777+v9u3bV9m3oKBAwcHBDm3BwcEqKyvT8ePHFRoaWmmfkpISlZSU2NeLiopq9wIAAIBLMT3ctG3bVrt27dKvv/6qjIwMJSQkKCsr66IBx2azOaxfeKr25/YLUlJSlJycXLtFo9ZF/mOt2SWY4uCsgWaXAACWY/pjKQ8PD7Vu3VrR0dFKSUlR586d9dJLL1XZNyQkRAUFBQ5tR48elZubm5o1a1blPklJSSosLLQveXl5tX4NAADAdZg+cvNnhmE4PEb6o5iYGK1Zs8ahbcOGDYqOjpa7u3uV+3h6esrT07PW6wQAAK7J1JGbqVOn6vPPP9fBgwf19ddf6+mnn1ZmZqYefvhhSedHXYYNG2bvP2bMGB06dEiJiYnau3evli9frmXLlmnKlClmXQIAAHAxpo7c/PLLL3r00UeVn5+vgIAAderUSevXr1ffvn0lSfn5+crNzbX3j4qK0rp16zRp0iS98sorCgsL0/z583X//febdQkAAMDFuNzn3NQ1PufGNTGhGABQnQb5OTcAAAC1gXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAshXADAAAsxdRwk5KSoltvvVV+fn4KCgrSvffeq3379lW7T2Zmpmw2W6Xl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AHamhpvevXvbJwRXJT09vVJbr169tHPnzjqsCgAANGQNas4NAADApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApZgebl599VVFRUXJy8tLXbt21eeff37RvpmZmbLZbJWW7777rh4rBgAArszUcPP222/rySef1NNPP62cnBz16NFDAwYMUG5ubrX77du3T/n5+falTZs29VQxAABwdaaGm7lz52rkyJEaNWqU2rVrp3nz5ik8PFwLFy6sdr+goCCFhITYl8aNG9dTxQAAwNWZFm7OnTunHTt2KC4uzqE9Li5OW7ZsqXbfLl26KDQ0VLGxsdq0aVO1fUtKSlRUVOSwAAAA6zIt3Bw/flzl5eUKDg52aA8ODlZBQUGV+4SGhmrx4sXKyMjQqlWr1LZtW8XGxmrz5s0XPU9KSooCAgLsS3h4eK1eBwAAcC1uZhdgs9kc1g3DqNR2Qdu2bdW2bVv7ekxMjPLy8vTiiy+qZ8+eVe6TlJSkxMRE+3pRUREBBwAACzNt5KZ58+Zq3LhxpVGao0ePVhrNqc7tt9+u/fv3X3S7p6en/P39HRYAAGBdpoUbDw8Pde3aVRs3bnRo37hxo7p163bZx8nJyVFoaGhtlwcAABooUx9LJSYm6tFHH1V0dLRiYmK0ePFi5ebmasyYMZLOP1I6fPiwVqxYIUmaN2+eIiMj1aFDB507d04rV65URkaGMjIyzLwMAADgQkwNN0OHDtWJEyf07LPPKj8/Xx07dtS6desUEREhScrPz3f4zJtz585pypQpOnz4sLy9vdWhQwetXbtW8fHxZl0CAABwMaZPKB47dqzGjh1b5bb09HSH9aeeekpPPfVUPVQFAAAaKtO/fgEAAKA2EW4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClEG4AAIClmB5uXn31VUVFRcnLy0tdu3bV559/Xm3/rKwsde3aVV5eXrruuuuUmppaT5UCAICGwNRw8/bbb+vJJ5/U008/rZycHPXo0UMDBgxQbm5ulf0PHDig+Ph49ejRQzk5OZo6daomTJigjIyMeq4cAAC4KlPDzdy5czVy5EiNGjVK7dq107x58xQeHq6FCxdW2T81NVWtWrXSvHnz1K5dO40aNUojRozQiy++WM+VAwAAV2VauDl37px27NihuLg4h/a4uDht2bKlyn22bt1aqX+/fv2UnZ2t0tLSOqsVAAA0HG5mnfj48eMqLy9XcHCwQ3twcLAKCgqq3KegoKDK/mVlZTp+/LhCQ0Mr7VNSUqKSkhL7emFhoSSpqKjoSi+hShUlv9XJcV3dld5P7lvNXa33TKq7P7+4uKv1942/25xTF39GLxzTMIxL9jUt3Fxgs9kc1g3DqNR2qf5VtV+QkpKi5OTkSu3h4eE1LRXVCJhndgUNE/fNOdw31Bd+15xTl/ft9OnTCggIqLaPaeGmefPmaty4caVRmqNHj1YanbkgJCSkyv5ubm5q1qxZlfskJSUpMTHRvl5RUaGTJ0+qWbNm1YaohqaoqEjh4eHKy8uTv7+/2eU0GNw353Dfao575hzum3OseN8Mw9Dp06cVFhZ2yb6mhRsPDw917dpVGzdu1JAhQ+ztGzdu1ODBg6vcJyYmRmvWrHFo27Bhg6Kjo+Xu7l7lPp6envL09HRoCwwMvLLiXZi/v79lfpHrE/fNOdy3muOeOYf75hyr3bdLjdhcYOrbUomJiVq6dKmWL1+uvXv3atKkScrNzdWYMWMknR91GTZsmL3/mDFjdOjQISUmJmrv3r1avny5li1bpilTpph1CQAAwMWYOudm6NChOnHihJ599lnl5+erY8eOWrdunSIiIiRJ+fn5Dp95ExUVpXXr1mnSpEl65ZVXFBYWpvnz5+v+++836xIAAICLMX1C8dixYzV27Ngqt6Wnp1dq69Wrl3bu3FnHVTU8np6emjZtWqVHcKge98053Lea4545h/vmnKv9vtmMy3mnCgAAoIEw/bulAAAAahPhBgAAWArhBgAAWArhBgAAWArhpoHbvHmzBg0apLCwMNlsNn3wwQdml+TyUlJSdOutt8rPz09BQUG69957tW/fPrPLcnkLFy5Up06d7B8KFhMTo48++sjsshqclJQU2Ww2Pfnkk2aX4tKmT58um83msISEhJhdlss7fPiwHnnkETVr1kw+Pj66+eabtWPHDrPLqneEmwauuLhYnTt31oIFC8wupcHIysrSuHHjtG3bNm3cuFFlZWWKi4tTcXGx2aW5tJYtW2rWrFnKzs5Wdna27rzzTg0ePFh79uwxu7QGY/v27Vq8eLE6depkdikNQocOHZSfn29fvv76a7NLcmmnTp3SHXfcIXd3d3300Uf69ttvNWfOHEt/Kv/FmP45N7gyAwYM0IABA8wuo0FZv369w3paWpqCgoK0Y8cO9ezZ06SqXN+gQYMc1v/nf/5HCxcu1LZt29ShQweTqmo4zpw5o4cfflhLlizRzJkzzS6nQXBzc2O0pgZmz56t8PBwpaWl2dsiIyPNK8hEjNzgqldYWChJatq0qcmVNBzl5eV66623VFxcrJiYGLPLaRDGjRungQMH6q677jK7lAZj//79CgsLU1RUlB588EH99NNPZpfk0lavXq3o6Gj9x3/8h4KCgtSlSxctWbLE7LJMQbjBVc0wDCUmJqp79+7q2LGj2eW4vK+//lpNmjSRp6enxowZo/fff1/t27c3uyyX99Zbb2nnzp1KSUkxu5QG4y9/+YtWrFihjz/+WEuWLFFBQYG6deumEydOmF2ay/rpp5+0cOFCtWnTRh9//LHGjBmjCRMmaMWKFWaXVu94LIWr2hNPPKGvvvpKX3zxhdmlNAht27bVrl279OuvvyojI0MJCQnKysoi4FQjLy9PEydO1IYNG+Tl5WV2OQ3GHx+333TTTYqJidH111+v1157TYmJiSZW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\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "plt.bar(frequency.index, frequency.values)\n",
+ "\n",
+ "# Add labels and title\n",
+ "plt.xlabel('Result')\n",
+ "plt.ylabel('Frequency')\n",
+ "plt.title('Frequency distribution')\n",
+ "\n",
+ "# Show the plot\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "'\\nFirst plot: displays all rolls and their results.\\nSecond plot: displays frequency of the results\\n\\n'"
+ ]
+ },
+ "execution_count": 6,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "\"\"\"\n",
+ "First plot: displays all rolls and their results.\n",
+ "Second plot: displays frequency of the results\n",
+ "\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": 7,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "3.0"
+ ]
+ },
+ "execution_count": 7,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# your code here\n",
+ "\n",
+ "def mean_1(array):\n",
+ " return sum(array)/len(array)\n",
+ "\n",
+ "mean_1(result['Result'])"
+ ]
+ },
+ {
+ "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": 8,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "3.0"
+ ]
+ },
+ "execution_count": 8,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# your code here\n",
+ "frequency = result['Result'].value_counts().reset_index()\n",
+ "frequency.columns = ['Result', 'Frequency']\n",
+ "\n",
+ "def weighted_mean(column1, column2):\n",
+ " return (column1 * column2).sum() / column2.sum()\n",
+ "\n",
+ "mean_with_freq = weighted_mean(frequency['Result'], frequency['Frequency'])\n",
+ "\n",
+ "mean_with_freq"
+ ]
+ },
+ {
+ "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": 9,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "2.5"
+ ]
+ },
+ "execution_count": 9,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# your code here\n",
+ "\n",
+ "result_series = result[\"Result\"].astype(int).sort_values(ascending=True)\n",
+ "\n",
+ "def median(values):\n",
+ " \n",
+ " if len(values) % 2 == 0:\n",
+ " return sum(values[int(len(values)/2)-1:int(len(values)/2)+1])/2\n",
+ " \n",
+ " else:\n",
+ " return values[int(len(values)/2)]\n",
+ "\n",
+ "median(result_series)\n",
+ " \n",
+ "# val is assumed to be a list or array of values.\n",
+ " # len(val) calculates the number of elements in the val list.\n",
+ " # int(len(val)/2) calculates the index of the middle element in the list. The int() function is used to ensure that the result is an integer, as list indices must be integers.\n",
+ " # val[int(len(val)/2)-1:int(len(val)/2)+1] slices the list to extract the two middle elements (or element if the list has an odd number of elements). The [x:y] slice notation extracts elements starting from index x up to, but not including, index y. In this case, it extracts the two middle elements or the middle element and the one before it.\n",
+ " # sum(val[int(len(val)/2)-1:int(len(val)/2)+1]) calculates the sum of the extracted values. This is needed to compute the median, especially when there are two middle values to average.\n",
+ " # Finally, /2 divides the sum by 2 to compute the median. This division by 2 is performed when there are two middle values, averaging them to get the median.\n",
+ " # So, in summary, the code calculates the median of a list of values by finding the middle one or averaging the two middle values when the list has an even number of elements."
+ ]
+ },
+ {
+ "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": 25,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Q1: 2\n",
+ "Q2 (Median): 2.5\n",
+ "Q3: 5\n",
+ "Q4 (Max): 6\n"
+ ]
+ }
+ ],
+ "source": [
+ "array = list(result.sort_values(by=\"Result\", ascending=True)['Result'])\n",
+ "\n",
+ "def quartiles(values):\n",
+ " n = len(values)\n",
+ "\n",
+ " if n % 2 == 0:\n",
+ " middle_index = n // 2\n",
+ " lower_half = values[:middle_index]\n",
+ " upper_half = values[middle_index:]\n",
+ " q1 = median(lower_half)\n",
+ " q3 = median(upper_half)\n",
+ " else:\n",
+ " middle_index = n // 2\n",
+ " lower_half = values[:middle_index]\n",
+ " upper_half = values[middle_index + 1:]\n",
+ " q1 = median(lower_half)\n",
+ " q3 = median(upper_half)\n",
+ "\n",
+ " q2 = median(values)\n",
+ " q4 = max(values)\n",
+ "\n",
+ " return q1, q2, q3, q4\n",
+ "\n",
+ "def median(values):\n",
+ " n = len(values)\n",
+ " if n % 2 == 0:\n",
+ " middle1 = values[n // 2 - 1]\n",
+ " middle2 = values[n // 2]\n",
+ " return (middle1 + middle2) / 2\n",
+ " else:\n",
+ " return values[n // 2]\n",
+ "\n",
+ "q1, q2, q3, q4 = quartiles(array)\n",
+ "print(\"Q1:\", q1)\n",
+ "print(\"Q2 (Median):\", q2)\n",
+ "print(\"Q3:\", q3)\n",
+ "print(\"Q4 (Max):\", q4)\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ },
+ {
+ "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": 34,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "
"
+ ],
+ "text/plain": [
+ " roll\n",
+ "value \n",
+ "1 12\n",
+ "2 17\n",
+ "3 14\n",
+ "4 22\n",
+ "5 12\n",
+ "6 23"
+ ]
+ },
+ "execution_count": 47,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# your code here\n",
+ "frequency_df = dice_hundred_df.groupby('value').agg({'roll':'count'})\n",
+ "\n",
+ "frequency_df"
+ ]
+ },
+ {
+ "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": 55,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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Pj1eeumlQfv39fVFX19f/3pPT09ERPT29hZ6tIiIONz3/4blfYG09meH44z//af/rmFohuN77JH3zLLsI/cteHy8/fbb8f7770dNTc2A7TU1NdHd3T1o//b29njkkUcGbW9oaCj0aMAJ5DNH/nBwX8TCLxVzFCg7VQuH7733798fVVVVH7pPwePjiFwuN2A9y7JB2yIi5s2bF62trf3rhw8fjn/9619x1llnHXX/E1Fvb280NDREV1dXjBo1qtjjlDTn6tg5V8fOuTp2ztWxO9nOVZZlsX///qivr//IfQseH2effXaMGDFi0FWOPXv2DLoaEhGRz+cjn88P2PbJT36y0GOVhVGjRp0U/4IWgnN17JyrY+dcHTvn6tidTOfqo654HFHwG05PPfXUuPTSS2P9+vUDtq9fvz6mTJlS6MMBAGVmWD52aW1tja997WsxceLEmDx5cixevDjefPPNuPvuu4fjcABAGRmW+Ljtttti79698cMf/jB2794d48aNi6effjoaGxuH43BlL5/Pxw9+8INBHz8xmHN17JyrY+dcHTvn6tg5Vx8slx3Lz8QAABSIZ7sAAEmJDwAgKfEBACQlPgCApMRHEW3cuDFmzJgR9fX1kcvl4sknnyz2SCWpvb09LrvssqisrIzq6uq4+eab49VXXy32WCWro6MjLr744v5fbDR58uR45plnij1WyWtvb49cLhdz584t9iglqa2tLXK53ICltra22GOVrH/+85/x1a9+Nc4666w4/fTT43Of+1xs3bq12GOVDPFRRAcPHowJEybEokWLij1KSevs7IyWlpbYtGlTrF+/Pg4dOhTTp0+PgwcPFnu0kjRmzJj48Y9/HFu2bIktW7bEtddeGzfddFPs2LGj2KOVrM2bN8fixYvj4osvLvYoJe2iiy6K3bt39y/bt28v9kglad++fXHFFVfEKaecEs8880z89a9/jccff/yk/e3dRzNsz3bhozU3N0dzc3Oxxyh5zz777ID1pUuXRnV1dWzdujWuvvrqIk1VumbMmDFg/Uc/+lF0dHTEpk2b4qKLLirSVKXrwIED8ZWvfCWWLFkSjz76aLHHKWkVFRWudhyDn/zkJ9HQ0BBLly7t33beeecVb6AS5MoHZaenpyciIkaPHl3kSUrf+++/HytXroyDBw/G5MmTiz1OSWppaYnPf/7zcf311xd7lJK3c+fOqK+vj6amprj99tvj9ddfL/ZIJWn16tUxceLE+OIXvxjV1dVxySWXxJIlS4o9VkkRH5SVLMuitbU1rrzyyhg3blyxxylZ27dvjzPPPDPy+Xzcfffd8cQTT8RnP/vZYo9VclauXBl//vOfo729vdijlLxJkybF8uXLY+3atbFkyZLo7u6OKVOmxN69e4s9Wsl5/fXXo6OjI8aOHRtr166Nu+++O77zne/E8uXLiz1ayfCxC2Xl3nvvjZdffjlefPHFYo9S0j7zmc/Etm3b4p133onf/OY3MWvWrOjs7BQg/6arqyvuu+++WLduXZx22mnFHqfk/ftHxOPHj4/JkyfHpz71qVi2bFm0trYWcbLSc/jw4Zg4cWLMnz8/IiIuueSS2LFjR3R0dMTXv/71Ik9XGlz5oGzMmTMnVq9eHc8//3yMGTOm2OOUtFNPPTU+/elPx8SJE6O9vT0mTJgQP/3pT4s9VknZunVr7NmzJy699NKoqKiIioqK6OzsjJ/97GdRUVER77//frFHLGlnnHFGjB8/Pnbu3FnsUUpOXV3doNC/8MIL48033yzSRKXHlQ9KXpZlMWfOnHjiiSdiw4YN0dTUVOyRyk6WZdHX11fsMUrKddddN+inNb7xjW/EBRdcEN/73vdixIgRRZqsPPT19cUrr7wSV111VbFHKTlXXHHFoF8H8Le//c3DVf+N+CiiAwcOxGuvvda/vmvXrti2bVuMHj06zj333CJOVlpaWlpixYoV8dRTT0VlZWV0d3dHRERVVVWMHDmyyNOVnoceeiiam5ujoaEh9u/fHytXrowNGzYM+qmhk11lZeWg+4bOOOOMOOuss9xPdBT3339/zJgxI84999zYs2dPPProo9Hb2xuzZs0q9mgl57vf/W5MmTIl5s+fH1/60pfiT3/6UyxevDgWL15c7NFKR0bRPP/881lEDFpmzZpV7NFKytHOUURkS5cuLfZoJemb3/xm1tjYmJ166qnZOeeck1133XXZunXrij1WWbjmmmuy++67r9hjlKTbbrstq6ury0455ZSsvr4+mzlzZrZjx45ij1Wyfve732Xjxo3L8vl8dsEFF2SLFy8u9kglJZdlWVak7gEATkJuOAUAkhIfAEBS4gMASEp8AABJiQ8AICnxAQAkJT4AgKTEBwCQlPgAAJISHwBAUuIDAEhKfAAASf1/LdB2gPopjN8AAAAASUVORK5CYII=\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "# your code here\n",
+ "plt.hist(dice_hundred_df['value'], bins=6, range= (0.5, 6.5))\n",
+ "plt.vlines(dice_hundred_df['value'].mean(), ymin=0, ymax=25, lw=2, color= \"r\")\n",
+ "\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "\"\"\"\n",
+ "The mean shows as the red line (3.74). The distribution of hundred dice rolls is slightly skewed to the right\n",
+ "\n",
+ "\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": 65,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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nfx+v8rKysLbLrroovgNZBBXUNAlNTY2SpJSU1PjPIltp06d0tq1a9XS0qKRI0fGexyzZs2apYkTJ2r8+PHxHsW86upq+Xw+ZWVlaerUqfroo4/iPZJJGzduVE5Ojm677Talp6dryJAhWrp0abzHMoVAQZfjOI4KCwt11VVXKTs7O97jmLR//35997vfldvt1j333KP169frhz/8YbzHMmnt2rXau3evSktL4z2KecOHD9fKlSu1efNmLV26VPX19Ro1apSOHj0a79HM+eijj7R48WINGDBAmzdv1j333KNf/epXWrlyZbxHM4OPeNDl3HfffXrnnXe0Y8eOeI9i1g9+8APt27dPx48f15/+9CcVFBSosrKSSPmK2tpa3X///dqyZYu6d+8e73HM+/LH0YMGDdLIkSN18cUXa8WKFSosLIzjZPacPn1aOTk5mj9/viRpyJAhOnjwoBYvXqw777wzztPZwBUUdCmzZ8/Wxo0btW3bNvXr1y/e45iVlJSk73//+8rJyVFpaakGDx6sZ555Jt5jmVNVVaWGhgYNGzZMiYmJSkxMVGVlpf7whz8oMTFRp06diveIpvXq1UuDBg1SdXV1vEcxx+v1tvkPgssuu0xHjhyJ00T2cAUFXYLjOJo9e7bWr1+viooKZWVlxXukTsVxHIVCoXiPYc64cePa/BbKz3/+c1166aV68MEHlZCQEKfJOodQKKT33ntPV199dbxHMWf06NFt/imEDz74gC/M/RICxbjm5mYdOnQovF5TU6N9+/YpNTVV/fv3j+NktsyaNUtr1qzRyy+/rOTkZNXX10uSUlJS1KNHjzhPZ8vDDz+sQCAgv9+vpqYmrV27VhUVFW1+EwpScnJym/uYevXqpT59+nB/UzuKioqUn5+v/v37q6GhQY8//riCwaAKCgriPZo5v/71rzVq1CjNnz9fkydP1l//+lctWbJES5Ysifdodjgwbdu2bY6kNktBQUG8RzOlvfdIklNWVhbv0cy56667nMzMTCcpKcnp27evM27cOGfLli3xHqvTGDNmjHP//ffHewyTpkyZ4ni9Xqdbt26Oz+dzJk2a5Bw8eDDeY5n15z//2cnOznbcbrdz6aWXOkuWLIn3SKa4HMdx4tRGAAAA7eImWQAAYA6BAgAAzCFQAACAOQQKAAAwh0ABAADmECgAAMAcAgUAAJhDoAAAAHMIFAAAYA6BAgAAzCFQAACAOQQKAAAw538Btr762p1t7HsAAAAASUVORK5CYII=\n",
+ "text/plain": [
+ "
"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "mean is 3.447\n"
+ ]
+ }
+ ],
+ "source": [
+ "# your code here\n",
+ "file_path_2 = '/Users/alvarog/Desktop/DA.RMT.OCT23/Week03/Descriptive-Stats/data/roll_the_dice_thousand.csv'\n",
+ "dice_thousand_df = pd.read_csv(file_path_2)\n",
+ "\n",
+ "frequency_th_df = dice_thousand_df.groupby('value').agg({'roll':'count'})\n",
+ "\n",
+ "plt.hist(dice_thousand_df['value'], bins=6, range= (0.5, 6.5))\n",
+ "plt.vlines(dice_thousand_df['value'].mean(), ymin=0, ymax=175, lw=2, color= \"r\")\n",
+ "\n",
+ "plt.show()\n",
+ "\n",
+ "print('mean is ', dice_thousand_df['value'].mean())"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "\"\"\"\n",
+ "The bigger the roll count, the more evenly distributed it becomes.\n",
+ "\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": 83,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "array([[]], dtype=object)"
+ ]
+ },
+ "execution_count": 83,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAigAAAGxCAYAAABIjE2TAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA07ElEQVR4nO3df3QU5b3H8c8m2SwJJkCIyWZLiFHxejUpKlQQrIRiQiNikaqV+APEH7SiVy5SFLleFqvAoaeKBaHV0oBihPYUqIotBIUARatEqQRbjDX8UBNzQEiA4LIkz/3Dw16XBEjCJnl2eb/OmRPmmWdmnu9ms/thdmbHYYwxAgAAsEhURw8AAADgRAQUAABgHQIKAACwDgEFAABYh4ACAACsQ0ABAADWIaAAAADrEFAAAIB1CCgAAMA6BBTgLLZo0SI5HA5t2bKlo4fSZoqKijRnzpwmlzkcDnm93nYdD4DmienoAQBAWyoqKlJZWZkmTJjQaNnbb7+tHj16tP+gAJwWAQWAFerq6hQfH9+u++zfv3+77g9A8/ERDxDBNm3apCFDhighIUHx8fEaMGCAVq1a1ajf/v37dddddykpKUmdO3fW8OHD9emnnwb1+eCDD3T99dcrJSVFLpdLHo9Hw4YN02effRboY4zR/PnzddlllykuLk7dunXTTTfd1GhbOTk5ysrK0oYNGzRgwADFx8dr7NixGjFihDIyMtTQ0NBojP369dMVV1wRmH/uued0zTXXKCUlRZ07d1Z2drZmz54tv98ftJ9Vq1Zp165dcjgcgem4pj7iKSsr049+9CN169ZNnTp10mWXXabFixcH9Vm/fr0cDodeeeUVTZ06VR6PR4mJibr22mu1Y8eOU/xGADQXAQWIUCUlJfrBD36gmpoaLVy4UK+88ooSEhI0fPhwLVu2LKjv3XffraioqMD5Gu+++65ycnJ04MABSdLhw4eVm5urL7/8Us8995yKi4s1Z84c9ezZUwcPHgxsZ9y4cZowYYKuvfZarVy5UvPnz9f27ds1YMAAffnll0H7rKys1O23366CggK98cYbuv/++zV27Fjt3r1bb731VlDff/3rX3r33Xd11113Bdr+/e9/q6CgQC+99JJef/113X333frlL3+pcePGBfrMnz9fAwcOlNvt1ttvvx2YTmbHjh0aMGCAtm/frl//+tdavny5LrnkEo0ZM0azZ89u1P+xxx7Trl279Lvf/U7PP/+8ysvLNXz4cNXX15/+FwTg1AyAiNS/f3+TkpJiDh48GGg7duyYycrKMj169DANDQ2msLDQSDI33nhj0Lp/+9vfjCTz5JNPGmOM2bJli5FkVq5cedL9vf3220aS+dWvfhXUvmfPHhMXF2cmT54caBs0aJCRZN58882gvn6/36SmppqCgoKg9smTJ5vY2Fizd+/eJvddX19v/H6/efHFF010dLT56quvAsuGDRtmMjIymlxPkpk2bVpg/tZbbzUul8vs3r07qF9+fr6Jj483Bw4cMMYYs27dOiPJXHfddUH9/vCHPxhJ5u23325yfwCajyMoQAQ6fPiw/v73v+umm27SOeecE2iPjo7WHXfcoc8++yzoo4jbbrstaP0BAwYoIyND69atkyRdeOGF6tatmx555BH95je/0UcffdRon6+//rocDoduv/12HTt2LDC53W717t1b69evD+rfrVs3/eAHPwhqi4mJ0e23367ly5erpqZGklRfX6+XXnpJP/rRj9S9e/dA3w8++EA33HCDunfvrujoaDmdTt15552qr6/Xxx9/3KrH7a233tKQIUOUnp4e1D5mzBjV1dU1Ovpyww03BM1/97vflSTt2rWrVfsH8P8IKEAE2r9/v4wxSktLa7TM4/FIkvbt2xdoc7vdjfq53e5Any5duqikpESXXXaZHnvsMV166aXyeDyaNm1a4JyPL7/8UsYYpaamyul0Bk3vvPOO9u7dG7T9psYmSWPHjtXXX3+tpUuXSpJWr16tysrKoI93du/ere9///v6/PPP9eyzz2rjxo1677339Nxzz0mSjhw50uzH6tv27dvX7MdMUlBgkiSXy3VG+wfw/7iKB4hA3bp1U1RUlCorKxst++KLLyRJycnJKi8vlyRVVVU16ldVVaULL7wwMJ+dna2lS5fKGKMPP/xQixYt0hNPPKG4uDg9+uijSk5OlsPh0MaNGwNv1N92Ytu3T1b9tksuuURXXnmlCgsLNW7cOBUWFsrj8SgvLy/QZ+XKlTp8+LCWL1+ujIyMQPvWrVtP8aicXvfu3U/7mAFoHxxBASJQ586d1a9fPy1fvjzof/MNDQ1asmSJevTooYsuuijQ/vLLLwetv3nzZu3atUs5OTmNtu1wONS7d28988wz6tq1q95//31J0vXXXy9j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XFFGv+jboMe3RMnX4GjjUbW/tq6vzDs05NtsiXB8bjZXJNcmUV97qK2tVXJycrMCSpt8xOP3+3XLLbeooqJCb7311mkHccUVV8jpdKq8vLzJgOJyueRyuRq1O53OM36QQ7ENm1GfPXz1LXsz9jU4WrxOOGmr+mx5PoTTc7OlIrk2ifraet/NFfKAcjyclJeXa926derevftp19m+fbv8fr/S0tJCPRwAABCGWhxQDh06pE8++SQwX1FRoa1btyopKUkej0c33XST3n//fb3++uuqr69XVVWVJCkpKUmxsbH697//rZdfflnXXXedkpOT9dFHH+nhhx/W5ZdfroEDB4auMgAAELZaHFC2bNmiwYMHB+YnTpwoSRo9erS8Xq9effVVSdJll10WtN66deuUk5Oj2NhYvfnmm3r22Wd16NAhpaena9iwYZo2bZqio6PPoBQAABApWhxQcnJydKrzak93zm16erpKSkpaulsAAHAW4V48AADAOgQUAABgHQIKAACwDgEFAABYh4ACAACsQ0ABAADWIaAAAADrEFAAAIB1CCgAAMA6BBQAAGAdAgoAALAOAQUAAFiHgAIAAKxDQAEAANYhoAAAAOsQUAAAgHUIKAAAwDoEFAAAYB0CCgAAsA4BBQAAWIeAAgAArENAAQAA1iGgAAAA6xBQAACAdQgoAADAOjEdPQAACKXzHl3VIfvdOWtYh+wXiFQcQQEAANYhoAAAAOsQUAAAgHUIKAAAwDoEFAAAYB0CCgAAsA4BBQAAWIeAAgAArNPiL2rbsGGDfvnLX6q0tFSVlZVasWKFRowYEVhujNH06dP1/PPPa//+/erXr5+ee+45XXrppYE+Pp9PkyZN0iuvvKIjR45oyJAhmj9/vnr06BGSooBT6agv8gIANF+Lj6AcPnxYvXv31rx585pcPnv2bD399NOaN2+e3nvvPbndbuXm5urgwYOBPhMmTNCKFSu0dOlSbdq0SYcOHdL111+v+vr61lcCAAAiRouPoOTn5ys/P7/JZcYYzZkzR1OnTtXIkSMlSYsXL1ZqaqqKioo0btw41dTUaOHChXrppZd07bXXSpKWLFmi9PR0rV27VkOHDj2DcgAAQCQI6b14KioqVFVVpby8vECby+XSoEGDtHnzZo0bN06lpaXy+/1BfTwej7KysrR58+YmA4rP55PP5wvM19bWSpL8fr/8fn+rxnp8vdaubzvqOzlXtAn1cELKFWWCfkaaSK3vxOdkJP7tRXJtEvW15xiaI6QBpaqqSpKUmpoa1J6amqpdu3YF+sTGxqpbt26N+hxf/0QzZ87U9OnTG7WvWbNG8fHxZzTm4uLiM1rfdtTX2Owr22AgbeAXfRs6eghtKtLqe+ONN4LmI/lvL5Jrk6ivLdXV1TW7b5vczdjhcATNG2MatZ3oVH2mTJmiiRMnBuZra2uVnp6uvLw8JSYmtmqMfr9fxcXFys3NldPpbNU2bEZ9J5flXd1GowoNV5TRL/o26PEtUfI1nPrvJhxFan1l3m+O/kby314k1yZRX3s4/glIc4Q0oLjdbknfHCVJS0sLtFdXVweOqrjdbh09elT79+8POopSXV2tAQMGNLldl8sll8vVqN3pdJ7xgxyKbdiM+hrz1YfHm6KvwRE2Y22NSKvvxOdhJP/tRXJtEvW19b6bK6Tfg5KZmSm32x10+Ojo0aMqKSkJhI8+ffrI6XQG9amsrFRZWdlJAwoAADi7tPgIyqFDh/TJJ58E5isqKrR161YlJSWpZ8+emjBhgmbMmKFevXqpV69emjFjhuLj41VQUCBJ6tKli+6++249/PDD6t69u5KSkjRp0iRlZ2cHruoBAABntxYHlC1btmjw4MGB+ePnhowePVqLFi3S5MmTdeTIEd1///2BL2pbs2aNEhISAus888wziomJ0S233BL4orZFixYpOjo6BCUBAIBw1+KAkpOTI2NOfnmgw+GQ1+uV1+s9aZ9OnTpp7ty5mjt3bkt3DwAAzgLciwcAAFiHgAIAAKxDQAEAANYhoAAAAOsQUAAAgHUIKAAAwDoEFAAAYB0CCgAAsA4BBQAAWIeAAgAArENAAQAA1iGgAAAA6xBQAACAdQgoAADAOgQUAABgHQIKAACwDgEFAABYh4ACAACsQ0ABAADWIaAAAADrEFAAAIB1CCgAAMA6BBQAAGAdAgoAALAOAQUAAFiHgAIAAKxDQAEAANYhoAAAAOsQUAAAgHUIKAAAwDoEFAAAYB0CCgAAsA4BBQAAWIeAAgAArBPygHLeeefJ4XA0msaPHy9JGjNmTKNl/fv3D/UwAABAGIsJ9Qbfe+891dfXB+bLysqUm5urm2++OdD2wx/+UIWFhYH52NjYUA8DAACEsZAHlHPPPTdoftasWbrgggs0aNCgQJvL5ZLb7Q71rgEAQIQIeUD5tqNHj2rJkiWaOHGiHA5HoH39+vVKSUlR165dNWjQID311FNKSUk56XZ8Pp98Pl9gvra2VpLk9/vl9/tbNbbj67V2fdtR38m5ok2ohxNSrigT9DPSRGp9Jz4nI/FvL5Jrk6ivPcfQHA5jTJu9SvzhD39QQUGBdu/eLY/HI0latmyZzjnnHGVkZKiiokKPP/64jh07ptLSUrlcria34/V6NX369EbtRUVFio+Pb6vhAwCAEKqrq1NBQYFqamqUmJh4yr5tGlCGDh2q2NhYvfbaayftU1lZqYyMDC1dulQjR45ssk9TR1DS09O1d+/e0xZ4Mn6/X8XFxcrNzZXT6WzVNmxGfSeX5V3dRqMKDVeU0S/6NujxLVHyNThOv0KYidT6yrxDJUX2314k1yZRX3uora1VcnJyswJKm33Es2vXLq1du1bLly8/Zb+0tDRlZGSovLz8pH1cLleTR1ecTucZP8ih2IbNqK8xX314vCn6GhxhM9bWiLT6TnweRvLfXiTXJlFfW++7udrse1AKCwuVkpKiYcOGnbLfvn37tGfPHqWlpbXVUAAAQJhpk4DS0NCgwsJCjR49WjEx/3+Q5tChQ5o0aZLefvtt7dy5U+vXr9fw4cOVnJysG2+8sS2GAgAAwlCbfMSzdu1a7d69W2PHjg1qj46O1rZt2/Tiiy/qwIEDSktL0+DBg7Vs2TIlJCS0xVAAAEAYapOAkpeXp6bOvY2Li9Pq1XafoAgAADoe9+IBAADWIaAAAADrEFAAAIB1CCgAAMA6BBQAAGAdAgoAALAOAQUAAFiHgAIAAKxDQAEAANYhoAAAAOsQUAAAgHUIKAAAwDoEFAAAYJ02uZsxAJxtznt0lSTJFW00+0opy7tavnpHm+9356xhbb4PoCNwBAUAAFiHgAIAAKxDQAEAANYhoAAAAOtwkiw6zPGTClujvU9EBAC0L46gAAAA6xBQAACAdQgoAADAOgQUAABgHQIKAACwDgEFAABYh4ACAACsQ0ABAADWIaAAAADrEFAAAIB1CCgAAMA6BBQAAGAdbhYIAGHsTG662VIn3qRz56xh7bZvnH04ggIAAKzDERS06//AAABojpAfQfF6vXI4HEGT2+0OLDfGyOv1yuPxKC4uTjk5Odq+fXuohwEAAMJYm3zEc+mll6qysjIwbdu2LbBs9uzZevrppzVv3jy99957crvdys3N1cGDB9tiKAAAIAy1SUCJiYmR2+0OTOeee66kb46ezJkzR1OnTtXIkSOVlZWlxYsXq66uTkVFRW0xFAAAEIba5ByU8vJyeTweuVwu9evXTzNmzND555+viooKVVVVKS8vL9DX5XJp0KBB2rx5s8aNG9fk9nw+n3w+X2C+trZWkuT3++X3+1s1xuPrtXZ927WkPle0aevhhJwrygT9jCSRXJtEfeHsxNoi7fWT94X2G0NzOIwxIf0r+stf/qK6ujpddNFF+vLLL/Xkk0/qX//6l7Zv364dO3Zo4MCB+vzzz+XxeALr3Hfffdq1a5dWr17d5Da9Xq+mT5/eqL2oqEjx8fGhHD4AAGgjdXV1KigoUE1NjRITE0/ZN+QB5USHDx/WBRdcoMmTJ6t///4aOHCgvvjiC6WlpQX63HvvvdqzZ4/++te/NrmNpo6gpKena+/evact8GT8fr+Ki4uVm5srp9PZqm3YrCX1ZXmbDoY2c0UZ/aJvgx7fEiVfg6OjhxNSkVybRH3h7MTayrxDO3pIIcX7Qturra1VcnJyswJKm19m3LlzZ2VnZ6u8vFwjRoyQJFVVVQUFlOrqaqWmpp50Gy6XSy6Xq1G70+k84wc5FNuwWXPq89WH74uor8ER1uM/lUiuTaK+cHa8tkh97eR9oW333Vxt/kVtPp9P//znP5WWlqbMzEy53W4VFxcHlh89elQlJSUaMGBAWw8FAACEiZAfQZk0aZKGDx+unj17qrq6Wk8++aRqa2s1evRoORwOTZgwQTNmzFCvXr3Uq1cvzZgxQ/Hx8SooKAj1UAAAQJgKeUD57LPPNGrUKO3du1fnnnuu+vfvr3feeUcZGRmSpMmTJ+vIkSO6//77tX//fvXr109r1qxRQkJCqIcCAADCVMgDytKlS0+53OFwyOv1yuv1hnrXAAAgQnCzQAAAYB0CCgAAsA4BBQAAWIeAAgAArENAAQAA1iGgAAAA6xBQAACAdQgoAADAOgQUAABgHQIKAACwDgEFAABYh4ACAACsQ0ABAADWIaAAAADrEFAAAIB1CCgAAMA6BBQAAGAdAgoAALAOAQUAAFiHgAIAAKxDQAEAANYhoAAAAOsQUAAAgHUIKAAAwDoEFAAAYB0CCgAAsA4BBQAAWIeAAgAArENAAQAA1iGgAAAA6xBQAACAdQgoAADAOgQUAABgHQIKAACwTsgDysyZM/W9731PCQkJSklJ0YgRI7Rjx46gPmPGjJHD4Qia+vfvH+qhAACAMBXygFJSUqLx48frnXfeUXFxsY4dO6a8vDwdPnw4qN8Pf/hDVVZWBqY33ngj1EMBAABhKibUG/zrX/8aNF9YWKiUlBSVlpbqmmuuCbS7XC653e5Q7x4AAESAkAeUE9XU1EiSkpKSgtrXr1+vlJQUde3aVYMGDdJTTz2llJSUJrfh8/nk8/kC87W1tZIkv98vv9/fqnEdX6+169uuJfW5ok1bDyfkXFEm6GckieTaJOoLZyfWFmmvn7wvtN8YmsNhjGmzvyJjjH70ox9p//792rhxY6B92bJlOuecc5SRkaGKigo9/vjjOnbsmEpLS+VyuRptx+v1avr06Y3ai4qKFB8f31bDBwAAIVRXV6eCggLV1NQoMTHxlH3bNKCMHz9eq1at0qZNm9SjR4+T9qusrFRGRoaWLl2qkSNHNlre1BGU9PR07d2797QFnozf71dxcbFyc3PldDpbtQ2btaS+LO/qdhpV6LiijH7Rt0GPb4mSr8HR0cMJqUiuTaK+cHZibWXeoR09pJDifaHt1dbWKjk5uVkBpc0+4nnwwQf16quvasOGDacMJ5KUlpamjIwMlZeXN7nc5XI1eWTF6XSe8YMcim3YrDn1+erD90XU1+AI6/GfSiTXJlFfODteW6S+dvK+0Lb7bq6QBxRjjB588EGtWLFC69evV2Zm5mnX2bdvn/bs2aO0tLRQDwcAAIShkF9mPH78eC1ZskRFRUVKSEhQVVWVqqqqdOTIEUnSoUOHNGnSJL399tvauXOn1q9fr+HDhys5OVk33nhjqIcDAADCUMiPoCxYsECSlJOTE9ReWFioMWPGKDo6Wtu2bdOLL76oAwcOKC0tTYMHD9ayZcuUkJAQ6uEAAIAw1CYf8ZxKXFycVq8Ov5MyAQBA++FePAAAwDoEFAAAYB0CCgAAsA4BBQAAWIeAAgAArENAAQAA1iGgAAAA6xBQAACAddrsZoEAgMh23qOrOmS/O2cN65D9on1xBAUAAFiHgAIAAKxDQAEAANYhoAAAAOtwkqxFQnnCmSvaaPaVUpZ3tXz1jpBtFwCA9sARFAAAYB2OoAAAwkpbXd58uiPPXN7cvjiCAgAArENAAQAA1iGgAAAA6xBQAACAdQgoAADAOgQUAABgHS4zbkJH3aETAAB8gyMoAADAOgQUAABgHQIKAACwDgEFAABYh4ACAACsQ0ABAADWIaAAAADrEFAAAIB1CCgAAMA6BBQAAGAdAgoAALBOhwaU+fPnKzMzU506dVKfPn20cePGjhwOAACwRIcFlGXLlmnChAmaOnWqPvjgA33/+99Xfn6+du/e3VFDAgAAluiwuxk//fTTuvvuu3XPPfdIkubMmaPVq1drwYIFmjlzZkcNCwCAJoX7ne5d0Uazr5SyvKvlq3ectv/OWcPaYVQn1yEB5ejRoyotLdWjjz4a1J6Xl6fNmzc36u/z+eTz+QLzNTU1kqSvvvpKfr+/VWPw+/2qq6vTvn375HQ6g5bFHDvcqm3aJKbBqK6uQTH+KNU3nP6JGG4iub5Irk2ivnAWybVJ1Heiffv2hXwMBw8elCQZY07f2XSAzz//3Egyf/vb34Lan3rqKXPRRRc16j9t2jQjiYmJiYmJiSkCpj179pw2K3TYRzyS5HAEJzhjTKM2SZoyZYomTpwYmG9oaNBXX32l7t27N9m/OWpra5Wenq49e/YoMTGxVduwGfWFr0iuTaK+cBbJtUnU1x6MMTp48KA8Hs9p+3ZIQElOTlZ0dLSqqqqC2qurq5Wamtqov8vlksvlCmrr2rVrSMaSmJgYkU/E46gvfEVybRL1hbNIrk2ivrbWpUuXZvXrkKt4YmNj1adPHxUXFwe1FxcXa8CAAR0xJAAAYJEO+4hn4sSJuuOOO9S3b19dddVVev7557V792799Kc/7aghAQAAS3RYQPnJT36iffv26YknnlBlZaWysrL0xhtvKCMjo13273K5NG3atEYfHUUK6gtfkVybRH3hLJJrk6jPNg5jmnOtDwAAQPvhXjwAAMA6BBQAAGAdAgoAALAOAQUAAFiHgAIAAKxz1gaU+fPnKzMzU506dVKfPn20cePGjh5Sq2zYsEHDhw+Xx+ORw+HQypUrg5YbY+T1euXxeBQXF6ecnBxt3769YwbbQjNnztT3vvc9JSQkKCUlRSNGjNCOHTuC+oRzfQsWLNB3v/vdwLc6XnXVVfrLX/4SWB7OtZ1o5syZcjgcmjBhQqAtnOvzer1yOBxBk9vtDiwP59ok6fPPP9ftt9+u7t27Kz4+XpdddplKS0sDy8O5vvPOO6/R787hcGj8+PGSwrs2STp27Jj+53/+R5mZmYqLi9P555+vJ554Qg0NDYE+YVPjGd31L0wtXbrUOJ1O88ILL5iPPvrIPPTQQ6Zz585m165dHT20FnvjjTfM1KlTzZ/+9CcjyaxYsSJo+axZs0xCQoL505/+ZLZt22Z+8pOfmLS0NFNbW9sxA26BoUOHmsLCQlNWVma2bt1qhg0bZnr27GkOHToU6BPO9b366qtm1apVZseOHWbHjh3mscceM06n05SVlRljwru2b3v33XfNeeedZ7773e+ahx56KNAezvVNmzbNXHrppaaysjIwVVdXB5aHc21fffWVycjIMGPGjDF///vfTUVFhVm7dq355JNPAn3Cub7q6uqg31txcbGRZNatW2eMCe/ajDHmySefNN27dzevv/66qaioMH/84x/NOeecY+bMmRPoEy41npUB5corrzQ//elPg9ouvvhi8+ijj3bQiELjxIDS0NBg3G63mTVrVqDt66+/Nl26dDG/+c1vOmCEZ6a6utpIMiUlJcaYyKvPGGO6detmfve730VMbQcPHjS9evUyxcXFZtCgQYGAEu71TZs2zfTu3bvJZeFe2yOPPGKuvvrqky4P9/pO9NBDD5kLLrjANDQ0RERtw4YNM2PHjg1qGzlypLn99tuNMeH1+zvrPuI5evSoSktLlZeXF9Sel5enzZs3d9Co2kZFRYWqqqqCanW5XBo0aFBY1lpTUyNJSkpKkhRZ9dXX12vp0qU6fPiwrrrqqoipbfz48Ro2bJiuvfbaoPZIqK+8vFwej0eZmZm69dZb9emnn0oK/9peffVV9e3bVzfffLNSUlJ0+eWX64UXXggsD/f6vu3o0aNasmSJxo4dK4fDERG1XX311XrzzTf18ccfS5L+8Y9/aNOmTbruuuskhdfvr8O+6r6j7N27V/X19Y3umpyamtro7srh7ng9TdW6a9eujhhSqxljNHHiRF199dXKysqSFBn1bdu2TVdddZW+/vprnXPOOVqxYoUuueSSwAtFONe2dOlSvf/++3rvvfcaLQv3312/fv304osv6qKLLtKXX36pJ598UgMGDND27dvDvrZPP/1UCxYs0MSJE/XYY4/p3Xff1X/913/J5XLpzjvvDPv6vm3lypU6cOCAxowZIyn8n5eS9Mgjj6impkYXX3yxoqOjVV9fr6eeekqjRo2SFF41nnUB5TiHwxE0b4xp1BYpIqHWBx54QB9++KE2bdrUaFk41/cf//Ef2rp1qw4cOKA//elPGj16tEpKSgLLw7W2PXv26KGHHtKaNWvUqVOnk/YL1/ry8/MD/87OztZVV12lCy64QIsXL1b//v0lhW9tDQ0N6tu3r2bMmCFJuvzyy7V9+3YtWLBAd955Z6BfuNb3bQsXLlR+fr48Hk9QezjXtmzZMi1ZskRFRUW69NJLtXXrVk2YMEEej0ejR48O9AuHGs+6j3iSk5MVHR3d6GhJdXV1o0QZ7o5fVRDutT744IN69dVXtW7dOvXo0SPQHgn1xcbG6sILL1Tfvn01c+ZM9e7dW88++2zY11ZaWqrq6mr16dNHMTExiomJUUlJiX79618rJiYmUEO41neizp07Kzs7W+Xl5WH/u0tLS9Mll1wS1Paf//mf2r17t6TI+LuTpF27dmnt2rW65557Am2RUNvPf/5zPfroo7r11luVnZ2tO+64Q//93/+tmTNnSgqvGs+6gBIbG6s+ffqouLg4qL24uFgDBgzooFG1jczMTLnd7qBajx49qpKSkrCo1RijBx54QMuXL9dbb72lzMzMoOXhXl9TjDHy+XxhX9uQIUO0bds2bd26NTD17dtXt912m7Zu3arzzz8/rOs7kc/n0z//+U+lpaWF/e9u4MCBjS7n//jjjwN3mg/3+o4rLCxUSkqKhg0bFmiLhNrq6uoUFRX81h4dHR24zDisauyYc3M71vHLjBcuXGg++ugjM2HCBNO5c2ezc+fOjh5aix08eNB88MEH5oMPPjCSzNNPP20++OCDwCXTs2bNMl26dDHLly8327ZtM6NGjbLycrKm/OxnPzNdunQx69evD7ossK6uLtAnnOubMmWK2bBhg6moqDAffviheeyxx0xUVJRZs2aNMSa8a2vKt6/iMSa863v44YfN+vXrzaeffmreeecdc/3115uEhITAa0g41/buu++amJgY89RTT5ny8nLz8ssvm/j4eLNkyZJAn3Cuzxhj6uvrTc+ePc0jjzzSaFm41zZ69Gjzne98J3CZ8fLly01ycrKZPHlyoE+41HhWBhRjjHnuuedMRkaGiY2NNVdccUXg0tVws27dOiOp0TR69GhjzDeXlE2bNs243W7jcrnMNddcY7Zt29axg26mpuqSZAoLCwN9wrm+sWPHBp6D5557rhkyZEggnBgT3rU15cSAEs71Hf/eCKfTaTwejxk5cqTZvn17YHk412aMMa+99prJysoyLpfLXHzxxeb5558PWh7u9a1evdpIMjt27Gi0LNxrq62tNQ899JDp2bOn6dSpkzn//PPN1KlTjc/nC/QJlxodxhjTIYduAAAATuKsOwcFAADYj4ACAACsQ0ABAADWIaAAAADrEFAAAIB1CCgAAMA6BBQAAGAdAgoAALAOAQUAAFiHgAIAAKxDQAEAANb5Pxr9tJZRXl7dAAAAAElFTkSuQmCC\n",
+ "text/plain": [
+ "