diff --git a/your-code/.ipynb_checkpoints/main-checkpoint.ipynb b/your-code/.ipynb_checkpoints/main-checkpoint.ipynb new file mode 100644 index 0000000..ec4b942 --- /dev/null +++ b/your-code/.ipynb_checkpoints/main-checkpoint.ipynb @@ -0,0 +1,1372 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Understanding Descriptive Statistics\n", + "\n", + "Import the necessary libraries here:" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "# Libraries\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import pandas as pd\n", + "import random" + ] + }, + { + "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": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Dice_Roll Value\n", + "0 1 1\n", + "1 2 4\n", + "2 3 5\n", + "3 4 6\n", + "4 5 1\n", + "5 6 3\n", + "6 7 1\n", + "7 8 2\n", + "8 9 1\n", + "9 10 6\n" + ] + } + ], + "source": [ + "# your code here\n", + "\n", + "def dicerollsim ():\n", + " dice_rolls = random.choices(range(1,7), k=10)\n", + " df = pd.DataFrame({'Dice_Roll': range(1,11),'Value': dice_rolls })\n", + "\n", + " return df\n", + "\n", + "dice_roll_df = dicerollsim()\n", + "\n", + "print(dice_roll_df)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 2.- Plot the results sorted by value." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "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", + "
Dice_RollValue
011
451
671
891
782
563
124
235
346
9106
\n", + "
" + ], + "text/plain": [ + " Dice_Roll Value\n", + "0 1 1\n", + "4 5 1\n", + "6 7 1\n", + "8 9 1\n", + "7 8 2\n", + "5 6 3\n", + "1 2 4\n", + "2 3 5\n", + "3 4 6\n", + "9 10 6" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# your code here\n", + "#first sort the DF by value\n", + "\n", + "dice_roll_sorted = dice_roll_df.sort_values(by= 'Value')\n", + "\n", + "dice_roll_sorted" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAioAAAHFCAYAAADcytJ5AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAy1klEQVR4nO3de1wVdeL/8feJywEUEVDAO5im5D2x8lLeS1EXs3IlTVxtH7VpYW7rrTakVLLb1mbeKjVLs+1rqeWqad5Liywsg7xsmlje0kLFJIHP748enl8nUMEL8xFfz8dj/jgzc2beMxK8+8zMOS5jjBEAAICFrnI6AAAAwJlQVAAAgLUoKgAAwFoUFQAAYC2KCgAAsBZFBQAAWIuiAgAArEVRAQAA1qKoAAAAa1FU4JjZs2fL5XJ5poCAAEVFRaljx45KS0vTwYMHi7xn3LhxcrlcZZpz9+7dXjmvuuoqhYaGqnPnzvrggw8uaJuzZ8/2zDt9Pnbv3n3W9/7xvPn6+qpatWrq16+fduzYcV55LjaXy6Vx48Z5XmdmZmrcuHHnPLbSMMZo/vz5uummmxQREaGAgADVrFlTt956q1555ZWLth9JOnHihMaNG6c1a9Zc1O1K0po1a+Ryuc657dM/+z/++ONFzyBJp06dUmRkpG688cYzrlNYWKjatWuradOmJd5uSY8POBOKChw3a9Ysbdy4UStWrNBLL72k5s2ba9KkSYqNjdXKlSu91r3nnnu0ceNGR3I+8MAD2rhxo9avX69nnnlGO3bsUHx8vNatW+dIntPnbeXKlRo2bJgWL16sdu3a6aeffnIkz9lkZmYqNTX1ohaVMWPGKDExUbGxsXrllVe0dOlSjR8/XpGRkVq0aNFF24/0W1FJTU0t139s/fz8dPfdd+uTTz5RZmZmseusXLlS2dnZGjJkSBmnw5XM1+kAQOPGjRUXF+d5ffvtt+uhhx5Su3bt1KdPH+3YsUORkZGSpJo1a6pmzZqO5Kxdu7bn/zbbtm2r+vXrq3379nr11Vd18803l3me35+3Dh06qKCgQCkpKVq4cKH+8pe/lHmesvTLL7/o+eef18CBAzVjxgyvZYMGDVJhYeFF2Y8xRidPnrwo27ocDBkyRM8++6xmzpypZ555psjymTNnyt/fXwMGDHAgHa5UjKjASrVr19azzz6rY8eOafr06Z75Z7r0M2/ePLVu3VoVK1ZUxYoV1bx5c7366qte66xcuVKdO3dWpUqVFBQUpLZt2+rDDz8874ynS8KBAwe85m/dulUJCQkKDQ1VQECAmjdvrtdee+2893OheT777DP96U9/UlhYmAICAtSiRQv95z//8VrnxIkTevjhhxUTE6OAgACFhYUpLi5Ob775pmedDh06qEOHDkX2O2jQIEVHR58x1+zZs3XnnXdKkjp27Oi5ZHX6stcXX3yhnj17KiIiQm63W9WrV1ePHj20d+/eM24zNzdXeXl5qlatWrHLr7rK+1fbkSNHdP/996tGjRry9/dX3bp19cgjjygvL89rPZfLpWHDhmnatGmKjY2V2+3Wa6+9pqpVq0qSUlNTPfkHDRrked+OHTt01113eY4hNjZWL730UpFc33zzjbp166agoCBVqVJF9913n44dO3bG4yxOdna2+vTpo0qVKikkJEQDBgzQoUOHPMuHDBmisLAwnThxosh7O3XqpEaNGp1x27GxsWrdurVef/115efney37+eeftWjRIiUkJCg8PFyfffaZ+vXrp+joaAUGBio6OlqJiYn67rvvznkMpflZ+vXXXzV+/Hg1bNhQbrdbVatW1V/+8hevY0b5xogKrBUfHy8fH59zXlp57LHH9MQTT6hPnz76+9//rpCQEG3dutXrF+Ybb7yhgQMHKiEhQa+99pr8/Pw0ffp03XrrrVq+fLk6d+5c6ny7du2SJF1zzTWeedu2bVObNm0UERGhf//73woPD9cbb7yhQYMG6cCBAxo5cmSp93MheVavXq1u3brphhtu0LRp0xQSEqL58+frz3/+s06cOOH5YztixAi9/vrrGj9+vFq0aKHc3Fxt3bpVhw8fvuBcPXr00MSJEzV27Fi99NJLuu666yRJV199tXJzc9W1a1fFxMTopZdeUmRkpPbv36/Vq1ef9Q94lSpVVK9ePU2ZMkURERGKj49XgwYNii2xJ0+eVMeOHfW///1Pqampatq0qdavX6+0tDRlZGRoyZIlXusvXLhQ69ev12OPPaaoqCiFhYVp2bJl6tatm4YMGaJ77rlHkjzlJTMzU23atPGU66ioKC1fvlwPPvigfvzxR6WkpEj6rUC2b99efn5+mjJliiIjIzV37lwNGzasVOfztttuU9++fXXffffp66+/1j//+U9lZmbqk08+kZ+fn5KTkzVz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gQMHauzYsXr66adVuXJlr1G5SpUq6eabb9bTTz/tOQ9r167Vq6++qsqVK59z2yX9WerXr5/mzp2r+Ph4JScn6/rrr5efn5/27t2r1atXKyEhQbfddlupjguXIQdv5MUV7vTTK6cnf39/ExERYdq3b28mTpxoDh48WOQ9f3zq57Q5c+aYVq1amYCAAFOxYkXTokULrydqjDFm7dq1pkePHiYsLMz4+fmZGjVqmB49epi33377rDlPP6Hz9NNPF7v8zjvvNL6+vmbnzp3GGGO++uor06tXLxMSEmL8/f1Ns2bNimS5GE/9FPe01C+//GJq165t6tevb/Lz840xxmzZssX07dvXREREGD8/PxMVFWU6depkpk2b5nnf6NGjTVxcnAkNDTVut9vUrVvXPPTQQ+bHH3/02v5rr71mYmNjTUBAgLn22mvNW2+9VaKnfowx5vnnnzcxMTHGx8fHc+zffPONSUxMNFdffbUJDAw0ISEh5vrrrzezZ88+6znIy8szzzzzjOnevbupXbu2cbvdJiAgwMTGxpqRI0eaw4cPe61/+PBhc99995lq1aoZX19fU6dOHTNmzBhz8uTJIrmHDh1a7D5XrlxpWrRoYdxut5FkkpKSPMt27dplBg8ebGrUqGH8/PxM1apVTZs2bcz48eO9tpGZmWm6du1qAgICTFhYmBkyZIhZtGhRqZ762bx5s+nVq5epWLGiCQ4ONomJiebAgQPFvmfNmjVGknnyySfPuu0zue2224wkc//99xdZtnfvXnP77beb0NBQExwcbLp162a2bt1q6tSp43Vuinvqx5iS/yydOnXKPPPMM6ZZs2ae/74bNmxo7r33XrNjx47zOi5cXlzGnOOxCgDAZenvf/+7pk6dquzsbK97WIDLCZd+AKCc2bRpk7Zv364pU6bo3nvvpaTgssaICgCUMy6XS0FBQYqPj9esWbPO+dkpgM0YUQGAcob//0R5wuPJAADAWhQVAABgLYoKAACw1mV9j0phYaF++OEHBQcHl+pjrwEAgHOMMTp27JiqV6/u+aLLM7msi8oPP/xwxu93AQAAdsvOzj7rl8pKl3lROf09JdnZ2SX6GG8AAOC8o0ePqlatWiX6YsnLuqicvtxTqVIligoAAJeZkty2wc20AADAWhQVAABgLYoKAACwFkUFAABYi6ICAACsRVEBAADWoqgAAABrUVQAAIC1KCoAAMBaFBUAAGAtx4vK999/rwEDBig8PFxBQUFq3ry5Nm/e7HQsAABgAUe/6+enn35S27Zt1bFjRy1dulQRERH63//+p8qVKzsZCwAAWMLRojJp0iTVqlVLs2bN8syLjo52LhAAALCKo5d+Fi9erLi4ON15552KiIhQixYt9PLLLzsZCQAAWMTRovLtt99q6tSpql+/vpYvX6777rtPDz74oObMmVPs+nl5eTp69KjXBAAAyi+XMcY4tXN/f3/FxcXp448/9sx78MEHlZ6ero0bNxZZf9y4cUpNTS0yPycnR5UqVbqkWYEziR69xOkIRex+sofTEQCchyvl98nRo0cVEhJSor/fjo6oVKtWTddee63XvNjYWO3Zs6fY9ceMGaOcnBzPlJ2dXRYxAQCAQxy9mbZt27batm2b17zt27erTp06xa7vdrvldrvLIhoAALCAoyMqDz30kDZt2qSJEydq586dmjdvnmbMmKGhQ4c6GQsAAFjC0aLSqlUrvfvuu3rzzTfVuHFjPfHEE3r++efVv39/J2MBAABLOHrpR5J69uypnj17Oh0DAABYyPGP0AcAADgTigoAALAWRQUAAFiLogIAAKxFUQEAANaiqAAAAGtRVAAAgLUoKgAAwFoUFQAAYC2KCgAAsBZFBQAAWIuiAgAArEVRAQAA1qKoAAAAa1FUAACAtSgqAADAWhQVAABgLYoKAACwFkUFAABYi6ICAACsRVEBAADWoqgAAABrUVQAAIC1KCoAAMBaFBUAAGAtigoAALAWRQUAAFiLogIAAKxFUQEAANaiqAAAAGtRVAAAgLUoKgAAwFoUFQAAYC2KCgAAsBZFBQAAWIuiAgAArEVRAQAA1qKoAAAAa1FUAACAtSgqAADAWhQVAABgLYoKAACwFkUFAABYi6ICAACsRVEBAADWoqgAAABrUVQAAIC1KCoAAMBajhaVcePGyeVyeU1RUVFORgIAABbxdTpAo0aNtHLlSs9rHx8fB9MAAACbOF5UfH19GUUBAADFcvwelR07dqh69eqKiYlRv3799O23355x3by8PB09etRrAgAA5ZejIyo33HCD5syZo2uuuUYHDhzQ+PHj1aZNG3399dcKDw8vsn5aWppSU1MdSIqyED16idMRitj9ZA+nIwDAFc3REZXu3bvr9ttvV5MmTdSlSxctWfLbH6rXXnut2PXHjBmjnJwcz5SdnV2WcQEAQBlz/B6V36tQoYKaNGmiHTt2FLvc7XbL7XaXcSoAAOAUx+9R+b28vDxlZWWpWrVqTkcBAAAWcLSoPPzww1q7dq127dqlTz75RHfccYeOHj2qpKQkJ2MBAABLOHrpZ+/evUpMTNSPP/6oqlWr6sYbb9SmTZtUp04dJ2MBAABLOFpU5s+f7+TuAQCA5ay6RwUAAOD3KCoAAMBaFBUAAGAtigoAALAWRQUAAFiLogIAAKxFUQEAANaiqAAAAGtRVAAAgLUoKgAAwFoUFQAAYC2KCgAAsBZFBQAAWIuiAgAArEVRAQAA1qKoAAAAa1FUAACAtSgqAADAWhQVAABgLYoKAACwFkUFAABYi6ICAACsRVEBAADWoqgAAABrUVQAAIC1KCoAAMBaFBUAAGAtigoAALAWRQUAAFiLogIAAKxFUQEAANaiqAAAAGtRVAAAgLUoKgAAwFoUFQAAYC2KCgAAsBZFBQAAWIuiAgAArEVRAQAA1qKoAAAAa1FUAACAtSgqAADAWhQVAABgLYoKAACwFkUFAABYi6ICAACsRVEBAADWoqgAAABrWVNU0tLS5HK5NHz4cKejAAAAS1hRVNLT0zVjxgw1bdrU6SgAAMAijheV48ePq3///nr55ZcVGhrqdBwAAGARx4vK0KFD1aNHD3Xp0uWc6+bl5eno0aNeEwAAKL98ndz5/Pnz9fnnnys9Pb1E66elpSk1NfUSp7r8RY9e4nSEInY/2cPpCACAy5BjIyrZ2dlKTk7WG2+8oYCAgBK9Z8yYMcrJyfFM2dnZlzglAABwkmMjKps3b9bBgwfVsmVLz7yCggKtW7dOkydPVl5ennx8fLze43a75Xa7yzoqAABwiGNFpXPnzvrqq6+85v3lL39Rw4YNNWrUqCIlBQAAXHkcKyrBwcFq3Lix17wKFSooPDy8yHwAAHBlcvypHwAAgDNx9KmfP1qzZo3TEQAAgEUYUQEAANaiqAAAAGtRVAAAgLUoKgAAwFoUFQAAYC2KCgAAsBZFBQAAWIuiAgAArEVRAQAA1qKoAAAAa1FUAACAtSgqAADAWhQVAABgLYoKAACwFkUFAABYi6ICAACsRVEBAADWoqgAAABrUVQAAIC1KCoAAMBaFBUAAGAtigoAALAWRQUAAFiLogIAAKxFUQEAANaiqAAAAGudV1HJz8/XypUrNX36dB07dkyS9MMPP+j48eMXNRwAALiy+Zb2Dd999526deumPXv2KC8vT127dlVwcLCeeuopnTx5UtOmTbsUOQEAwBWo1CMqycnJiouL008//aTAwEDP/Ntuu00ffvjhRQ0HAACubKUeUdmwYYM++ugj+fv7e82vU6eOvv/++4sWDAAAoNQjKoWFhSooKCgyf+/evQoODr4ooQAAAKTzKCpdu3bV888/73ntcrl0/PhxpaSkKD4+/mJmAwAAV7hSX/r517/+pY4dO+raa6/VyZMnddddd2nHjh2qUqWK3nzzzUuREQAAXKFKXVSqV6+ujIwMvfnmm/r8889VWFioIUOGqH///l431wIAAFyoUhcVSQoMDNTgwYM1ePDgi50HAADAo9RFZc6cOWddPnDgwPMOAwAA8HulLirJycler0+dOqUTJ07I399fQUFBFBUAAHDRlPqpn59++slrOn78uLZt26Z27dpxMy0AALioLsqXEtavX19PPvlkkdEWAACAC3HRvj3Zx8dHP/zww8XaHAAAQOnvUVm8eLHXa2OM9u3bp8mTJ6tt27YXLRgAAECpi0rv3r29XrtcLlWtWlWdOnXSs88+e7FyAQAAlL6oFBYWXoocAAAARVy0e1QAAAAuthKNqIwYMaLEG3zuuefOOwwAAMDvlaiofPHFFyXamMvluqAwAAAAv1eiorJ69epLnQMAAKAIR+9RmTp1qpo2bapKlSqpUqVKat26tZYuXepkJAAAYJHz+vbk9PR0vf3229qzZ49+/fVXr2XvvPNOibdTs2ZNPfnkk6pXr54k6bXXXlNCQoK++OILNWrU6HyiAQCAcqTUIyrz589X27ZtlZmZqXfffVenTp1SZmamVq1apZCQkFJtq1evXoqPj9c111yja665RhMmTFDFihW1adOm0sYCAADlUKmLysSJE/Wvf/1L77//vvz9/fXCCy8oKytLffv2Ve3atc87SEFBgebPn6/c3Fy1bt36vLcDAADKj1IXlf/973/q0aOHJMntdis3N1cul0sPPfSQZsyYUeoAX331lSpWrCi326377rtP7777rq699tpi183Ly9PRo0e9JgAAUH6V+h6VsLAwHTt2TJJUo0YNbd26VU2aNNHPP/+sEydOlDpAgwYNlJGRoZ9//lkLFixQUlKS1q5dW2xZSUtLU2pqaqn3AaD8iB69xOkIRex+sofTEYByq8QjKhkZGZKkm266SStWrJAk9e3bV8nJyfrrX/+qxMREde7cudQB/P39Va9ePcXFxSktLU3NmjXTCy+8UOy6Y8aMUU5OjmfKzs4u9f4AAMDlo8QjKtddd51atGih3r17KzExUdJvxcHPz08bNmxQnz599M9//vOCAxljlJeXV+wyt9stt9t9wfsAAACXhxIXlY8++kgzZ87UM888o7S0NPXp00dDhgzRyJEjNXLkyPPa+dixY9W9e3fVqlVLx44d0/z587VmzRotW7bsvLYHAADKlxJf+mndurVefvll7d+/X1OnTtXevXvVpUsXXX311ZowYYL27t1b6p0fOHBAd999txo0aKDOnTvrk08+0bJly9S1a9dSbwsAAJQ/pX7qJzAwUElJSVqzZo22b9+uxMRETZ8+XTExMYqPjy/Vtl599VXt3r1beXl5OnjwoFauXElJAQAAHhf0EfpXX321Ro8erUceeUSVKlXS8uXLL1YuAACA8/sIfUlau3atZs6cqQULFsjHx0d9+/bVkCFDLmY2AABwhStVUcnOztbs2bM1e/Zs7dq1S23atNGLL76ovn37qkKFCpcqIwAAuEKVuKh07dpVq1evVtWqVTVw4EANHjxYDRo0uJTZAADAFa7ERSUwMFALFixQz5495ePjcykzAQAASCpFUVm8ePGlzAEAAFDEBT31AwAAcClRVAAAgLUoKgAAwFoUFQAAYC2KCgAAsBZFBQAAWIuiAgAArEVRAQAA1qKoAAAAa1FUAACAtSgqAADAWhQVAABgLYoKAACwFkUFAABYi6ICAACsRVEBAADWoqgAAABrUVQAAIC1KCoAAMBaFBUAAGAtigoAALAWRQUAAFiLogIAAKxFUQEAANaiqAAAAGtRVAAAgLUoKgAAwFoUFQAAYC2KCgAAsBZFBQAAWIuiAgAArEVRAQAA1qKoAAAAa1FUAACAtSgqAADAWhQVAABgLYoKAACwFkUFAABYi6ICAACsRVEBAADWoqgAAABrUVQAAIC1HC0qaWlpatWqlYKDgxUREaHevXtr27ZtTkYCAAAWcbSorF27VkOHDtWmTZu0YsUK5efn65ZbblFubq6TsQAAgCV8ndz5smXLvF7PmjVLERER2rx5s26++WaHUgEAAFs4WlT+KCcnR5IUFhZW7PK8vDzl5eV5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FJkfGBh41vcVFhYqNTVVffr0KbIsICCgRPuuUqWK6tWrp3r16mnBggWqV6+ebrzxRnXp0uWMT/+cqVgBsBP3qAA4b6tWrdJXX32l22+/vciypk2bKiMjQ0eOHCn2vdddd522bdvmKRq/n666qvS/mkJDQ/XAAw/o4YcfljFG1157rfLz871u3j18+LC2b9+u2NjYUm8fgDMoKgBKJC8vT/v379f333+vzz//XBMnTlRCQoJ69uypgQMHFlk/MTFRUVFR6t27tz766CN9++23WrBggTZu3ChJeuyxxzRnzhyNGzdOX3/9tbKysvTWW2/p0UcfPe+MQ4cO1bZt27RgwQLVr19fCQkJ+utf/6oNGzZoy5YtGjBggGrUqKGEhITz3geAskVRAVAiy5YtU7Vq1RQdHa1u3bpp9erV+ve//61FixbJx8enyPr+/v764IMPFBERofj4eDVp0kRPPvmkZ91bb71V77//vlasWKFWrVrpxhtv1HPPPac6deqcd8aqVavq7rvv1rhx41RYWKhZs2apZcuW6tmzp1q3bi1jjP773/96PRkEwG4uw8c4AgAASzGiAgAArEVRAWCduXPnqmLFisVOjRo1cjoegDLEpR8A1jl27JgOHDhQ7DI/P78Luo8FwOWFogIAAKzFpR8AAGAtigoAALAWRQUAAFiLogIAAKxFUQEAANaiqAAAAGtRVAAAgLUoKgAAwFr/D318jStLeTWrAAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Plot the sorted results\n", + "plt.bar(dice_roll_sorted['Dice_Roll'], dice_roll_sorted['Value'])\n", + "plt.xlabel('Dice_Roll')\n", + "plt.ylabel('Value')\n", + "plt.title('Dice Roll Results Sorted by Value')\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": 5, + "metadata": {}, + "outputs": [], + "source": [ + "value_counts = dice_roll_sorted['Value'].value_counts().sort_index()" + ] + }, + { + "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": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "3.0" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "def calculate_mean(data):\n", + " # Sum all the observations\n", + " total_sum = sum(data)\n", + " \n", + " # Count the number of observations\n", + " count = len(data)\n", + " \n", + " # Calculate the mean\n", + " mean = total_sum / count if count > 0 else 0\n", + "\n", + " return mean\n", + "\n", + "# Calculate the mean of the 'Value' column\n", + "mean_value = calculate_mean(dice_roll_sorted['Value'])\n", + "mean_value\n" + ] + }, + { + "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": 7, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\carmo\\AppData\\Local\\Temp\\ipykernel_19584\\1800913377.py:7: FutureWarning: iteritems is deprecated and will be removed in a future version. Use .items instead.\n", + " for value, frequency in freq_distribution.iteritems():\n" + ] + }, + { + "data": { + "text/plain": [ + "3.0" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "def calculate_mean_frequency(freq_distribution):\n", + " # Initialize total_sum and total_count\n", + " total_sum = 0\n", + " total_count = 0\n", + " \n", + " # Loop over the frequency distribution (index is value, value is frequency)\n", + " for value, frequency in freq_distribution.iteritems():\n", + " total_sum += value * frequency\n", + " total_count += frequency\n", + "\n", + " # Calculate the mean\n", + " mean = total_sum / total_count if total_count > 0 else 0\n", + "\n", + " return mean\n", + "\n", + "# Calculate the mean of the 'Value' column using the frequency distribution\n", + "mean_value_frequency = calculate_mean_frequency(value_counts)\n", + "mean_value_frequency\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": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "2.5" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "def calculate_median(data):\n", + " # Sort the data\n", + " sorted_data = sorted(data)\n", + " \n", + " # Count the number of observations\n", + " count = len(sorted_data)\n", + "\n", + " # Check if the count is even or odd\n", + " if count % 2 == 0:\n", + " # If even, the median is the average of the two middle numbers\n", + " median = (sorted_data[count // 2] + sorted_data[count // 2 - 1]) / 2\n", + " else:\n", + " # If odd, the median is the middle number\n", + " median = sorted_data[count // 2]\n", + "\n", + " return median\n", + "\n", + "# Calculate the median of the 'Value' column\n", + "median_value = calculate_median(dice_roll_sorted['Value'])\n", + "median_value\n" + ] + }, + { + "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": 13, + "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", + "
Unnamed: 0rollvalue
0001
1112
2226
3331
4446
\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" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "roll_100 = pd.read_csv(\"C:\\\\Users\\\\carmo\\\\Desktop\\\\IronHack\\\\Week 3\\\\Day 3\\\\Descriptive-Stats\\\\data\\\\roll_the_dice_hundred.csv\")\n", + "\n", + "roll_100.head()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "roll_100_sorted = roll_100.sort_values(by= 'value')\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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sLAwrVq1qtLjBAUFXdD5oOZiZgdW27dvnx555BEFBwdr2LBhVfbr3LmzvLy8lJmZWWWf9u3bq27dusrNzVXr1q0rXWrVqnXRNQ4YMEAdOnTQK6+84rwZOjk5WR988IEz3JRbvHixAgICzvmBbT/X9OnTFRISoscee0xlZWW69tprFRcXpy+++KLK867sl0VERISGDBmifv36aceOHc6nemJiYrRz506XJ5gOHjyoTZs2nbc2X19fSTrnX/wOh0MJCQl69tlnVbduXX322WdV9j19+nSVs2Tll1DKZ9OSk5N17NgxLV++3KXf4sWLndsvtf6AgAB17NhRn3/+uZo3b17pGJeHkI4dO2r79u364osvXI6RlZV13tc/25IlS1zW//a3v+nMmTMV/ih44IEHVKtWLQ0YMEA7duy46Buh77//fuXm5upPf/qTfvjhB91///3ObQ6HQ8YY57iUmzdvnkpLS8977At9L/Xo0UMHDx5UaWlppWN7oeENNRczO7DGtm3bnNfiCwoKtHHjRi1YsEBeXl5atmyZc/amMjExMZo4caKeeOIJnThxQv369VNwcLByc3N14MABTZkyRYGBgXrhhRc0ePBgHTp0SHfddZfCw8P1ww8/6IsvvtAPP/xwzrB0LtOmTVPbtm31xBNPaN68eZo8ebLeeecddezYUY899phCQ0O1ZMkSrVy5UtOnT1dwcPClDtN5hYSEaMKECRo3bpyysrI0cOBAvfzyy+rWrZu6dOmiIUOGqGHDhjp06JC++uorffbZZ3rjjTckSW3btlWPHj3UvHlzhYSE6KuvvtJrr72mdu3aKSAgQJJ077336uWXX9bAgQP1u9/9TgcPHtT06dNVp06d89bWrFkzSdLcuXMVFBQkPz8/xcbG6uOPP9acOXN055136uqrr5YxRm+99ZaOHDmiTp06VXm8wsJCxcTE6O6779btt9+u6OhoHTt2TOvXr9dzzz2n+Ph452zWoEGD9OKLL2rw4MHau3evbrjhBn300UdKT09XSkqKbr/99vPWHxQUpCZNmmjFihVKTk5WaGio6tWrp5iYGD333HO6+eabdcstt+j3v/+9YmJiVFRUpN27d+vvf/+7PvjgA0nSmDFjNH/+fHXv3t354YdLlixxzpxdqLfeekve3t7q1KmT82mshIQE9enTx6Vf3bp1NWjQIGVmZqpJkyZK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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Plot the sorted results\n", + "plt.bar(roll_100_sorted['value'], roll_100_sorted['roll'])\n", + "plt.xlabel('value')\n", + "plt.ylabel('roll')\n", + "plt.title('Dice Roll Results Sorted by Value')\n", + "plt.show()" + ] + }, + { + "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": 18, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "3.74" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "mean_value_100 = calculate_mean(roll_100_sorted['value'])\n", + "mean_value_100" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 3.- Now, calculate the frequency distribution.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1 12\n", + "2 17\n", + "3 14\n", + "4 22\n", + "5 12\n", + "6 23\n", + "Name: value, dtype: int64\n" + ] + } + ], + "source": [ + "value_counts_100 = roll_100_sorted['value'].value_counts().sort_index()\n", + "print(value_counts_100)" + ] + }, + { + "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": 21, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0oAAAIhCAYAAABwnkrAAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA5D0lEQVR4nO3dfZxXc94/8PeXptHUVLqZbpS0VEJuI+WuRISWWpdWqMguGy6kay83l4esttClbS9WZZdJa6O1625v3ISETba0sqxNbEqUEJVa09Sc3x8ezc+c6XZMfaeZ5/PxmMd1nfM95/t9fb9nzjYvn3M+30ySJEkAAABQardsBwAAAKhqFCUAAIAURQkAACBFUQIAAEhRlAAAAFIUJQAAgBRFCQAAIEVRAgAASFGUAAAAUhQlgIiYNGlSZDKZmDNnziYfP+OMM2KfffYps26fffaJwYMHb9frzJw5M0aMGBFffPFFxYLWQFOnTo0DDzww6tSpE5lMJl5//fVNbvfCCy9EJpMp/aldu3Y0bdo0jjnmmLjhhhti0aJF5fbZeNzff//9HfsmUr6ZM5PJRP369aNbt27x4IMPfqvnHDFiROnyxs/jhRde2Ow+V199dWQymfjnP/+52W1uuOGGyGQyMXfu3G3OUpFzA6CqUZQAKujRRx+NG2+8cbv2mTlzZtx8882K0jb65JNP4oILLoh99903nnrqqXjllVeiffv2W9xn1KhR8corr8T06dPj3nvvje7du8d9990XHTt2jN/85jdltj399NPjlVdeiRYtWuzIt7FJZ599drzyyisxc+bMmDBhQqxatSoGDBgQU6ZM2WkZhgwZEhER99133yYfLykpicmTJ8ehhx4ahx9++E7LBVAV1Mp2AIBd1WGHHZbtCNutuLg4MplM1Kq1a/zP/zvvvBPFxcVx/vnnxwknnLBN+7Rr1y6OPvro0uXvfve7cc0118RJJ50UgwcPjoMPPjg6deoUERFNmzaNpk2b7pDsW9OsWbPSnF27do1jjjkm9tlnn5g4cWIMGDBgp2Q46KCD4qijjopf//rXMWrUqHK/F88880wsWbIk/vu//3un5AGoSowoAVRQ+vKikpKSGDlyZHTo0CHq1KkTDRs2jIMPPjh+/vOfR0TEiBEj4r/+678iIqJt27all11tvDSqpKQkbr/99th///0jNzc3CgoKYuDAgbFkyZIyr5skSYwaNSratGkTe+yxR3Tu3DmmTZsW3bt3j+7du5dut/HSq1//+tdxzTXXxF577RW5ubnx7rvvxieffBJDhw6NAw44IOrVqxcFBQVx4oknxksvvVTmtd5///3IZDIxZsyYuO2222KfffaJOnXqRPfu3UtLzLXXXhstW7aMBg0aRN++fWP58uXb9Pk98cQT0bVr18jLy4v8/Pw4+eST45VXXil9fPDgwXHsscdGRET//v0jk8mUeX/bo1GjRjFx4sRYv359/OxnPytdv7lL75566qno2bNnNGjQIPLy8qJjx44xevToMtvMmTMnvvvd70ajRo1ijz32iMMOOyx++9vfVihfRESbNm2iadOm8fHHH5dZv3jx4jj//POjoKAgcnNzo2PHjnHHHXdESUlJhV/rm4YMGRLLli2LJ598stxjhYWFkZubG+edd1589dVXcc0118Shhx4aDRo0iEaNGkXXrl3j8ccf3+prbO5z3tzlgc8++2z07Nkz6tevH3l5eXHMMcfEc889V2abTz75JH74wx9G69atIzc3t/Qyy2effXa7PwOATdk1/pMiwE6yYcOGWL9+fbn1SZJsdd/bb789RowYEf/zP/8Txx9/fBQXF8c///nP0svsLr744lixYkXceeed8cgjj5Re7nXAAQdERMSPfvSjuOeee+Lyyy+PM844I95///248cYb44UXXoi5c+dGkyZNIuLre0ZGjx4dP/zhD6Nfv37xwQcfxMUXXxzFxcWbvCztuuuui65du8aECRNit912i4KCgvjkk08iIuKmm26K5s2bx5dffhmPPvpodO/ePZ577rlyheQXv/hFHHzwwfGLX/wivvjii7jmmmuiT58+0aVLl8jJyYn77rsvFi1aFMOHD4+LL744nnjiiS1+VlOmTInzzjsvevXqFQ8++GAUFRXF7bffXvr6xx57bNx4441x1FFHxWWXXRajRo2KHj16RP369bd6HDbnyCOPjBYtWsSLL764xe3uvffe+MEPfhAnnHBCTJgwIQoKCuKdd96JN998s3Sb6dOnx6mnnhpdunSJCRMmRIMGDeKhhx6K/v37x9q1ayt0f87KlStjxYoVZUbDPvnkk+jWrVusW7cubrnllthnn33ij3/8YwwfPjzee++9uPvuu7f7ddLOPffcuPrqq+O+++6LPn36lK7//PPP4/HHH4++ffvGnnvuWZpv+PDhsddee8W6devi2WefjX79+kVhYWEMHDjwW2eJiHjggQdi4MCBceaZZ8b9998fOTk5MXHixDjllFPi6aefjp49e0ZExAUXXBBz586Nn/70p9G+ffv44osvYu7cufHZZ59VSg6ASABICgsLk4jY4k+bNm3K7NOmTZtk0KBBpctnnHFGcuihh27xdcaMGZNERLJw4cIy699+++0kIpKhQ4eWWf/qq68mEZFcf/31SZIkyYoVK5Lc3Nykf//+ZbZ75ZVXkohITjjhhNJ106dPTyIiOf7447f6/tevX58UFxcnPXv2TPr27Vu6fuHChUlEJIccckiyYcOG0vXjxo1LIiL57ne/W+Z5rrrqqiQikpUrV272tTZs2JC0bNky6dSpU5nnXL16dVJQUJB069at3Ht4+OGHt/oetmXbLl26JHXq1Cld3njcNx6P1atXJ/Xr10+OPfbYpKSkZLPPs//++yeHHXZYUlxcXGb9GWeckbRo0aLM+9qUjce6uLg4WbduXfLOO+8k3/3ud5P8/Pxkzpw5pdtde+21SUQkr776apn9f/SjHyWZTCaZP39+mee86aabyn0e06dP32KWJEmSQYMGJTk5OcnHH39cuu7OO+9MIiKZNm3aJvfZ+DszZMiQ5LDDDivzWPrcSH/Om8u4Zs2apFGjRkmfPn3KbLdhw4bkkEMOSY466qjSdfXq1Uuuuuqqrb43gIpy6R3AN0yePDlmz55d7mfjJWBbctRRR8W8efNi6NCh8fTTT8eqVau2+XWnT58eEVFuJOKoo46Kjh07ll52NGvWrCgqKopzzjmnzHZHH310uVn5Nvre9763yfUTJkyIww8/PPbYY4+oVatW5OTkxHPPPRdvv/12uW1PO+202G23//9PRseOHSPi68kQvmnj+sWLF2/mnUbMnz8/Pvroo7jgggvKPGe9evXie9/7XsyaNSvWrl272f2/jWQrI4MzZ86MVatWxdChQyOTyWxym3fffTf++c9/xnnnnRcREevXry/9Oe2002Lp0qUxf/78rWa5++67IycnJ2rXrh3t27ePJ598Mh588ME44ogjSrd5/vnn44ADDoijjjqqzL6DBw+OJEni+eef3+rrbIshQ4ZEcXFx/PrXvy5dV1hYGG3atCkdwYmIePjhh+OYY46JevXqlf7O3HvvvZv8namImTNnxooVK2LQoEFlPteSkpI49dRTY/bs2bFmzZqI+PrcmDRpUowcOTJmzZoVxcXFlZIBYCNFCeAbOnbsGJ07dy7306BBg63ue91118X//u//xqxZs6J3797RuHHj6Nmz52anHP+mjZcLbWr2tZYtW5Y+vvH/NmvWrNx2m1q3ueccO3Zs/OhHP4ouXbrE73//+5g1a1bMnj07Tj311Pj3v/9dbvtGjRqVWa5du/YW13/11VebzPLN97C591pSUhKff/75Zvf/NhYvXhwtW7bc7OMbL0ls1arVZrfZeA/R8OHDIycnp8zP0KFDIyLi008/3WqWc845J2bPnh0zZ86MiRMnRn5+fnz/+9+PBQsWlG7z2WefbfZz2vh4ZTjuuOOiffv2UVhYGBERb7zxRsydOzcuvPDC0sL4yCOPxDnnnBN77bVXPPDAA/HKK6/E7Nmz46KLLtri8d4eGz/bs88+u9xne9ttt0WSJLFixYqI+Hra+EGDBsWvfvWr6Nq1azRq1CgGDhwYy5Ytq5QsAO5RAqgktWrVimHDhsWwYcPiiy++iGeffTauv/76OOWUU+KDDz6IvLy8ze7buHHjiIhYunRpuT/SP/roo9L7kzZul77hPyJi2bJlmxxV2tTIyAMPPBDdu3eP8ePHl1m/evXqLb/JSvDN95r20UcfxW677RZ77rlnpb/uX//611i2bFnplNibsnEGvPQEGt+08Vhcd9110a9fv01u06FDh63madq0aXTu3Dkivp71rmPHjnHCCSfE1VdfHX/84x8j4uvPanOf0zezVIaLLroorr322vjrX/8aU6ZMid12263MCOcDDzwQbdu2jalTp5b5nSoqKtrqc++xxx6b3DZdKDe+nzvvvLPMvVrftPE/CDRp0iTGjRsX48aNi8WLF8cTTzwR1157bSxfvjyeeuqprb9hgK0wogSwAzRs2DDOPvvsuOyyy2LFihWls33l5uZGRJQbtTnxxBMj4us/Rr9p9uzZ8fbbb5de/tSlS5fIzc2NqVOnltlu1qxZm/xC1c3JZDKlWTZ64403ysw6t6N06NAh9tprr5gyZUqZS+HWrFkTv//970tnwqtMK1asiEsvvTRycnLi6quv3ux23bp1iwYNGsSECRM2e5lehw4dol27djFv3rxNjj527tw58vPztzvjcccdFwMHDow//elPpcehZ8+e8Y9//KPcl71Onjw5MplM9OjRY7tfZ3MGDRoUtWrViokTJ8ZvfvOb6NmzZ7Rp06b08Y1f4vvNkrRs2bJtmvVuY4F/4403yqxPT/pxzDHHRMOGDeMf//jHZj/bjaOW37T33nvH5ZdfHieffPJ2fTEuwJYYUQKoJH369ImDDjooOnfuHE2bNo1FixbFuHHjok2bNtGuXbuIiNLv7/n5z38egwYNipycnOjQoUN06NAhfvjDH8add94Zu+22W/Tu3bt01rvWrVuX/nHfqFGjGDZsWIwePTr23HPP6Nu3byxZsiRuvvnmaNGiRZl7frbkjDPOiFtuuSVuuummOOGEE2L+/Pnxk5/8JNq2bbvJWf8q02677Ra33357nHfeeXHGGWfEJZdcEkVFRTFmzJj44osv4tZbb/1Wz79gwYKYNWtWlJSUxGeffRavvvpq3HvvvbFq1aqYPHlyHHjggZvdt169enHHHXfExRdfHCeddFL84Ac/iGbNmsW7774b8+bNi7vuuisiIiZOnBi9e/eOU045JQYPHhx77bVXrFixIt5+++2YO3duPPzwwxXKfsstt8TUqVPjxhtvjGeffTauvvrqmDx5cpx++unxk5/8JNq0aRN/+tOf4u67744f/ehHW/3y3e3RvHnzOO2006KwsDCSJCk38nbGGWfEI488EkOHDo2zzz47Pvjgg7jllluiRYsWZS4X3JQjjzwyOnToEMOHD4/169fHnnvuGY8++mi8/PLLZbarV69e3HnnnTFo0KBYsWJFnH322aWzNM6bNy8++eSTGD9+fKxcuTJ69OgRAwYMiP333z/y8/Nj9uzZ8dRTT212lA9gu2VzJgmAqmLjrFyzZ8/e5OOnn376Vme9u+OOO5Ju3bolTZo0SWrXrp3svffeyZAhQ5L333+/zH7XXXdd0rJly2S33XYrM+PXhg0bkttuuy1p3759kpOTkzRp0iQ5//zzkw8++KDM/iUlJcnIkSOTVq1aJbVr104OPvjg5I9//GNyyCGHlJmxbkuzwBUVFSXDhw9P9tprr2SPPfZIDj/88OSxxx5LBg0aVOZ9bpz1bsyYMWX239xzb+1z/KbHHnss6dKlS7LHHnskdevWTXr27Jn85S9/2abX2ZSN2278qVWrVtK4ceOka9euyfXXX1/uOHwzb3o2tj//+c/JCSeckNStWzfJy8tLDjjggOS2224rs828efOSc845JykoKEhycnKS5s2bJyeeeGIyYcKErWaNiOSyyy7b5GP/9V//lUREMmPGjCRJkmTRokXJgAEDksaNGyc5OTlJhw4dkjFjxpSbWS++xax3Gz3++ONJRCSNGjVKvvrqq3KP33rrrck+++yT5ObmJh07dkx++ctfJjfddFOS/nMifW4kSZK88847Sa9evZL69esnTZs2Ta644orkT3/60yYzzpgxIzn99NOTRo0aJTk5Oclee+2VnH766aW/B1999VVy6aWXJgcffHBSv379pE6dOkmHDh2Sm266KVmzZs02v1+ALckkyTZ8OQgAVdrChQtj//33j5tuuimuv/76bMcBgF2eogSwi5k3b148+OCD0a1bt6hfv37Mnz8/br/99li1alW8+eabm539DgDYdu5RAtjF1K1bN+bMmRP33ntvfPHFF9GgQYPo3r17/PSnP1WSAKCSGFECAABIMT04AABAiqIEAACQoigBAACkVPvJHEpKSuKjjz6K/Pz8Mt8mDgAA1CxJksTq1aujZcuWW/2S9mpflD766KNo3bp1tmMAAABVxAcffBCtWrXa4jbVvijl5+dHxNcfRv369bOcBgAAyJZVq1ZF69atSzvCllT7orTxcrv69esrSgAAwDbdkmMyBwAAgBRFCQAAIEVRAgAASFGUAAAAUhQlAACAFEUJAAAgRVECAABIUZQAAABSFCUAAIAURQkAACBFUQIAAEhRlAAAAFIUJQAAgBRFCQAAIEVRAgAASFGUAAAAUhQlAACAFEUJAAAgRVECAABIqZXtAAAAsCP1ebBPtiPUeH849w/ZjrDdjCgBAACkKEoAAAApihIAAECKogQAAJCiKAEAAKQoSgAAACmKEgAAQIqiBAAAkKIoAQAApChKAAAAKYoSAABAiqIEAACQoigBAACkKEoAAAApihIAAECKogQAAJCiKAEAAKQoSgAAACm1sh0AAKqqPg/2yXaEGu8P5/4h2xGAGsqIEgAAQIqiBAAAkKIoAQAApChKAAAAKYoSAABAiqIEAACQoigBAACkKEoAAAApihIAAECKogQAAJCiKAEAAKQoSgAAACmKEgAAQIqiBAAAkKIoAQAApChKAAAAKYoSAABAiqIEAACQoigBAACkKEoAAAApihIAAECKogQAAJCiKAEAAKQoSgAAACmKEgAAQIqiBAAAkKIoAQAApChKAAAAKYoSAABAiqIEAACQoigBAACkKEoAAAApihIAAEBKVovS6NGj48gjj4z8/PwoKCiIs846K+bPn19mmyRJYsSIEdGyZcuoU6dOdO/ePd56660sJQYAAGqCrBalGTNmxGWXXRazZs2KadOmxfr166NXr16xZs2a0m1uv/32GDt2bNx1110xe/bsaN68eZx88smxevXqLCYHAACqs1rZfPGnnnqqzHJhYWEUFBTEa6+9Fscff3wkSRLjxo2LG264Ifr16xcREffff380a9YspkyZEpdcckk2YgMAANVcVotS2sqVKyMiolGjRhERsXDhwli2bFn06tWrdJvc3Nw44YQTYubMmZssSkVFRVFUVFS6vGrVqoiIKC4ujuLi4h0ZH4BqJidysh2hxvNvN5XBuZx9VeVc3p4cVaYoJUkSw4YNi2OPPTYOOuigiIhYtmxZREQ0a9aszLbNmjWLRYsWbfJ5Ro8eHTfffHO59c8880zk5eVVcmoAqrNBeYOyHaHG+/Of/5ztCFQDzuXsqyrn8tq1a7d52ypTlC6//PJ444034uWXXy73WCaTKbOcJEm5dRtdd911MWzYsNLlVatWRevWraNXr15Rv379yg0NQLXW/3f9sx2hxpt69tRsR6AacC5nX1U5lzdebbYtqkRRuuKKK+KJJ56IF198MVq1alW6vnnz5hHx9chSixYtStcvX7683CjTRrm5uZGbm1tufU5OTuTkGHYFYNsVR9W4VKQm8283lcG5nH1V5VzenhxZnfUuSZK4/PLL45FHHonnn38+2rZtW+bxtm3bRvPmzWPatGml69atWxczZsyIbt267ey4AABADZHVEaXLLrsspkyZEo8//njk5+eX3pPUoEGDqFOnTmQymbjqqqti1KhR0a5du2jXrl2MGjUq8vLyYsCAAdmMDgAAVGNZLUrjx4+PiIju3buXWV9YWBiDBw+OiIgf//jH8e9//zuGDh0an3/+eXTp0iWeeeaZyM/P38lpAQCAmiKrRSlJkq1uk8lkYsSIETFixIgdHwgAACCyfI8SAABAVaQoAQAApChKAAAAKYoSAABAiqIEAACQoigBAACkKEoAAAApihIAAECKogQAAJCiKAEAAKQoSgAAACmKEgAAQIqiBAAAkKIoAQAApChKAAAAKYoSAABAiqIEAACQoigBAACkKEoAAAApihIAAECKogQAAJCiKAEAAKQoSgAAACmKEgAAQIqiBAAAkKIoAQAApChKAAAAKYoSAABAiqIEAACQoigBAACkKEoAAAApihIAAECKogQAAJCiKAEAAKQoSgAAACmKEgAAQIqiBAAAkKIoAQAApChKAAAAKYoSAABAiqIEAACQoigBAACkKEoAAAApihIAAECKogQAAJCiKAEAAKQoSgAAACmKEgAAQIqiBAAAkKIoAQAApChKAAAAKbWyHQCqoz4P9sl2hBrvD+f+IdsRAIBdmBElAACAFEUJAAAgRVECAABIUZQAAABSFCUAAIAURQkAACBFUQIAAEhRlAAAAFIUJQAAgBRFCQAAIEVRAgAASFGUAAAAUhQlAACAFEUJAAAgRVECAABIUZQAAABSFCUAAIAURQkAACBFUQIAAEhRlAAAAFIUJQAAgBRFCQAAIEVRAgAASFGUAAAAUhQlAACAFEUJAAAgRVECAABIUZQAAABSFCUAAIAURQkAACBFUQIAAEhRlAAAAFIUJQAAgJSsFqUXX3wx+vTpEy1btoxMJhOPPfZYmccHDx4cmUymzM/RRx+dnbAAAECNkdWitGbNmjjkkEPirrvu2uw2p556aixdurT0589//vNOTAgAANREtbL54r17947evXtvcZvc3Nxo3rz5TkoEAACQ5aK0LV544YUoKCiIhg0bxgknnBA//elPo6CgYLPbFxUVRVFRUenyqlWrIiKiuLg4iouLd3heiIjIiZxsR6jxnO9UBudy9jmXqQzO5eyrKufy9uTIJEmS7MAs2yyTycSjjz4aZ511Vum6qVOnRr169aJNmzaxcOHCuPHGG2P9+vXx2muvRW5u7iafZ8SIEXHzzTeXWz9lypTIy8vbUfEBAIAqbu3atTFgwIBYuXJl1K9ff4vbVumilLZ06dJo06ZNPPTQQ9GvX79NbrOpEaXWrVvHp59+utUPAypL/9/1z3aEGm/q2VOzHYFqwLmcfc5lKoNzOfuqyrm8atWqaNKkyTYVpSp/6d03tWjRItq0aRMLFizY7Da5ubmbHG3KycmJnBzDruwcxVE1hpdrMuc7lcG5nH3OZSqDczn7qsq5vD05dqnvUfrss8/igw8+iBYtWmQ7CgAAUI1ldUTpyy+/jHfffbd0eeHChfH6669Ho0aNolGjRjFixIj43ve+Fy1atIj3338/rr/++mjSpEn07ds3i6kBAIDqLqtFac6cOdGjR4/S5WHDhkVExKBBg2L8+PHx97//PSZPnhxffPFFtGjRInr06BFTp06N/Pz8bEUGAABqgKwWpe7du8eW5pJ4+umnd2IaAACAr+1S9ygBAADsDIoSAABAiqIEAACQoigBAACkKEoAAAApihIAAECKogQAAJCiKAEAAKQoSgAAACmKEgAAQIqiBAAAkKIoAQAApNTKdgCAXVGfB/tkO0KN94dz/5DtCABUY0aUAAAAUhQlAACAFEUJAAAgpUJFaeHChZWdAwAAoMqoUFHab7/9okePHvHAAw/EV199VdmZAAAAsqpCRWnevHlx2GGHxTXXXBPNmzePSy65JP76179WdjYAAICsqFBROuigg2Ls2LHx4YcfRmFhYSxbtiyOPfbYOPDAA2Ps2LHxySefVHZOAACAneZbTeZQq1at6Nu3b/z2t7+N2267Ld57770YPnx4tGrVKgYOHBhLly6trJwAAAA7zbcqSnPmzImhQ4dGixYtYuzYsTF8+PB477334vnnn48PP/wwzjzzzMrKCQAAsNPUqshOY8eOjcLCwpg/f36cdtppMXny5DjttNNit92+7l1t27aNiRMnxv7771+pYQEAAHaGChWl8ePHx0UXXRQXXnhhNG/efJPb7L333nHvvfd+q3AAAADZUKGitGDBgq1uU7t27Rg0aFBFnh4AACCrKnSPUmFhYTz88MPl1j/88MNx//33f+tQAAAA2VShonTrrbdGkyZNyq0vKCiIUaNGfetQAAAA2VShorRo0aJo27ZtufVt2rSJxYsXf+tQAAAA2VSholRQUBBvvPFGufXz5s2Lxo0bf+tQAAAA2VShovT9738//vM//zOmT58eGzZsiA0bNsTzzz8fV155ZXz/+9+v7IwAAAA7VYVmvRs5cmQsWrQoevbsGbVqff0UJSUlMXDgQPcoAQAAu7wKFaXatWvH1KlT45Zbbol58+ZFnTp1olOnTtGmTZvKzgcAALDTVagobdS+ffto3759ZWUBAACoEipUlDZs2BCTJk2K5557LpYvXx4lJSVlHn/++ecrJRwAAEA2VKgoXXnllTFp0qQ4/fTT46CDDopMJlPZuQAAALKmQkXpoYceit/+9rdx2mmnVXYeAACArKvQ9OC1a9eO/fbbr7KzAAAAVAkVKkrXXHNN/PznP48kSSo7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LVm2bFlERLkvs23WrFksWrRos/tdd911MWzYsNLlVatWRevWraNXr15b/TB2hv6/65/tCDXe1LOn7vDXcJyzb0cfZ8c4+5zLNYNzufpzLtcMO+M4b4uNV5ttiypblDZKTz+eJMkWpyTPzc0tnZXvm3JyciInJ/vDrsVRNYYda7Kd8XvgOGffjj7OjnH2OZdrBudy9edcrhmqwt/hEduX41t94eyO1Lx584j4/yNLGy1fvrzcKBMAAEBlqrJFqW3bttG8efOYNm1a6bp169bFjBkzolu3bllMBgAAVHdZvfTuyy+/jHfffbd0eeHChfH6669Ho0aNYu+9946rrroqRo0aFe3atYt27drFqFGjIi8vLwYMGJDF1AAAQHWX1aI0Z86c6NGjR+nyxkkYBg0aFJMmTYof//jH8e9//zuGDh0an3/+eXTp0iWeeeYZ36EEAADsUFktSt27d48tzU6eyWRixIgRMWLEiJ0XCgAAqPGq7D1KAAAA2aIoAQAApChKAAAAKYoSAABAiqIEAACQoigBAACkKEoAAAApihIAAECKogQAAJCiKAEAAKQoSgAAACmKEgAAQIqiBAAAkKIoAQAApChKAAAAKYoSAABAiqIEAACQoigBAACkKEoAAAApihIAAECKogQAAJCiKAEAAKQoSgAAACmKEgAAQIqiBAAAkKIoAQAApChKAAAAKYoSAABAiqIEAACQoigBAACkKEoAAAApihIAAECKogQAAJCiKAEAAKQoSgAAACmKEgAAQIqiBAAAkKIoAQAApChKAAAAKYoSAABAiqIEAACQoigBAACkKEoAAAApihIAAECKogQAAJCiKAEAAKQoSgAAACmKEgAAQIqiBAAAkKIoAQAApChKAAAAKYoSAABAiqIEAACQoigBAACkKEoAAAApihIAAECKogQAAJCiKAEAAKQoSgAAACmKEgAAQIqiBAAAkKIoAQAApChKAAAAKYoSAABAiqIEAACQoigBAACkKEoAAAApihIAAECKogQAAJCiKAEAAKQoSgAAACmKEgAAQIqiBAAAkKIoAQAApChKAAAAKYoSAABAiqIEAACQoigBAACkKEoAAAApihIAAECKogQAAJCiKAEAAKQoSgAAACmKEgAAQEqVLkojRoyITCZT5qd58+bZjgUAAFRztbIdYGsOPPDAePbZZ0uXd9999yymAQAAaoIqX5Rq1aplFAkAANipqnxRWrBgQbRs2TJyc3OjS5cuMWrUqPjOd76z2e2LioqiqKiodHnVqlUREVFcXBzFxcU7PO/W5EROtiPUeDvj98Bxzr4dfZwd4+xzLtcMzuXqz7lcM1SFv8Mjti9HJkmSZAdm+VaefPLJWLt2bbRv3z4+/vjjGDlyZPzzn/+Mt956Kxo3brzJfUaMGBE333xzufVTpkyJvLy8HR0ZAACootauXRsDBgyIlStXRv369be4bZUuSmlr1qyJfffdN3784x/HsGHDNrnNpkaUWrduHZ9++ulWP4ydof/v+mc7Qo039eypO/w1HOfs29HH2THOPudyzeBcrv6cyzXDzjjO22LVqlXRpEmTbSpKVf7Su2+qW7dudOrUKRYsWLDZbXJzcyM3N7fc+pycnMjJyf6wa3FUjWHHmmxn/B44ztm3o4+zY5x9zuWawblc/TmXa4aq8Hd4xPblqNLTg6cVFRXF22+/HS1atMh2FAAAoBqr0kVp+PDhMWPGjFi4cGG8+uqrcfbZZ8eqVati0KBB2Y4GAABUY1X60rslS5bEueeeG59++mk0bdo0jj766Jg1a1a0adMm29EAAIBqrEoXpYceeijbEQAAgBqoSl96BwAAkA2KEgAAQIqiBAAAkKIoAQAApChKAAAAKYoSAABAiqIEAACQoigBAACkKEoAAAApihIAAECKogQAAJCiKAEAAKQoSgAAACmKEgAAQIqiBAAAkKIoAQAApChKAAAAKYoSAABAiqIEAACQoigBAACkKEoAAAApihIAAECKogQAAJCiKAEAAKQoSgAAACmKEgAAQIqiBAAAkKIoAQAApChKAAAAKYoSAABAiqIEAACQoigBAACkKEoAAAApihIAAECKogQAAJCiKAEAAKQoSgAAACmKEgAAQIqiBAAAkKIoAQAApChKAAAAKYoSAABAiqIEAACQoigBAACkKEoAAAApihIAAECKogQAAJCiKAEAAKQoSgAAACmKEgAAQIqiBAAAkKIoAQAApChKAAAAKYoSAABAiqIEAACQoigBAACkKEoAAAApihIAAECKogQAAJCiKAEAAKQoSgAAACmKEgAAQIqiBAAAkKIoAQAApChKAAAAKYoSAABAiqIEAACQoigBAACkKEoAAAApihIAAECKogQAAJCiKAEAAKQoSgAAACmKEgAAQIqiBAAAkKIoAQAApChKAAAAKYoSAABAiqIEAACQoigBAACkKEoAAAApihIAAECKogQAAJCiKAEAAKQoSgAAACm7RFG6++67o23btrHHHnvEEUccES+99FK2IwEAANVYlS9KU6dOjauuuipuuOGG+Nvf/hbHHXdc9O7dOxYvXpztaAAAQDVV5YvS2LFjY8iQIXHxxRdHx44dY9y4cdG6desYP358tqMBAADVVK1sB9iSdevWxWuvvRbXXnttmfW9evWKmTNnbnKfoqKiKCoqKl1euXJlRESsWLEiiouLd1zYbbU22wH47LPPdvyLOM5Zt8OPs2Ocdc7lmsG5XP05l2uGnXKct8Hq1asjIiJJkq1uW6WL0qeffhobNmyIZs2alVnfrFmzWLZs2Sb3GT16dNx8883l1rdt23aHZGTX0+TiJtmOwE7gOFd/jnHN4DhXf45xzVDVjvPq1aujQYMGW9ymSheljTKZTJnlJEnKrdvouuuui2HDhpUul5SUxIoVK6Jx48ab3Ydtt2rVqmjdunV88MEHUb9+/WzHYQdwjGsGx7n6c4xrBse5+nOMK1eSJLF69epo2bLlVret0kWpSZMmsfvuu5cbPVq+fHm5UaaNcnNzIzc3t8y6hg0b7qiINVb9+vWdrNWcY1wzOM7Vn2NcMzjO1Z9jXHm2NpK0UZWezKF27dpxxBFHxLRp08qsnzZtWnTr1i1LqQAAgOquSo8oRUQMGzYsLrjggujcuXN07do17rnnnli8eHFceuml2Y4GAABUU1W+KPXv3z8+++yz+MlPfhJLly6Ngw46KP785z9HmzZtsh2tRsrNzY2bbrqp3OWNVB+Occ3gOFd/jnHN4DhXf45x9mSSbZkbDwAAoAap0vcoAQAAZIOiBAAAkKIoAQAApChKAAAAKYoS2+TFF1+MPn36RMuWLSOTycRjjz2W7UhUstGjR8eRRx4Z+fn5UVBQEGeddVbMnz8/27GoROPHj4+DDz649EsLu3btGk8++WS2Y7GDjR49OjKZTFx11VXZjkIlGTFiRGQymTI/zZs3z3YsdoAPP/wwzj///GjcuHHk5eXFoYceGq+99lq2Y9UYihLbZM2aNXHIIYfEXXfdle0o7CAzZsyIyy67LGbNmhXTpk2L9evXR69evWLNmjXZjkYladWqVdx6660xZ86cmDNnTpx44olx5plnxltvvZXtaOwgs2fPjnvuuScOPvjgbEehkh144IGxdOnS0p+///3v2Y5EJfv888/jmGOOiZycnHjyySfjH//4R9xxxx3RsGHDbEerMar89yhRNfTu3Tt69+6d7RjsQE899VSZ5cLCwigoKIjXXnstjj/++CylojL16dOnzPJPf/rTGD9+fMyaNSsOPPDALKViR/nyyy/jvPPOi1/+8pcxcuTIbMehktWqVcsoUjV32223RevWraOwsLB03T777JO9QDWQESVgk1auXBkREY0aNcpyEnaEDRs2xEMPPRRr1qyJrl27ZjsOO8Bll10Wp59+epx00knZjsIOsGDBgmjZsmW0bds2vv/978e//vWvbEeikj3xxBPRuXPn+I//+I8oKCiIww47LH75y19mO1aNoigB5SRJEsOGDYtjjz02DjrooGzHoRL9/e9/j3r16kVubm5ceuml8eijj8YBBxyQ7VhUsoceeijmzp0bo0ePznYUdoAuXbrE5MmT4+mnn45f/vKXsWzZsujWrVt89tln2Y5GJfrXv/4V48ePj3bt2sXTTz8dl156afznf/5nTJ48OdvRagyX3gHlXH755fHGG2/Eyy+/nO0oVLIOHTrE66+/Hl988UX8/ve/j0GDBsWMGTOUpWrkgw8+iCuvvDKeeeaZ2GOPPbIdhx3gm5fCd+rUKbp27Rr77rtv3H///TFs2LAsJqMylZSUROfOnWPUqFEREXHYYYfFW2+9FePHj4+BAwdmOV3NYEQJKOOKK66IJ554IqZPnx6tWrXKdhwqWe3atWO//faLzp07x+jRo+OQQw6Jn//859mORSV67bXXYvny5XHEEUdErVq1olatWjFjxoz4v//7v6hVq1Zs2LAh2xGpZHXr1o1OnTrFggULsh2FStSiRYty/xGrY8eOsXjx4iwlqnmMKAER8fXldldccUU8+uij8cILL0Tbtm2zHYmdIEmSKCoqynYMKlHPnj3LzYB24YUXxv777x///d//HbvvvnuWkrGjFBUVxdtvvx3HHXdctqNQiY455phyX9PxzjvvRJs2bbKUqOZRlNgmX375Zbz77rulywsXLozXX389GjVqFHvvvXcWk1FZLrvsspgyZUo8/vjjkZ+fH8uWLYuIiAYNGkSdOnWynI7KcP3110fv3r2jdevWsXr16njooYfihRdeKDfjIbu2/Pz8cvcW1q1bNxo3buyew2pi+PDh0adPn9h7771j+fLlMXLkyFi1alUMGjQo29GoRFdffXV069YtRo0aFeecc0789a9/jXvuuSfuueeebEerMRQltsmcOXOiR48epcsbr4EeNGhQTJo0KUupqEzjx4+PiIju3buXWV9YWBiDBw/e+YGodB9//HFccMEFsXTp0mjQoEEcfPDB8dRTT8XJJ5+c7WjAdliyZEmce+658emnn0bTpk3j6KOPjlmzZhlpqGaOPPLIePTRR+O6666Ln/zkJ9G2bdsYN25cnHfeedmOVmNkkiRJsh0CAACgKjGZAwAAQIqiBAAAkKIoAQAApChKAAAAKYoSAABAiqIEAACQoigBAACkKEoAAAApihIA1V737t3jqquuynYMAHYhihIAVVqfPn3ipJNO2uRjr7zySmQymZg7d+5OTgVAdacoAVClDRkyJJ5//vlYtGhRucfuu+++OPTQQ+Pwww/PQjIAqjNFCYAq7YwzzoiCgoKYNGlSmfVr166NqVOnxllnnRXnnntutGrVKvLy8qJTp07x4IMPbvE5M5lMPPbYY2XWNWzYsMxrfPjhh9G/f//Yc889o3HjxnHmmWfG+++/XzlvCoAqT1ECoEqrVatWDBw4MCZNmhRJkpSuf/jhh2PdunVx8cUXxxFHHBF//OMf480334wf/vCHccEFF8Srr75a4ddcu3Zt9OjRI+rVqxcvvvhivPzyy1GvXr049dRTY926dZXxtgCo4hQlAKq8iy66KN5///144YUXStfdd9990a9fv9hrr71i+PDhceihh8Z3vvOduOKKK+KUU06Jhx9+uMKv99BDD8Vuu+0Wv/rVr6JTp07RsWPHKCwsjMWLF5fJAED1VSvbAQBga/bff//o1q1b3HfffdGjR49477334qWXXopnnnkmNmzYELfeemtMnTo1PvzwwygqKoqioqKoW7duhV/vtddei3fffTfy8/PLrP/qq6/ivffe+7ZvB4BdgKIEwC5hyJAhcfnll8cvfvGLKCwsjDZt2kTPnj1jzJgx8bOf/SzGjRsXnTp1irp168ZVV121xUvkMplMmcv4IiKKi4tL//+SkpI44ogj4je/+U25fZs2bVp5bwqAKktRAmCXcM4558SVV14ZU6ZMifvvvz9+8IMfRCaTiZdeeinOPPPMOP/88yPi65KzYMGC6Nix42afq2nTprF06dLS5QULFsTatWtLlw8//PCYOnVqFBQURP369XfcmwKgynKPEgC7hHr16kX//v3j+uuvj48++igGDx4cERH77bdfTJs2LWbOnBlvv/12XHLJJbFs2bItPteJJ54Yd911V8ydOzfmzJkTl156aeTk5JQ+ft5550WTJk3izDPPjJdeeikWLlwYM2bMiCuvvDKWLFmyI98mAFWEogTALmPIkCHx+eefx0knnRR77713RETceOONcfjhh8cpp5wS3bt3j+bNm8dZZ521xee54447onXr1nH88cfHgAEDYvjw4ZGXl1f6eF5eXrz44oux9957R79+/aJjx45x0UUXxb///W8jTAA1RCZJX6QNAABQwxlRAgAASFGUAAAAUhQlAACAFEUJAAAgRVECAABIUZQAAABSFCUAAIAURQkAACBFUQIAAEhRlAAAAFIUJQAAgJT/B5GW3lXYfLaaAAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(figsize=(10, 6))\n", + "plt.bar(value_counts_100.index, value_counts_100.values, color='green', alpha=0.7)\n", + "plt.xlabel('Value')\n", + "plt.ylabel('Frequency')\n", + "plt.title('Histogram of Dice Roll Values')\n", + "plt.grid(axis='y')\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "\"\"\"\n", + "The value '6' appears to occur most frequently, while the values '3' and '5' occur least frequently. This distribution is expected, as the results of rolling a die are random.\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": 22, + "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", + "
Unnamed: 0rollvalue
0005
1116
2221
3336
4445
\n", + "
" + ], + "text/plain": [ + " Unnamed: 0 roll value\n", + "0 0 0 5\n", + "1 1 1 6\n", + "2 2 2 1\n", + "3 3 3 6\n", + "4 4 4 5" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "roll_1000 = pd.read_csv(\"C:\\\\Users\\\\carmo\\\\Desktop\\\\IronHack\\\\Week 3\\\\Day 3\\\\Descriptive-Stats\\\\data\\\\roll_the_dice_thousand.csv\")\n", + "\n", + "roll_1000.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA1IAAAIhCAYAAABE54vcAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAABO/klEQVR4nO3deVhUdf//8dcEwygIKCICiWguaWruaVoJueQSbrdpmrlk21czTfnVbf26xW5zybRFS61bcU/Nn5pLued2q/ftkqZWhuYuZi6JguIA5/dHF/N1ZJGDwAzwfFwX1+X5nM+c8z7zmYPz4nzmjMUwDEMAAAAAgBy7z9UFAAAAAEBhQ5ACAAAAAJMIUgAAAABgEkEKAAAAAEwiSAEAAACASQQpAAAAADCJIAUAAAAAJhGkAAAAAMAkghQAAAAAmESQAtzIrFmzZLFYMv2Jjo52dXlFyp3PdYkSJRQcHKzIyEiNHTtWFy5cyPCYmJgYWSwWU/tJSkpSTEyMNm/ebOpxme2rUqVKevrpp01t524WLFigjz/+ONN1FotFMTExebq/vLZx40Y1atRIPj4+slgsWr58eab9Tpw44TTeVqtVZcuWVePGjfXGG2/o8OHDGR6zefNmWSwW02N3rypVquRUq4+Pjxo0aKApU6bIMIxcb7Nfv36O5fTnY9asWVk+5pNPPpHFYtGaNWuy7PPll1/KYrFo6dKlOa4lIiJCEREROe7vCnPmzFG5cuV07do1R9uqVavUp08f1alTR1arNdvfBXa7XaNGjVKlSpVks9lUo0YNTZ48OdO+v/32m7p27arSpUurVKlSat26tfbt25dp34ULF6pevXoqUaKEQkNDNXToUF2/fv2ux3Pn6/++++5TmTJl1LJlS61bt+6uj89um7e/htJ/r544cSLH27Hb7apSpUqWv4cAd0aQAtxQbGysdu7c6fTz+uuvu7qsIin9uV6/fr0+++wz1atXT+PHj1fNmjW1YcMGp74vvviidu7caWr7SUlJGjVqlOk347nZV25kF6R27typF198Md9ryC3DMNS9e3dZrVatWLFCO3fuVIsWLbJ9zODBg7Vz505t2bJFc+fOVefOnbVixQrVrVtXEyZMcOrboEED7dy5Uw0aNMjPw8hU8+bNHef+3Llz5e3trcGDB2vs2LEFVkPv3r1ls9k0c+bMLPvExsaqXLlyioqKKrC68ltSUpLefvttvfXWW/L19XW0L1u2TLt27dJDDz2kunXrZruNgQMHauzYsRo0aJDWrl2rLl26aMiQIRozZoxTvz/++EOPP/64fv31V82cOVOLFy/WzZs3FRERoSNHjjj1nT9/vnr27KnGjRvru+++08iRIzVr1ix17do1x8eW/vrftm2bPvzwQ8XFxal9+/baunVrjreR16xWq/7xj3/ovffe06VLl1xWB5ArBgC3ERsba0gydu/enePH3Lp1y7Db7flYVdGU3XN98uRJIywszPD19TXOnz9/T/v5448/DEnGyJEjc9Q/MTExy3Xh4eFGhw4d7qmeO3Xo0MEIDw/P020WlDNnzhiSjPHjx9+17/Hjxw1JxoQJEzKsS0pKMtq2bWtIMr799tv8KNWUzMb56tWrhr+/v1GxYsVcb7Nv376O5fTnIzY2NtvHde/e3fDy8jIuXryYYd3PP/9sSDKGDx9uqpYWLVoYLVq0MPWYgvT5558bJUqUMK5cueLUnpqa6vj3oEGDjKzeQh06dMiwWCzGmDFjnNpfeuklo2TJksalS5ccbf/n//wfw2q1GidOnHC0Xb161QgMDDS6d+/uaEtJSTFCQkKMNm3aOG1z/vz5OXrdZvX637JliyHJ6NOnT7aPz26bt7+G0n+vHj9+3NS2kpOTjYCAAOP99983XQfgSlyRAgqR9KlGc+fO1fDhw3X//ffLZrPp6NGjkqQNGzaoZcuW8vPzk7e3t5o3b66NGzdm2M7q1atVr1492Ww2Va5cWR9++GGGqWTZTf3JbMpXXFycevXqpaCgINlsNtWsWVOfffZZpvV/9dVXeueddxQaGio/Pz+1atUqw19fJWnNmjVq2bKl/P395e3trZo1azr+Ij937lxZLJZMr9q89957slqtOnfu3F2f08xUrFhREydO1LVr1zR9+nRHe2bT7TZt2qSIiAiVLVtWJUuWVMWKFfW3v/1NSUlJOnHihMqVKydJGjVqlGNaTfoUq/Tt7du3T926dVOZMmVUpUqVLPeVbtmyZXr44YdVokQJPfDAA/r000+d1mc1vebOqWoRERFavXq1Tp486TTtJ11m43zo0CF16tRJZcqUUYkSJVSvXj3Nnj070/3kdJwzs337drVs2VK+vr7y9vZWs2bNtHr1asf6mJgYVahQQZL01ltvyWKxqFKlSjna9p1KliypGTNmyGq1Ol2Vympq33/+8x9FRUWpbNmyKlGihKpUqaKhQ4c69cnJ+WCGn5+fqlevrt9//92p/fLlyxo4cKDuv/9+eXl56YEHHtA777yj5OTkXO/rdgMGDNCtW7e0YMGCDOtiY2MlSS+88IKkv17jTZo0UUBAgPz8/NSgQQPNmDHjrtMRs3qes/odtGfPHnXs2FEBAQEqUaKE6tevr8WLFzv1SUpKUnR0tCpXrqwSJUooICBAjRo10ldffXXXY546daqioqJUunRpp/b77svZW6bly5fLMAz179/fqb1///66ceOG01TJZcuW6cknn1R4eLijzc/PT127dtXKlSuVkpIiSdq1a5fi4+MzbPOZZ55RqVKltGzZshzVdqdGjRpJUobXVU7O85z64Ycf9PTTTzvOhdDQUHXo0EFnzpxx9PHy8lKPHj30xRdf5Hr6KuAKBCnADaWmpiolJcXp53YjRozQqVOnNG3aNK1cuVJBQUGaN2+e2rRpIz8/P82ePVuLFy9WQECAnnrqKacwtXHjRnXq1Em+vr5auHChJkyYoMWLFzveFOXGTz/9pMaNG+vQoUOaOHGiVq1apQ4dOuj111/XqFGjMvR/++23dfLkSf3rX//SF198obi4OEVFRSk1NdXRZ8aMGWrfvr3S0tIcx/n66687/vPt0aOHgoODM7w5TUlJ0fTp09WlSxeFhobm+pjat28vDw+PbKe8nDhxQh06dJCXl5dmzpypNWvWaNy4cfLx8dGtW7cUEhLieNM0YMAAx1Std99912k7Xbt2VdWqVfX1119r2rRp2da1f/9+DR06VG+88YaWLVumZs2aaciQIfrwww9NH+Pnn3+u5s2bKzg42GkaaVaOHDmiZs2a6fDhw/r000+1dOlSPfTQQ+rXr58++OCDDP1zMs6Z2bJli5588kldvXpVM2bM0FdffSVfX19FRUVp0aJFkv6a+pj+uZz06Uq5fTMpSaGhoWrYsKF27NiR4Xy73dq1a/X444/r1KlTmjRpkr777jv93//7f53eiJo9H3IiJSVFp0+fVvXq1R1tN2/eVGRkpObMmaNhw4Zp9erV6t27tz744ANT072y06pVK4WHh2eY3peamqq5c+eqadOmeuihhyT9dT688sorWrx4sZYuXaquXbtq8ODB+uc//5kntUjS999/r+bNm+vPP//UtGnT9M03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zDB9EkUHY1w8MM5FH2NcPDDORR9j7BqF/q59AAAAAFDQCv1npAAAAACgoBGkAAAAAMAkghQAAAAAmESQAgAAAACTCFLIM1u3blVUVJRCQ0NlsVi0fPlyV5eEPDZ27Fg1btxYvr6+CgoKUufOnXXkyBFXl4U8NHXqVD388MOOL3V89NFH9d1337m6LOSjsWPHymKxaOjQoa4uBXkoJiZGFovF6Sc4ONjVZSEfnD17Vr1791bZsmXl7e2tevXqae/eva4uq1ggSCHPJCYmqm7dupoyZYqrS0E+2bJliwYNGqRdu3Zp/fr1SklJUZs2bZSYmOjq0pBHKlSooHHjxmnPnj3as2ePnnzySXXq1EmHDx92dWnIB7t379YXX3yhhx9+2NWlIB/UqlVL8fHxjp+DBw+6uiTksStXrqh58+ayWq367rvv9NNPP2nixIkqXbq0q0srForE90jBPbRr107t2rVzdRnIR2vWrHFajo2NVVBQkPbu3asnnnjCRVUhL0VFRTktv//++5o6dap27dqlWrVquagq5Ifr16/rueee05dffqnRo0e7uhzkA09PT65CFXHjx49XWFiYYmNjHW2VKlVyXUHFDFekAOTa1atXJUkBAQEurgT5ITU1VQsXLlRiYqIeffRRV5eDPDZo0CB16NBBrVq1cnUpyCdxcXEKDQ1V5cqV9eyzz+q3335zdUnIYytWrFCjRo30zDPPKCgoSPXr19eXX37p6rKKDYIUgFwxDEPDhg3TY489ptq1a7u6HOShgwcPqlSpUrLZbHr11Ve1bNkyPfTQQ64uC3lo4cKF2rdvn8aOHevqUpBPmjRpojlz5mjt2rX68ssvdf78eTVr1kyXLl1ydWnIQ7/99pumTp2qatWqae3atXr11Vf1+uuva86cOa4urVhgah+AXHnttdf0448/avv27a4uBXnswQcf1P79+/Xnn3/q//2//6e+fftqy5YthKki4vTp0xoyZIjWrVunEiVKuLoc5JPbp9rXqVNHjz76qKpUqaLZs2dr2LBhLqwMeSktLU2NGjXSmDFjJEn169fX4cOHNXXqVPXp08fF1RV9XJECYNrgwYO1YsUKff/996pQoYKry0Ee8/LyUtWqVdWoUSONHTtWdevW1SeffOLqspBH9u7dqwsXLqhhw4by9PSUp6entmzZok8//VSenp5KTU11dYnIBz4+PqpTp47i4uJcXQryUEhISIY/ctWsWVOnTp1yUUXFC1ekAOSYYRgaPHiwli1bps2bN6ty5cquLgkFwDAMJScnu7oM5JGWLVtmuHtb//79VaNGDb311lvy8PBwUWXIT8nJyfr555/1+OOPu7oU5KHmzZtn+BqSX3/9VeHh4S6qqHghSCHPXL9+XUePHnUsHz9+XPv371dAQIAqVqzowsqQVwYNGqQFCxbom2++ka+vr86fPy9J8vf3V8mSJV1cHfLC22+/rXbt2iksLEzXrl3TwoULtXnz5gx3bETh5evrm+FzjT4+PipbtiyfdyxCoqOjFRUVpYoVK+rChQsaPXq0EhIS1LdvX1eXhjz0xhtvqFmzZhozZoy6d++u//73v/riiy/0xRdfuLq0YoEghTyzZ88eRUZGOpbT52D37dtXs2bNclFVyEtTp06VJEVERDi1x8bGql+/fgVfEPLc77//rueff17x8fHy9/fXww8/rDVr1qh169auLg2ACWfOnFHPnj118eJFlStXTk2bNtWuXbu4UlHENG7cWMuWLdOIESP03nvvqXLlyvr444/13HPPubq0YsFiGIbh6iIAAAAAoDDhZhMAAAAAYBJBCgAAAABMIkgBAAAAgEkEKQAAAAAwiSAFAAAAACYRpAAAAADAJIIUAAAAAJhEkAIAAAAAkwhSAIBiLyIiQkOHDnV1GQCAQoQgBQAo1KKiotSqVatM1+3cuVMWi0X79u0r4KoAAEUdQQoAUKgNGDBAmzZt0smTJzOsmzlzpurVq6cGDRq4oDIAQFFGkAIAFGpPP/20goKCNGvWLKf2pKQkLVq0SJ07d1bPnj1VoUIFeXt7q06dOvrqq6+y3abFYtHy5cud2kqXLu20j7Nnz6pHjx4qU6aMypYtq06dOunEiRN5c1AAALdHkAIAFGqenp7q06ePZs2aJcMwHO1ff/21bt26pRdffFENGzbUqlWrdOjQIb388st6/vnn9Z///CfX+0xKSlJkZKRKlSqlrVu3avv27SpVqpTatm2rW7du5cVhAQDcHEEKAFDovfDCCzpx4oQ2b97saJs5c6a6du2q+++/X9HR0apXr54eeOABDR48WE899ZS+/vrrXO9v4cKFuu+++/Svf/1LderUUc2aNRUbG6tTp0451QAAKLo8XV0AAAD3qkaNGmrWrJlmzpypyMhIHTt2TNu2bdO6deuUmpqqcePGadGiRTp79qySk5OVnJwsHx+fXO9v7969Onr0qHx9fZ3ab968qWPHjt3r4QAACgGCFACgSBgwYIBee+01ffbZZ4qNjVV4eLhatmypCRMm6KOPPtLHH3+sOnXqyMfHR0OHDs12Cp7FYnGaJihJdrvd8e+0tDQ1bNhQ8+fPz/DYcuXK5d1BAQDcFkEKAFAkdO/eXUOGDNGCBQs0e/ZsvfTSS7JYLNq2bZs6deqk3r17S/orBMXFxalmzZpZbqtcuXKKj493LMfFxSkpKcmx3KBBAy1atEhBQUHy8/PLv4MCALgtPiMFACgSSpUqpR49eujtt9/WuXPn1K9fP0lS1apVtX79eu3YsUM///yzXnnlFZ0/fz7bbT355JOaMmWK9u3bpz179ujVV1+V1Wp1rH/uuecUGBioTp06adu2bTp+/Li2bNmiIUOG6MyZM/l5mAAAN0GQAgAUGQMGDNCVK1fUqlUrVaxYUZL07rvvqkGDBnrqqacUERGh4OBgde7cOdvtTJw4UWFhYXriiSfUq1cvRUdHy9vb27He29tbW7duVcWKFdW1a1fVrFlTL7zwgm7cuMEVKgAoJizGnZPAAQAAAADZ4ooUAAAAAJhEkAIAAAAAkwhSAAAAAGASQQoAAAAATCJIAQAAAIBJBCkAAAAAMIkgBQAAAAAmEaQAAAAAwCSCFAAAAACYRJACAAAAAJMIUgAAAABg0v8HOaYhy5O9k4cAAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "value_counts_dice_thousand = roll_1000['value'].value_counts().sort_index()\n", + "\n", + "# Create bar plot for frequency distribution\n", + "plt.figure(figsize=(10, 6))\n", + "plt.bar(value_counts_dice_thousand.index, value_counts_dice_thousand.values, color='purple', alpha=0.7)\n", + "plt.xlabel('Value')\n", + "plt.ylabel('Frequency')\n", + "plt.title('Frequency Distribution of Dice Roll Values (1000 Rolls)')\n", + "plt.grid(axis='y')\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "\"\"\"\n", + "All the possible resulst seem to even out, the greater the size of the sample, the more evenly distributed this values are.\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": 24, + "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", + "
observation
068.0
112.0
245.0
338.0
449.0
\n", + "
" + ], + "text/plain": [ + " observation\n", + "0 68.0\n", + "1 12.0\n", + "2 45.0\n", + "3 38.0\n", + "4 49.0" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ages_population= pd.read_csv(\"C:\\\\Users\\\\carmo\\\\Desktop\\\\IronHack\\\\Week 3\\\\Day 3\\\\Descriptive-Stats\\\\data\\\\ages_population.csv\")\n", + "ages_population.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0oAAAIhCAYAAABwnkrAAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA/Z0lEQVR4nO3de1zUVf7H8fcoMAICeQmQvJGplaaVlnkpMZVSY0vrt7pWWurmpqam/Spzd8XWa6Zrm5taGeqaaRctWc2kvJRpm5l4wX2YbYplEuUNxESB8/ujZX7N4SIMAwP4ej4e83g055z5fj9zGNF35zvn6zDGGAEAAAAAXGr4ugAAAAAAqGwISgAAAABgISgBAAAAgIWgBAAAAAAWghIAAAAAWAhKAAAAAGAhKAEAAACAhaAEAAAAABaCEgAAAABYCEoALnmLFy+Ww+Eo9PHEE0/4urxqxZ7rWrVqKTIyUt26ddP06dOVnp5e4DXx8fFyOBylOs/Zs2cVHx+vzZs3l+p1hZ2radOmuuuuu0p1nItZvny55s6dW2ifw+FQfHy8V8/nbR999JHat2+v4OBgORwOvfvuuxd9zd69e+VwOOTv769jx46Vf5EAUEZ+vi4AACqLhIQEXX311W5tUVFRPqqmesuf6wsXLig9PV1bt27VzJkz9fzzz2vlypXq0aOHa+ywYcN05513lur4Z8+e1eTJkyVJMTExJX6dJ+fyxPLly7Vv3z6NHTu2QN/27dvVsGHDcq/BU8YY/fa3v1WLFi20Zs0aBQcHq2XLlhd93auvvipJysnJ0dKlS/XUU0+Vd6kAUCYEJQD4r9atW6t9+/YlGnvhwgU5HA75+fFr1BP2XN977716/PHH1aVLF/Xr108HDx5URESEJKlhw4blHhzOnj2roKCgCjnXxdxyyy0+Pf/FfP/99zpx4oT69u2r7t27l+g12dnZev3119W2bVv99NNPeu211whKACo9Lr0DgIvYvHmzHA6H/vGPf2j8+PG64oor5HQ69fXXX0uSPvzwQ3Xv3l2hoaEKCgpS586d9dFHHxU4ztq1a3X99dfL6XQqOjpazz//fIFLvQ4fPiyHw6HFixcXeH1hl2QdPHhQAwcOVHh4uJxOp6655hr9/e9/L7T+N954QxMnTlRUVJRCQ0PVo0cPHThwoMB51q9fr+7duyssLExBQUG65pprNH36dEnSP/7xDzkcDm3fvr3A65599ln5+/vr+++/v+icFqZx48aaPXu2MjMztXDhQld7YZfDbdy4UTExMapXr54CAwPVuHFj3XvvvTp79qwOHz6syy+/XJI0efJk12V+Dz30kNvxvvzyS913332qU6eOmjVrVuS58q1evVpt2rRRrVq1dOWVV+pvf/ubW3/+ZYWHDx92a8+f//zLAGNiYrR27Vqlpqa6XYaYr7Cf8759+3T33XerTp06qlWrlq6//notWbKk0POU9OdcmK1bt6p79+4KCQlRUFCQOnXqpLVr17r64+PjXUHyqaeeksPhUNOmTS963HfffVfHjx/XsGHDNHjwYH311VfaunVrgXHZ2dkaP368IiMjFRQUpNtuu007d+5U06ZNXT+/fGlpaRo+fLgaNmyogIAARUdHa/LkycrJySnRewWAiyEoAcB/5ebmKicnx+3xaxMmTNCRI0e0YMECJSYmKjw8XMuWLVNsbKxCQ0O1ZMkSvfnmm6pbt67uuOMOt7D00Ucf6e6771ZISIhWrFihWbNm6c0331RCQoLH9e7fv1833XST9u3bp9mzZ+uf//yn+vTpo9GjR7suO/u1Z555RqmpqXr11Vf18ssv6+DBg4qLi1Nubq5rzKJFi9S7d2/l5eW53ufo0aP13XffSZL69++vyMjIAmEsJydHCxcuVN++fct0uWLv3r1Vs2ZNffzxx0WOOXz4sPr06aOAgAC99tprWr9+vWbMmKHg4GCdP39eDRo00Pr16yVJQ4cO1fbt27V9+3b96U9/cjtOv379dNVVV+mtt97SggULiq0rOTlZY8eO1eOPP67Vq1erU6dOGjNmjJ5//vlSv8eXXnpJnTt3VmRkpKu2woJnvgMHDqhTp05KSUnR3/72N61atUrXXnutHnroIT333HMFxpfk51yYLVu26Pbbb9fp06e1aNEivfHGGwoJCVFcXJxWrlwp6ZdLE1etWiVJeuyxx7R9+3atXr36ou950aJFcjqduv/++zVkyBA5HA4tWrSowLiHH35Yc+fO1cMPP6z33ntP9957r/r27atTp065jUtLS9PNN9+sDz74QH/+85/1/vvva+jQoZo+fbp+//vfX7QeACgRAwCXuISEBCOp0MeFCxfMpk2bjCRz2223ub0uKyvL1K1b18TFxbm15+bmmrZt25qbb77Z1dahQwcTFRVlfv75Z1dbRkaGqVu3rvn1r+JDhw4ZSSYhIaFAnZLMpEmTXM/vuOMO07BhQ3P69Gm3caNGjTK1atUyJ06cMMYYV/29e/d2G/fmm28aSWb79u3GGGMyMzNNaGio6dKli8nLyytyviZNmmQCAgLMDz/84GpbuXKlkWS2bNlS5OuM+f+53rFjR5FjIiIizDXXXON2vl/P0dtvv20kmeTk5CKP8eOPPxaYL/t4f/7zn4vs+7UmTZoYh8NR4Hw9e/Y0oaGhJisry+29HTp0yG1c/vxv2rTJ1danTx/TpEmTQmu36x4wYIBxOp3myJEjbuN69eplgoKCzKlTp9zOc7Gfc1FuueUWEx4ebjIzM11tOTk5pnXr1qZhw4auz0T+Z3TWrFnFHi/f4cOHTY0aNcyAAQNcbV27djXBwcEmIyPD1ZaSkmIkmaeeesrt9W+88YaRZAYPHuxqGz58uKldu7ZJTU11G/v8888bSSYlJaVEtQFAcVhRAoD/Wrp0qXbs2OH2+PV3kO6991638du2bdOJEyc0ePBgt1WovLw83XnnndqxY4eysrKUlZWlHTt2qF+/fqpVq5br9fn/t94T586d00cffaS+ffsqKCjI7fy9e/fWuXPn9Nlnn7m95je/+Y3b8zZt2kiSUlNTXe8nIyNDI0aMKHaXuUcffVSS9Morr7ja5s2bp+uuu0633XabR+/n14wxxfZff/31CggI0COPPKIlS5bom2++8eg89s+zOK1atVLbtm3d2gYOHKiMjAx9+eWXHp2/pDZu3Kju3burUaNGbu0PPfSQzp49W2A16mI/58JkZWXpX//6l+677z7Vrl3b1V6zZk09+OCD+u6770p8+Z4tISFBeXl5GjJkiKttyJAhysrKcq1USb+saEnSb3/7W7fX33fffQW+C/jPf/5T3bp1U1RUlNtnv1evXm7HAoCyICgBwH9dc801at++vdvj1xo0aOD2/IcffpD0yz/k/P393R4zZ86UMUYnTpzQyZMnlZeXp8jIyALnLKytJI4fP66cnBy9+OKLBc7du3dvSdJPP/3k9pp69eq5PXc6nZKkn3/+WZL0448/StJFNzOIiIhQ//79tXDhQuXm5mrPnj365JNPNGrUKI/ey69lZWXp+PHjxV6+16xZM3344YcKDw/XyJEj1axZMzVr1kwvvPBCqc5l/zyLU9zP7vjx46U6b2kdP3680Frz58g+/8V+zoU5efKkjDGlOk9J5OXlafHixYqKilK7du106tQpnTp1Sj169FBwcLDb5Xf5x8/fxCOfn59fgff0ww8/KDExscBnv1WrVpIKfvYBwBNs1wQAJWSvstSvX1+S9OKLLxa5U1lERIRrh7y0tLQC/XZb/opTdna2W7v9j9Q6deq4/m//yJEjCz13dHR0Me+moPwNEPK/j1ScMWPG6B//+Ifee+89rV+/Xpdddpnuv//+Up2vMGvXrlVubu5Ft/S+9dZbdeuttyo3N1dffPGFXnzxRY0dO1YREREaMGBAic5VmnszFfezy/9HfFE/u7L+o71evXqF3ncof9OM/M9hWdSpU0c1atTw+nk+/PBD10qWHXYk6bPPPtP+/ft17bXXuvp/+OEHXXHFFa4xOTk5BT7/9evXV5s2bTR16tRCz8u2/gC8gaAEAB7q3LmzLrvsMu3fv7/Y1ZSAgADdfPPNWrVqlWbNmuX6B3VmZqYSExPdxkZERKhWrVras2ePW/t7773n9jwoKEjdunXTrl271KZNGwUEBJT5/XTq1ElhYWFasGCBBgwYUGyQaNeunTp16qSZM2dq3759euSRRxQcHFym8x85ckRPPPGEwsLCNHz48BK9pmbNmurQoYOuvvpqvf766/ryyy81YMCAEq2ilEZKSop2797tdvnd8uXLFRISohtvvFGSXLu/7dmzx+2+QmvWrClwPKfTWeLaunfvrtWrV+v77793CwBLly5VUFCQV7YTDw4OVocOHbRq1So9//zzCgwMlPTLitCyZcvUsGFDtWjRotTHXbRokWrUqKFVq1YpLCzMre+7777Tgw8+qNdee03PP/+867LNlStXuuZUkt5+++0CG6vcddddWrdunZo1a6Y6deqUui4AKAmCEgB4qHbt2nrxxRc1ePBgnThxQvfdd5/Cw8P1448/avfu3frxxx81f/58SdJf/vIX3XnnnerZs6fGjx+v3NxczZw5U8HBwTpx4oTrmA6HQw888IBee+01NWvWTG3bttXnn3+u5cuXFzj/Cy+8oC5duujWW2/Vo48+qqZNmyozM1Nff/21EhMTtXHjxlK/n9mzZ2vYsGHq0aOHfv/73ysiIkJff/21du/erXnz5rmNHzNmjPr37y+Hw6ERI0aU6lz79u1zfa8kPT1dn3zyiRISElSzZk2tXr3atbpVmAULFmjjxo3q06ePGjdurHPnzum1116TJNeNakNCQtSkSRO999576t69u+rWrav69euXaCvrwkRFRek3v/mN4uPj1aBBAy1btkxJSUmaOXOmgoKCJEk33XSTWrZsqSeeeEI5OTmqU6eOVq9eXeg22Nddd51WrVql+fPnq127dqpRo0aR9/CaNGmS6zs5f/7zn1W3bl29/vrrWrt2rZ577rkCAcRT06dPV8+ePdWtWzc98cQTCggI0EsvvaR9+/bpjTfeKNUKnPTLKuh7772nO+64Q3fffXehY/76179q6dKlmj59ulq1aqXf/e53mj17tmrWrKnbb79dKSkpmj17tsLCwlSjxv9/W+DZZ59VUlKSOnXqpNGjR6tly5Y6d+6cDh8+rHXr1mnBggU+vx8WgGrAx5tJAIDPXWwntvzdxN56661C+7ds2WL69Olj6tata/z9/c0VV1xh+vTpU2D8mjVrTJs2bUxAQIBp3LixmTFjRqG7rJ0+fdoMGzbMREREmODgYBMXF2cOHz5c6C5uhw4dMkOGDDFXXHGF8ff3N5dffrnp1KmTmTJlykXrL2qHvXXr1rl2JQsKCjLXXnutmTlzZoH3nZ2dbZxOp7nzzjsLnZfC2DsMBgQEmPDwcNO1a1czbdo0k56eXuA19hxt377d9O3b1zRp0sQ4nU5Tr14907VrV7NmzRq313344YfmhhtuME6n023XtPzj/fjjjxc9lzG/7HrXp08f8/bbb5tWrVqZgIAA07RpUzNnzpwCr//qq69MbGysCQ0NNZdffrl57LHHzNq1awvsenfixAlz3333mcsuu8w4HA63cxb2c967d6+Ji4szYWFhJiAgwLRt27bAz620P+fCfPLJJ+b22283wcHBJjAw0Nxyyy0mMTGx0ONdbNe7uXPnGknm3XffLXLMggULjCTzzjvvGGOMOXfunBk3bpwJDw83tWrVMrfccovZvn27CQsLM48//rjba3/88UczevRoEx0dbfz9/U3dunVNu3btzMSJE82ZM2cu+l4B4GIcxlxkeyEAQLmJj4/X5MmTL7rTW2WUmJio3/zmN1q7dq1rAwnA27Zt26bOnTvr9ddf18CBA31dDoBLCJfeAQBKZf/+/UpNTdX48eN1/fXXu7ZkBsoqKSlJ27dvV7t27RQYGKjdu3drxowZat68ufr16+fr8gBcYghKAIBS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U6dO1e9+9ztJzG0+glI5cTgcbs+NMQXaUDbMsedGjRqlPXv2aOvWrQX6mFfPtGzZUsnJyTp16pTeeecdDR48WFu2bHH1M6+l8+2332rMmDHasGGDatWqVeQ45rX0evXq5frv6667Th07dlSzZs20ZMkS3XLLLZKYV0/k5eWpffv2mjZtmiTphhtuUEpKiubPn69Bgwa5xjG3nlu0aJF69eqlqKgot3bmtPRWrlypZcuWafny5WrVqpWSk5M1duxYRUVFafDgwa5xl/rccumdl9WvX181a9YssHqUnp5eIJXDM/m7MzHHnnnssce0Zs0abdq0SQ0bNnS1M69lExAQoKuuukrt27fX9OnT1bZtW73wwgvMq4d27typ9PR0tWvXTn5+fvLz89OWLVv0t7/9TX5+fq65Y17LLjg4WNddd50OHjzI57UMGjRooGuvvdat7ZprrtGRI0ck8Tu2rFJTU/Xhhx9q2LBhrjbm1HP/+7//q6effloDBgzQddddpwcffFCPP/64pk+fLom5zUdQ8rKAgAC1a9dOSUlJbu1JSUnq1KmTj6qqXqKjoxUZGek2x+fPn9eWLVuY42IYYzRq1CitWrVKGzduVHR0tFs/8+pdxhhlZ2czrx7q3r279u7dq+TkZNejffv2uv/++5WcnKwrr7ySefWS7Oxs/fvf/1aDBg34vJZB586dC9xy4auvvlKTJk0k8Tu2rBISEhQeHq4+ffq42phTz509e1Y1arjHgJo1a7q2B2du/8s3e0hUb/nbgy9atMjs37/fjB071gQHB5vDhw/7urQqIzMz0+zatcvs2rXLSDJz5swxu3btcm2xPmPGDBMWFmZWrVpl9u7da373u99dcltWltajjz5qwsLCzObNm922Wj179qxrDPPqmQkTJpiPP/7YHDp0yOzZs8c888wzpkaNGmbDhg3GGObVW369650xzKunxo8fbzZv3my++eYb89lnn5m77rrLhISEuP6OYl498/nnnxs/Pz8zdepUc/DgQfP666+boKAgs2zZMtcY5tYzubm5pnHjxuapp54q0Mecembw4MHmiiuucG0PvmrVKlO/fn3z5JNPusYwt2wPXm7+/ve/myZNmpiAgABz4403urZgRsls2rTJSCrwGDx4sDHml20rJ02aZCIjI43T6TS33Xab2bt3r2+LruQKm09JJiEhwTWGefXMkCFDXH/eL7/8ctO9e3dXSDKGefUWOygxr57JvxeKv7+/iYqKMv369TMpKSmufubVc4mJiaZ169bG6XSaq6++2rz88stu/cytZz744AMjyRw4cKBAH3PqmYyMDDNmzBjTuHFjU6tWLXPllVeaiRMnmuzsbNcY5tYYhzHG+GQpCwAAAAAqKb6jBAAAAAAWghIAAAAAWAhKAAAAAGAhKAEAAACAhaAEAAAAABaCEgAAAABYCEoAAAAAYCEoAQAAAICFoAQAAAAAFoISAKBK27Ztm2rWrKk777zT16UAAKoRhzHG+LoIAAA8NWzYMNWuXVuvvvqq9u/fr8aNG/u6JABANcCKEgCgysrKytKbb76pRx99VHfddZcWL17s1r9mzRo1b95cgYGB6tatm5YsWSKHw6FTp065xmzbtk233XabAgMD1ahRI40ePVpZWVkV+0YAAJUOQQkAUGWtXLlSLVu2VMuWLfXAAw8oISFB+RdKHD58WPfdd5/uueceJScna/jw4Zo4caLb6/fu3as77rhD/fr10549e7Ry5Upt3bpVo0aN8sXbAQBUIlx6BwCosjp37qzf/va3GjNmjHJyctSgQQO98cYb6tGjh55++mmtXbtWe/fudY3/4x//qKlTp+rkyZO67LLLNGjQIAUGBmrhwoWuMVu3blXXrl2VlZWlWrVq+eJtAQAqAVaUAABV0oEDB/T5559rwIABkiQ/Pz/1799fr732mqv/pptucnvNzTff7PZ8586dWrx4sWrXru163HHHHcrLy9OhQ4cq5o0AAColP18XAACAJxYtWqScnBxdccUVrjZjjPz9/XXy5EkZY+RwONxeY19EkZeXp+HDh2v06NEFjs+mEABwaSMoAQCqnJycHC1dulSzZ89WbGysW9+9996r119/XVdffbXWrVvn1vfFF1+4Pb/xxhuVkpKiq666qtxrBgBULXxHCQBQ5bz77rvq37+/0tPTFRYW5tY3ceJErVu3TqtWrVLLli31+OOPa+jQoUpOTtb48eP13Xff6dSpUwoLC9OePXt0yy236OGHH9bvf/97BQcH69///reSkpL04osv+ujdAQAqA76jBACochYtWqQePXoUCEnSLytKycnJOnnypN5++22tWrVKbdq00fz581273jmdTklSmzZttGXLFh08eFC33nqrbrjhBv3pT39SgwYNKvT9AAAqH1aUAACXjKlTp2rBggX69ttvfV0KAKCS4ztKAIBq66WXXtJNN92kevXq6dNPP9WsWbO4RxIAoEQISgCAauvgwYOaMmWKTpw4ocaNG2v8+PGaMGGCr8sCAFQBXHoHAAAAABY2cwAAAAAAC0EJAAAAACwEJQAAAACwEJQAAAAAwEJQAgAAAAALQQkAAAAALAQlAAAAALAQlAAAAADA8n/uBtE+hdy+BgAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Calculate frequency distribution for the 'observation' column\n", + "observation_counts = ages_population['observation'].value_counts().sort_index()\n", + "\n", + "# Create bar plot for frequency distribution\n", + "plt.figure(figsize=(10, 6))\n", + "plt.bar(observation_counts.index, observation_counts.values, color='orange', alpha=0.7)\n", + "plt.xlabel('Age')\n", + "plt.ylabel('Frequency')\n", + "plt.title('Frequency Distribution of Age')\n", + "plt.grid(axis='y')\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "\"\"\"Based on this observation:\n", + "\n", + "The mean (average) age is likely to fall within the range of 35-40 years, as that is where the data is centered.\n", + "The standard deviation, which measures the amount of variation or dispersion in the data, is likely to be around 10-15 years. This is because most of the data seems to fall within this range on either side of the mean\"\"\"" + ] + }, + { + "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": 27, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(36.56, 12.816499625976762)" + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Calculate the mean and standard deviation of the 'observation' column\n", + "mean_age = ages_population['observation'].mean()\n", + "std_dev_age = ages_population['observation'].std()\n", + "\n", + "mean_age, std_dev_age\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "\"\"\"\n", + "Comparing these values with our earlier estimates:\n", + "\n", + "The mean value does fall within the guessed range of 35-40 years.\n", + "The standard deviation is also within the guessed range of 10-15 years.\n", + "So, our estimates based on the frequency distribution plot were quite accurate.\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": 28, + "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", + "
observation
025.0
131.0
229.0
331.0
429.0
\n", + "
" + ], + "text/plain": [ + " observation\n", + "0 25.0\n", + "1 31.0\n", + "2 29.0\n", + "3 31.0\n", + "4 29.0" + ] + }, + "execution_count": 28, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ages_population2 = pd.read_csv(\"C:\\\\Users\\\\carmo\\\\Desktop\\\\IronHack\\\\Week 3\\\\Day 3\\\\Descriptive-Stats\\\\data\\\\ages_population2.csv\")\n", + "ages_population2.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA1IAAAIhCAYAAABE54vcAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAABNgklEQVR4nO3deVyU5f7/8fcoMAICbgmSqBzXXCs1S8tdzAU9WqlRZi5lx0xNPanHb4V9zTWNjp7UvhFoptmipscyMcsyrFxy7TzMSjEXotJAQRHk+v3hjzmNrDcgM+Dr+XjweDjXfd3X9bnnnmF4ey9jM8YYAQAAAAAKrYKrCwAAAACAsoYgBQAAAAAWEaQAAAAAwCKCFAAAAABYRJACAAAAAIsIUgAAAABgEUEKAAAAACwiSAEAAACARQQpAAAAALCIIAXguoqNjZXNZsv1Z/Lkya4ur1y59rmuVKmSgoKC1KVLF82ePVtJSUk51omMjJTNZrM0T1pamiIjI/XZZ59ZWi+3uerVq6e+fftaGqcgq1atUlRUVK7LbDabIiMjS3S+kvbJJ5+oTZs28vX1lc1m0/r16wtc5+DBg7LZbPL09NSZM2euf5EFyMjIUJMmTTRnzhxHW1Fen4X13XffKTIyUsePHy+B6osvPj5ekZGR+uOPPwrVf+3atXrwwQfVoEEDeXt7q169enrooYd09OhRp34ZGRmqX79+nq9vAKWLIAWgVMTExGjnzp1OP+PGjXN1WeVS9nMdFxenf/3rX7r11ls1d+5c3XLLLdq6datT31GjRmnnzp2Wxk9LS9OMGTMsB6mizFUU+QWpnTt3atSoUde9hqIyxmjQoEHy9PTUhg0btHPnTnXq1KnA9V5//XVJUmZmplasWHG9yyzQq6++qnPnzumpp57KsczK67OwvvvuO82YMcOtgtSMGTMKHaTmzp2rtLQ0TZ8+XZs3b9bMmTP17bff6vbbb9fhw4cd/Tw9PfXcc8/phRde0O+//36dqgdQWB6uLgDAjaF58+Zq06ZNofpmZGTIZrPJw4NfUUVx7XN933336emnn9bdd9+tgQMH6ujRowoMDJQk1a5dW7Vr176u9aSlpcnHx6dU5irInXfe6dL5C3L69GmdPXtWAwYMULdu3Qq1Tnp6ut566y21atVKv/32m9544w1NmTLlOleat8zMTM2fP18jRoyQr69vjuVWXp83io0bN6pmzZpObV27dlW9evX08ssvO4KyJD344IOaOHGili1bpn/84x+lXSqAP+GIFACX+uyzz2Sz2fTmm29q0qRJuvnmm2W32/XDDz9IkrZu3apu3brJ399fPj4+6tChgz755JMc42zatEm33nqr7Ha7QkND9dJLL+U4lez48eOy2WyKjY3NsX5up3wdPXpUERERqlmzpux2u2655Rb961//yrX+1atXa/r06QoODpa/v7+6d++uI0eO5Jhn8+bN6tatmwICAuTj46NbbrlFs2fPliS9+eabstlsuR61eeGFF+Tp6anTp08X+Jzmpk6dOlqwYIHOnz+vZcuWOdpzO91u27Zt6ty5s6pXry5vb2/VqVNH9913n9LS0nT8+HHddNNNkqQZM2Y4TtN69NFHncbbu3ev7r//flWtWlX169fPc65s69atU8uWLVWpUiX95S9/0T//+U+n5dmnhV17xCH7+c8+Ota5c2dt2rRJCQkJTqeRZcttPx86dEj9+/dX1apVValSJd16661avnx5rvMUdj/nZseOHerWrZv8/Pzk4+Oj9u3ba9OmTY7lkZGRjqA5ZcoU2Ww21atXr8Bx169fr99//12jRo3SsGHD9P3332vHjh05+qWnp2vSpEkKCgqSj4+POnbsqD179qhevXqO/ZctMTFRo0ePVu3ateXl5aXQ0FDNmDFDmZmZBdazYcMGnTp1SkOHDi2wb7a8Xp+7d+/WkCFDVK9ePccpbw8++KASEhIcfWJjY/XAAw9Ikrp06eLY59nv87i4OPXv31+1a9dWpUqV1KBBA40ePVq//fabUw2//vqrHn/8cYWEhMhut+umm25Shw4dchwlK+h3UmRkpP7+979LkkJDQx315HcE99oQJUnBwcGqXbu2fv75Z6d2Ly8vDR48WK+99pqMMfk8qwCuN4IUgFJx5coVZWZmOv382bRp03TixAktXbrU8b+zK1euVFhYmPz9/bV8+XK98847qlatmnr27On0h8snn3yi/v37y8/PT2+//bbmz5+vd955RzExMUWu97vvvlPbtm116NAhLViwQP/+97/Vp08fjRs3TjNmzMjR/x//+IcSEhL0+uuv67XXXtPRo0cVHh6uK1euOPpER0erd+/eysrKcmznuHHjdPLkSUnS4MGDFRQUlCOsZWZmatmyZRowYICCg4OLvE29e/dWxYoV9fnnn+fZ5/jx4+rTp4+8vLz0xhtvaPPmzZozZ458fX11+fJl1apVS5s3b5YkjRw50nGa5rPPPus0zsCBA9WgQQO9++67Wrp0ab517du3TxMmTNDTTz+tdevWqX379ho/frxeeukly9v46quvqkOHDgoKCnI6jTQvR44cUfv27XX48GH985//1Nq1a9W0aVM9+uijmjdvXo7+hdnPudm+fbu6du2q5ORkRUdHa/Xq1fLz81N4eLjWrFkj6eqpj2vXrpUkPfXUU9q5c6fWrVtX4DZHR0fLbrfroYce0ogRI2Sz2RQdHZ2j3/DhwxUVFaXhw4frgw8+0H333acBAwbkOP0sMTFRd9xxhz7++GM999xz+uijjzRy5EjNnj1bjz32WIH1bNq0STVr1lTTpk0L7Ptnub0+jx8/rsaNGysqKkoff/yx5s6dqzNnzqht27aOINSnTx/NmjVLkvSvf/3Lsc/79OkjSfrxxx911113acmSJdqyZYuee+45ff3117r77ruVkZHhmGvo0KFav369nnvuOW3ZskWvv/66unfv7nQKXWF+J40aNcpxSuPatWsd9dx+++2Wno+ffvpJCQkJatasWY5lnTt3VkJCgg4dOmRpTAAlzADAdRQTE2Mk5fqTkZFhPv30UyPJdOzY0Wm91NRUU61aNRMeHu7UfuXKFdOqVStzxx13ONratWtngoODzcWLFx1tKSkpplq1aubPv+aOHTtmJJmYmJgcdUoyzz//vONxz549Te3atU1ycrJTv7Fjx5pKlSqZs2fPGmOMo/7evXs79XvnnXeMJLNz505jjDHnz583/v7+5u677zZZWVl5Pl/PP/+88fLyMr/88oujbc2aNUaS2b59e57rGfPf53rXrl159gkMDDS33HKL03x/fo7ee+89I8ns27cvzzF+/fXXHM/XteM999xzeS77s7p16xqbzZZjvh49ehh/f3+TmprqtG3Hjh1z6pf9/H/66aeOtj59+pi6devmWvu1dQ8ZMsTY7XZz4sQJp369evUyPj4+5o8//nCap6D9nJc777zT1KxZ05w/f97RlpmZaZo3b25q167teE1kv0bnz5+f73jZjh8/bipUqGCGDBniaOvUqZPx9fU1KSkpjrbDhw8bSWbKlClO669evdpIMsOGDXO0jR492lSuXNkkJCQ49X3ppZeMJHP48OF8a7rlllvMvffem6O9KK/Pa2VmZpoLFy4YX19f88orrzja33333Ryvg9xkZWWZjIwMk5CQYCSZDz74wLGscuXKZsKECXmua+V30vz583N9vRZWRkaG6dy5s/H398/x2jTGmKNHjxpJZsmSJUUaH0DJ4IgUgFKxYsUK7dq1y+nnz9dA3XfffU794+PjdfbsWQ0bNszpKFZWVpbuvfde7dq1S6mpqUpNTdWuXbs0cOBAVapUybF+9v/2F8WlS5f0ySefaMCAAfLx8XGav3fv3rp06ZK++uorp3X69evn9Lhly5aS5DgFKT4+XikpKRozZky+d8n729/+Jkn6v//7P0fb4sWL1aJFC3Xs2LFI2/NnpoBTgW699VZ5eXnp8ccf1/Lly/XTTz8VaZ5r92d+mjVrplatWjm1RUREKCUlRXv37i3S/IW1bds2devWTSEhIU7tjz76qNLS0nIczSpoP+cmNTVVX3/9te6//35VrlzZ0V6xYkUNHTpUJ0+eLPTpgdeKiYlRVlaWRowY4WgbMWKEUlNTHUe6pKtHxCRp0KBBTuvff//9Oa5F/Pe//60uXbooODjY6bXfq1cvp7Hycvr06VxPVSuMa1+fFy5c0JQpU9SgQQN5eHjIw8NDlStXVmpqqv7zn/8UasykpCQ98cQTCgkJkYeHhzw9PVW3bl1JchrjjjvuUGxsrGbOnKmvvvrK6WiVVPjfScVljNHIkSP1xRdfaMWKFTlem9J/TwU8depUsecDUHRcyQ2gVNxyyy353myiVq1aTo9/+eUXSVf/0MvL2bNnZbPZlJWVpaCgoBzLc2srjN9//12ZmZlatGiRFi1alGufa6+vqF69utNju90uSbp48aKkq9dfSCrwZguBgYEaPHiwli1bpqlTp+rw4cP64osvnK4bKarU1FT9/vvvatGiRZ596tevr61bt2revHl68sknlZqaqr/85S8aN26cxo8fX+i5rt2f+clv313vO5P9/vvvudaafQrltfMXtJ9zc+7cORljLM1TGFlZWYqNjVVwcLBat27tOEWve/fu8vX1VXR0tOMOhdnjX3sTBw8Pjxzb9Msvv2jjxo3y9PTMdd5rX/vXunjxotN/ahRWbq/PiIgIffLJJ3r22WfVtm1b+fv7y2azqXfv3vk+59mysrIUFham06dP69lnn1WLFi3k6+urrKws3XnnnU5jrFmzRjNnztTrr7+uZ599VpUrV9aAAQM0b948BQUFFfp3Um432CgsY4xGjRqllStXavny5erfv3+u/bKf38I8BwCuH4IUALdw7VGaGjVqSJIWLVqU553WAgMDHXf4S0xMzLH82rbsPz7S09Od2q/9I7Zq1aqOowVPPvlkrnOHhobmszU5Zd+gIft6qPyMHz9eb775pj744ANt3rxZVapU0UMPPWRpvtxs2rRJV65cUefOnfPtd8899+iee+7RlStXtHv3bi1atEgTJkxQYGCghgwZUqi5rHw3VX77LvuP/Lz2XUF/1BekevXquX7vUvZNPbJfh8VRtWpVVahQocTn2bp1q+NI2LVhSJK++uorfffdd2ratKlj+S+//KKbb77Z0SczMzPH679GjRpq2bKlXnzxxVznLeg6vRo1aujs2bOWtkXK+fpMTk7Wv//9bz3//POaOnWqo196enqhxz906JD279+v2NhYDRs2zNGefTOba+uOiopSVFSUTpw4oQ0bNmjq1KlKSkrS5s2bC/07qaiyQ1RMTIyio6P18MMP59k3e/tL4vUJoOgIUgDcUocOHVSlShV99913Gjt2bJ79vLy8dMcdd2jt2rWaP3++4w/u8+fPa+PGjU59AwMDValSJR04cMCp/YMPPnB67OPjoy5duujbb79Vy5Yt5eXlVeztad++vQICArR06VINGTIk36DRunVrtW/fXnPnztWhQ4f0+OOPF+t/uSXpxIkTmjx5sgICAjR69OhCrVOxYkW1a9dOTZo00VtvvaW9e/dqyJAhhToKY8Xhw4e1f/9+p9P7Vq1aJT8/P8cF+tl3rztw4IAaN27s6Ldhw4Yc49nt9kLX1q1bN61bt06nT592CggrVqyQj49Pidwu3dfXV+3atdPatWv10ksvydvbW9LVoyUrV65U7dq11ahRI8vjRkdHq0KFClq7dq0CAgKclp08eVJDhw7VG2+8oZdeeslxWuiaNWucbnrw3nvv5bjxS9++ffXhhx+qfv36qlq1quW6mjRpoh9//NHSOrm9Pm02m4wxjtdbttdffz3HzT3yek1mv8+uHaOgI7x16tTR2LFj9cknn+jLL7+UVPjfSfnVkxdjjB577DHFxMRo2bJlGj58eL79s0+5tXpDDwAliyAFwC1VrlxZixYt0rBhw3T27Fndf//9qlmzpn799Vft379fv/76q5YsWSJJ+t///V/de++96tGjhyZNmqQrV65o7ty58vX1dfqfa5vNpocfflhvvPGG6tevr1atWumbb77RqlWrcsz/yiuv6O6779Y999yjv/3tb6pXr57Onz+vH374QRs3btS2bdssb8+CBQs0atQode/eXY899pgCAwP1ww8/aP/+/Vq8eLFT//Hjx2vw4MGy2WwaM2aMpbkOHTrkuH4jKSlJX3zxhWJiYlSxYkWtW7fOcXQsN0uXLtW2bdvUp08f1alTR5cuXdIbb7wh6eopY9LV68/q1q2rDz74QN26dVO1atVUo0aNQt2qOzfBwcHq16+fIiMjVatWLa1cuVJxcXGaO3eufHx8JElt27ZV48aNNXnyZGVmZqpq1apat25drrf5btGihdauXaslS5aodevWqlChQp6nlT7//POOa4Kee+45VatWTW+99ZY2bdqkefPm5QgoRTV79mz16NFDXbp00eTJk+Xl5aVXX31Vhw4d0urVqy0dwZOuHkX94IMP1LNnzzxP/3r55Ze1YsUKzZ49W82aNdODDz6oBQsWqGLFiuratasOHz6sBQsWKCAgQBUq/PeS6RdeeEFxcXFq3769xo0bp8aNG+vSpUs6fvy4PvzwQy1dujTfU1Q7d+6sF154wfH9Ydcq7OvT399fHTt21Pz58x2vr+3btys6OlpVqlRxGrN58+aSpNdee01+fn6qVKmSQkND1aRJE9WvX19Tp06VMUbVqlXTxo0bFRcX57R+cnKyunTpooiICDVp0kR+fn7atWuXNm/erIEDB0qy9jsp+/TEV155RcOGDZOnp6caN24sPz+/XJ+zcePGKTo6WiNGjFCLFi2crsG02+267bbbnPp/9dVXqlixYolcNwmgGFx2mwsAN4SC7tSVfTe0d999N9fl27dvN3369DHVqlUznp6e5uabbzZ9+vTJ0X/Dhg2mZcuWxsvLy9SpU8fMmTMn17vEJScnm1GjRpnAwEDj6+trwsPDzfHjx3O9C92xY8fMiBEjzM0332w8PT3NTTfdZNq3b29mzpxZYP153SHwww8/dNxVzcfHxzRt2tTMnTs3x3anp6cbu92e693P8nLtHRK9vLxMzZo1TadOncysWbNMUlJSjnWufY527txpBgwYYOrWrWvsdrupXr266dSpk9mwYYPTelu3bjW33XabsdvtTnd9yx7v119/LXAuY67e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AAAAlHeWglTDhg115swZffrpp5KkwYMH65///KcCAwOvS3EAAAAA4I4sXSNljHF6/NFHHyk1NbVECwIAAAAAd1ekm01kuzZYAQAAAMCNwFKQstlsOa6B4pooAAAAADcaS9dIGWP06KOPym63S5IuXbqkJ554Isdd+9auXVtyFQIAAACAm7EUpIYNG+b0+OGHHy7RYgAAAACgLLAUpGJiYq5XHXk6deqUpkyZoo8++kgXL15Uo0aNFB0drdatW0u6epRsxowZeu2113Tu3Dm1a9dO//rXv9SsWbNSrxUAAADAjaFIX8hbWs6dO6cOHTqoS5cu+uijj1SzZk39+OOPqlKliqPPvHnztHDhQsXGxqpRo0aaOXOmevTooSNHjsjPz891xQMAAPcVHu7a+TdudO38AIrNrYPU3LlzFRIS4nQkrF69eo5/G2MUFRWl6dOna+DAgZKk5cuXKzAwUKtWrdLo0aNLu2QAAAAANwC3DlIbNmxQz5499cADD2j79u26+eabNWbMGD322GOSpGPHjikxMVFhYWGOdex2uzp16qT4+Pg8g1R6errS09Mdj1NSUiRJGRkZysjIuI5bBKDIPD1dO39BvxtcWZ871ya5d33uXJtEfcXhzrVJBdcHwGUKmwdsxo2/DKpSpUqSpIkTJ+qBBx7QN998owkTJmjZsmV65JFHFB8frw4dOujUqVMKDg52rPf4448rISFBH3/8ca7jRkZGasaMGTnaV61aJR8fn+uzMQAAAADcXlpamiIiIpScnCx/f/88+7n1EamsrCy1adNGs2bNkiTddtttOnz4sJYsWaJHHnnE0e/a77IyxuT7/VbTpk3TxIkTHY9TUlIUEhKisLCwfJ8sAC40eLBr51+zJv/lrqzPnWuT3Ls+d65Nor7icOfapILrA+Ay2WerFcStg1StWrXUtGlTp7ZbbrlF77//viQpKChIkpSYmKhatWo5+iQlJSkwMDDPce12u+O7sP7M09NTnq4+1A8gd64+Daag3w2urM+da5Pcuz53rk2ivuJw59ok159aCCBPhc0DFa5zHcXSoUMHHTlyxKnt+++/V926dSVJoaGhCgoKUlxcnGP55cuXtX37drVv375UawUAAABw43DrI1JPP/202rdvr1mzZmnQoEH65ptv9Nprr+m1116TdPWUvgkTJmjWrFlq2LChGjZsqFmzZsnH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/dQxzrX7YsKECaZOnTrGy8vL3HTTTSYsLMzEx8eX7saVMQXti7S0NBMWFmZuuukm4+npaerUqWOGDRtmTpw44TQO74viK8zvKGOMWbZsmfH29jZ//PFHruPwvii+ESNGmLp16zqes27dujlClDF8VpSm/PYFnxWlK799wWdF2WEzxpjre8wLAAAAAMoXrpECAAAAAIsIUgAAAABgEUEKAAAAACwiSAEAAACARQQpAAAAALCIIAUAAAAAFhGkAAAAAMAighQAAAAAWESQAgAAAACLCFIAgHIvPj5eFStW1L333uvqUgAA5YTNGGNcXQQAANfTqFGjVLlyZb3++uv67rvvVKdOHVeXBAAo4zgiBQAo11JTU/XOO+/ob3/7m/r27avY2Fin5Rs2bFDDhg3l7e2tLl26aPny5bLZbPrjjz8cfeLj49WxY0d5e3srJCRE48aNU2pqauluCADArRCkAADl2po1a9S4cWM1btxYDz/8sGJiYpR9Msbx48d1//33669//av27dun0aNHa/r06U7rHzx4UD179tTAgQN14MABrVmzRjt27NDYsWNdsTkAADfBqX0AgHKtQ4cOGjRokMaPH6/MzEzVqlVLq1evVvfu3TV16lRt2rRJBw8edPT/n//5H7344os6d+6cqlSpokceeUTe3t5atmyZo8+OHTvUqVMnpaamqlKlSq7YLACAi3FECgBQbh05ckTffPONhgwZIkny8PDQ4MGD9cYbbziWt23b1mmdO+64w+nxnj17FBsbq8qVKzt+evbsqaysLB07dqx0NgQA4HY8XF0AAADXS3R0tDIzM3XzzTc72owx8vT01Llz52SMkc1mc1rn2hM1srKyNHr0aI0bNy7H+Ny0AgBuXAQpAEC5lJmZqRUrVmjBggUKCwtzWnbffffprbfeUpMmTfThhx86Ldu9e7fT49tvv12HDx9WgwYNrnvNAICyg2ukAADl0vr16zV48GAlJSUpICDAadn06dP14Ycfau3atWrcuLGefvppjRw5Uvv27dOkSZN08uRJ/fHHHwoICNCBAwd05513avjw4Xrsscfk6+ur//znP4qLi9OiRYtctHUAAFfjGikAQLkUHR2t7t275whR0tUjUvv27dO5c+f03nvvae3atWrZsqWWLFniuGuf3W6XJLVs2VLbt2/X0aNHdc899+i2227Ts88+q1q1apXq9gAA3AtHpAAA+JMXX3xRS5cu1c8//+zqUgAAboxrpAAAN7RXX31Vbdu2VfXq1fXll19q/vz5fEcUAKBABCkAwA3t6NGjmjlzps6ePas6depo0qRJmjZtmqvLAgC4OU7tAwAAAACLuNkEAAAAAFhEkAIAAAAAiwhSAAAAAGARQQoAAAAALCJIAQAAAIBFBCkAAAAAsIggBQAAAAAWEaQAAAAAwKL/BwKW+1OfYgxoAAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Calculate frequency distribution for the 'observation' column\n", + "observation_counts2 = ages_population2['observation'].value_counts().sort_index()\n", + "\n", + "# Create bar plot for frequency distribution\n", + "plt.figure(figsize=(10, 6))\n", + "plt.bar(observation_counts2.index, observation_counts2.values, color='red', alpha=0.7)\n", + "plt.xlabel('Age')\n", + "plt.ylabel('Frequency')\n", + "plt.title('Frequency Distribution of Age (Dataset 2)')\n", + "plt.grid(axis='y')\n", + "\n", + "plt.show()\n" + ] + }, + { + "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", + "In the first dataset (from 'ages_population.csv'), the age values were distributed in a bell-shaped curve (normal distribution) centered around 35-40 years, with a wide range of ages from around 0 to 70.\n", + "\n", + "In contrast, the second dataset (from 'ages_population2.csv') has a more narrow distribution, primarily covering ages from around 20 to 35. The data is still somewhat bell-shaped, but the peak is higher and narrower, indicating a lower spread in the data. The distribution is centered around 27-28 years, which is younger than the center of the distribution in the first dataset.\n", + "\n", + "These differences could suggest different population samples. For example, the second dataset might represent a population sample from a city with a younger demographic, while the first dataset might represent a more diverse or broader population sample.\"\"\"" + ] + }, + { + "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": 30, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(27.155, 2.969813932689186)" + ] + }, + "execution_count": 30, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Calculate the mean and standard deviation of the 'observation' column in the second dataset\n", + "mean_age2 = ages_population2['observation'].mean()\n", + "std_dev_age2 = ages_population2['observation'].std()\n", + "\n", + "mean_age2, std_dev_age2\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "\"\"\"\n", + "Comparing these values with those from the first dataset:\n", + "\n", + "The mean age in the second dataset is lower than in the first dataset (27.16 vs 36.56 years), reflecting the younger age distribution we observed in the histogram.\n", + "The standard deviation in the second dataset is also significantly lower than in the first dataset (2.97 vs 12.82 years), indicating that the ages in the second dataset are more closely clustered around the mean.\n", + "The differences in the mean and standard deviation between the two datasets align with our observations from the histograms. The second dataset appears to represent a younger and less diverse age group compared to the first dataset.\"\"\"" + ] + }, + { + "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": 32, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0oAAAIhCAYAAABwnkrAAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAABL8klEQVR4nO39eXgUZd7+f58NSZokJGwxm0CIrLKqLLLJIoIsZhB0JsioIDLiCAICtwrcSvBmU5TBcQEcMMAgEhdAIghEkSgCI6Ds80XUALLLGggQEnI9f/ikf3RlD53uTni/jqOPw67r01WfurpsOKnqapsxxggAAAAA4FDO0w0AAAAAgLchKAEAAACABUEJAAAAACwISgAAAABgQVACAAAAAAuCEgAAAABYEJQAAAAAwIKgBAAAAAAWBCUAAAAAsCAoASi2+fPny2az5foYM2aMp9srU6xzXaFCBYWHh6tz586aOnWqTp48meM1cXFxstlsRdrOpUuXFBcXp/Xr1xfpdbltq1atWnrggQeKtJ6CLF68WDNnzsx1zGazKS4uzqXbc7WvvvpKLVq0UGBgoGw2m5YvX17ga3bt2iWbzSZfX18dO3as5JssQEZGhho0aKBp06Y5lhXn+CysvXv3Ki4uTgcOHHBB9zdu48aNiouL07lz5wpV/+WXX6pr166KjIyU3W5XaGio7r33Xq1atcqpLiMjQ7Vr187z+AbgfgQlADcsPj5emzZtcnoMHz7c022VSdlznZSUpHfeeUd33HGHXn31Vd1+++368ssvnWoHDx6sTZs2FWn9ly5d0sSJE4sclIqzreLILyht2rRJgwcPLvEeissYo7/85S/y9fXVihUrtGnTJnXs2LHA182dO1eSlJmZqYULF5Z0mwV69913dfbsWT377LM5xopyfBbW3r17NXHiRK8KShMnTix0UDp9+rQaNWqkf/zjH1q7dq3mzJkjX19f9erVS4sWLXLU+fr66uWXX9Yrr7yi06dPl1D3AIrCx9MNACj9GjdurBYtWhSqNiMjQzabTT4+fPwUh3WuH3roIT333HNq3769+vbtq/379yssLEySVL16dVWvXr1E+7l06ZICAgLcsq2CtG7d2qPbL8jRo0d15swZ9enTR126dCnUa9LT0/XBBx+oWbNmOnXqlN5//3298MILJdxp3jIzMzV9+nQNGjRIgYGBOcaLcnzeLGJjYxUbG+u07IEHHlB0dLTee+89Pfroo47ljzzyiEaNGqU5c+Zo3Lhx7m4VgAVnlACUmPXr18tms+nf//63Ro8erVtvvVV2u10///yzpD8uSenSpYuCg4MVEBCgdu3a6auvvsqxnpUrV+qOO+6Q3W5XdHS0Xn/99RyXeh04cEA2m03z58/P8frcLsnav3+/+vfvr9DQUNntdt1+++165513cu3/ww8/1Pjx4xUZGang4GDdd9992rdvX47trF69Wl26dFGlSpUUEBCg22+/XVOnTpUk/fvf/5bNZsv1rMsrr7wiX19fHT16tMA5zU3NmjX1xhtv6MKFC5ozZ45jeW6Xw61bt06dOnVStWrV5O/vr5o1a+qhhx7SpUuXdODAAd1yyy2SpIkTJzouoxo4cKDT+n744Qc9/PDDqlKlimrXrp3ntrItW7ZMTZs2VYUKFXTbbbfpn//8p9N49mVb1jMG2fOffXarU6dOWrlypQ4ePOh0mVe23N7n3bt3q3fv3qpSpYoqVKigO+64QwsWLMh1O4V9n3OzYcMGdenSRUFBQQoICFDbtm21cuVKx3hcXJwjSL7wwguy2WyqVatWgetdvny5Tp8+rcGDB2vAgAH66aeftGHDhhx16enpGj16tMLDwxUQEKAOHTpo27ZtqlWrluP9y3b8+HENGTJE1atXl5+fn6KjozVx4kRlZmYW2M+KFSt05MgRPfbYYwXWZsvr+Ny6dav69eunWrVqyd/fX7Vq1dIjjzyigwcPOmrmz5+vP//5z5Kkzp07O97z7P/Pk5KS1Lt3b1WvXl0VKlRQnTp1NGTIEJ06dcqph99//11PPfWUatSoIbvdrltuuUXt2rXLcZaroM+kuLg4/c///I8kKTo62tFPUc/A+vr6qnLlyjn+wcjPz0+xsbF67733ZIwp0joBuB5BCcANu3btmjIzM50e1xs7dqwOHTqk2bNnKzExUaGhoVq0aJG6deum4OBgLViwQB999JGqVq2q+++/3+kvJl999ZV69+6toKAgLVmyRNOnT9dHH32k+Pj4Yve7d+9etWzZUrt379Ybb7yhzz//XL169dLw4cM1ceLEHPXjxo3TwYMHNXfuXL333nvav3+/YmJidO3aNUfNvHnz1LNnT2VlZTn2c/jw4Tp8+LCkP/5VOTw8PEcYy8zM1Jw5c9SnTx9FRkYWe5969uyp8uXL65tvvsmz5sCBA+rVq5f8/Pz0/vvva/Xq1Zo2bZoCAwN19epVRUREaPXq1ZKkJ5980nEZ5UsvveS0nr59+6pOnTr6+OOPNXv27Hz72r59u0aOHKnnnntOy5YtU9u2bTVixAi9/vrrRd7Hd999V+3atVN4eLjTZZ552bdvn9q2bas9e/bon//8p5YuXaqGDRtq4MCBeu2113LUF+Z9zk1ycrLuvfdenT9/XvPmzdOHH36ooKAgxcTEKCEhQdIflyYuXbpUkvTss89q06ZNWrZsWYH7PG/ePNntdv31r3/VoEGDZLPZNG/evBx1TzzxhGbOnKknnnhCn332mR566CH16dMnx+Vhx48fV6tWrbRmzRq9/PLL+uKLL/Tkk09q6tSp+tvf/lZgPytXrlRoaKgaNmxYYO31cjs+Dxw4oPr162vmzJlas2aNXn31VR07dkwtW7Z0BJ1evXppypQpkqR33nnH8Z736tVLkvTLL7+oTZs2mjVrltauXauXX35Z//nPf9S+fXtlZGQ4tvXYY49p+fLlevnll7V27VrNnTtX9913n9MlboX5TBo8eLDjksOlS5c6+rnrrrsKnIOsrCxlZmbq6NGjmjBhgn766SeNHj06R12nTp108OBB7d69u0hzDKAEGAAopvj4eCMp10dGRob5+uuvjSTToUMHp9elpaWZqlWrmpiYGKfl165dM82aNTOtWrVyLLv77rtNZGSkuXz5smNZamqqqVq1qrn+IywlJcVIMvHx8Tn6lGQmTJjgeH7//feb6tWrm/PnzzvVDRs2zFSoUMGcOXPGGGMc/ffs2dOp7qOPPjKSzKZNm4wxxly4cMEEBweb9u3bm6ysrDzna8KECcbPz8+cOHHCsSwhIcFIMsnJyXm+zpj/b663bNmSZ01YWJi5/fbbnbZ3/Rx98sknRpLZvn17nuv4/fffc8yXdX0vv/xynmPXi4qKMjabLcf2unbtaoKDg01aWprTvqWkpDjVZc//119/7VjWq1cvExUVlWvv1r779etn7Ha7OXTokFNdjx49TEBAgDl37pzTdgp6n/PSunVrExoaai5cuOBYlpmZaRo3bmyqV6/uOCayj9Hp06fnu75sBw4cMOXKlTP9+vVzLOvYsaMJDAw0qampjmV79uwxkswLL7zg9PoPP/zQSDIDBgxwLBsyZIipWLGiOXjwoFPt66+/biSZPXv25NvT7bffbrp3755jeXGOT6vMzExz8eJFExgYaN58803H8o8//jjHcZCbrKwsk5GRYQ4ePGgkmc8++8wxVrFiRTNy5Mg8X1uUz6Tp06fnerwW5P7773d8PgYHB5ulS5fmWrd//34jycyaNatI6wfgepxRAnDDFi5cqC1btjg9rr+k5KGHHnKq37hxo86cOaMBAwY4nYXKyspS9+7dtWXLFqWlpSktLU1btmxR3759VaFCBcfrs/+1vjiuXLmir776Sn369FFAQIDT9nv27KkrV65o8+bNTq/505/+5PS8adOmkuS4RGjjxo1KTU3VM888k+9d5v7+979Lkv71r385lr399ttq0qSJOnToUKz9uZ4p4FKdO+64Q35+fnrqqae0YMEC/frrr8XajvX9zE+jRo3UrFkzp2X9+/dXamqqfvjhh2Jtv7DWrVunLl26qEaNGk7LBw4cqEuXLuU4G1XQ+5ybtLQ0/ec//9HDDz+sihUrOpaXL19ejz32mA4fPlzoy/es4uPjlZWVpUGDBjmWDRo0SGlpaY4zVdIfZ7Qk6S9/+YvT6x9++OEcl3Z9/vnn6ty5syIjI52O/R49ejitKy9Hjx5VaGhosfbHenxevHhRL7zwgurUqSMfHx/5+PioYsWKSktL03//+99CrfPkyZN6+umnVaNGDfn4+MjX11dRUVGS5LSOVq1aaf78+Zo0aZI2b97sdLZJKvxn0o1466239P333+uzzz7T/fffr9jYWH344Yc56rLn98iRIze0PQA3jm9TA7hht99+e743c4iIiHB6fuLECUl//EUuL2fOnJHNZlNWVpbCw8NzjOe2rDBOnz6tzMxMvfXWW3rrrbdyrbF+v6FatWpOz+12uyTp8uXLkv74/oOkAm9mEBYWptjYWM2ZM0cvvvii9uzZo2+//dbpexvFlZaWptOnT6tJkyZ51tSuXVtffvmlXnvtNQ0dOlRpaWm67bbbNHz4cI0YMaLQ27K+n/nJ770r6Tt7nT59Otdesy9xtG6/oPc5N2fPnpUxpkjbKYysrCzNnz9fkZGRat68ueMSuvvuu0+BgYGaN2+e4w5/2eu33iTBx8cnxz6dOHFCiYmJ8vX1zXW71mPf6vLly07/aFFYuR2f/fv311dffaWXXnpJLVu2VHBwsGw2m3r27JnvnGfLyspSt27ddPToUb300ktq0qSJAgMDlZWVpdatWzutIyEhQZMmTdLcuXP10ksvqWLFiurTp49ee+01hYeHF/ozKbcbWBRW3bp1Hf/9pz/9ST169NDQoUMVGxurcuX+v3+3zp7fwswBgJJFUAJQ4qxnWUJCQiT98S+sed2pLCwszHGHvOPHj+cYty7L/stFenq603LrX1KrVKni+Nf+oUOH5rrt6OjofPYmp+wbIGR/Hyk/I0aM0L///W999tlnWr16tSpXrqy//vWvRdpeblauXKlr166pU6dO+dbdc889uueee3Tt2jVt3bpVb731lkaOHKmwsDD169evUNsqym8z5ffeZf8lPq/3rqC/tBekWrVquf7uUPZNM7KPwxtRpUoVlStXzuXb+fLLLx1nsqxhR5I2b96svXv3qmHDho7xEydO6NZbb3XUZGZm5jj+Q0JC1LRpU02ePDnX7Rb0PbmQkBCdOXOmSPsi5Tw+z58/r88//1wTJkzQiy++6KhLT08v9Pp3796tHTt2aP78+RowYIBjefbNYqx9z5w5UzNnztShQ4e0YsUKvfjiizp58qRWr15d6M8kV2rVqpVWr16t33//3Wnd2fvviuMTwI0hKAFwu3bt2qly5crau3evhg0blmedn5+fWrVqpaVLl2r69OmOv1BfuHBBiYmJTrVhYWGqUKGCdu7c6bT8s88+c3oeEBCgzp0768cff1TTpk3l5+d3w/vTtm1bVapUSbNnz1a/fv3yDRLNmzdX27Zt9eqrr2r37t166qmnbuhfqSXp0KFDGjNmjCpVqqQhQ4YU6jXly5fX3XffrQYNGuiDDz7QDz/8oH79+hXqLEpR7NmzRzt27HC6/G7x4sUKCgpyfAE+++5vO3fuVP369R11K1asyLE+u91e6N66dOmiZcuW6ejRo04BYOHChQoICHDJ7cQDAwN19913a+nSpXr99dfl7+8v6Y+zHYsWLVL16tVVr169Iq933rx5KleunJYuXapKlSo5jR0+fFiPPfaY3n//fb3++uuOyzYTEhKcbirwySef5LixygMPPKBVq1apdu3aqlKlSpH7atCggX755ZcivSa349Nms8kY4zjess2dOzfHzTPyOiaz/z+zrqOgM7Q1a9bUsGHD9NVXX+m7776TVPjPpPz6KQpjjJKTk1W5cuUcQTj7ktii3jADgOsRlAC4XcWKFfXWW29pwIABOnPmjB5++GGFhobq999/144dO/T7779r1qxZkqT/+7//U/fu3dW1a1eNHj1a165d06uvvqrAwECnf3m22Wx69NFH9f7776t27dpq1qyZvv/+ey1evDjH9t988021b99e99xzj/7+97+rVq1aunDhgn7++WclJiZq3bp1Rd6fN954Q4MHD9Z9992nv/3tbwoLC9PPP/+sHTt26O2333aqHzFihGJjY2Wz2fTMM88UaVu7d+92fH/i5MmT+vbbbxUfH6/y5ctr2bJljrNbuZk9e7bWrVunXr16qWbNmrpy5Yref/99SX9c0iX98f2vqKgoffbZZ+rSpYuqVq2qkJCQQt3KOjeRkZH605/+pLi4OEVERGjRokVKSkrSq6++qoCAAElSy5YtVb9+fY0ZM0aZmZmqUqWKli1bluttsJs0aaKlS5dq1qxZat68ucqVK5fnZZ8TJkxwfCfn5ZdfVtWqVfXBBx9o5cqVeu2113IEkOKaOnWqunbtqs6dO2vMmDHy8/PTu+++q927d+vDDz8s0hk46Y+zoNnfY+ndu3euNf/4xz+0cOFCTZ06VY0aNdIjjzyiN954Q+XLl9e9996rPXv26I033lClSpWcLut65ZVXlJSUpLZt22r48OGqX7++rly5ogMHDmjVqlWaPXt2vpeQdurUSa+88orj97OsCnt8BgcHq0OHDpo+fbrj+EpOTta8efNUuXJlp3U2btxYkvTee+8pKChIFSpUUHR0tBo0aKDatWvrxRdflDFGVatWVWJiopKSkpxef/78eXXu3Fn9+/dXgwYNFBQUpC1btmj16tXq27evpKJ9JmVfPvjmm29qwIAB8vX1Vf369RUUFJTrnPXu3VvNmjXTHXfcoWrVquno0aOaP3++kpOT9c477+T4HtnmzZtVvnx5l3xvEcAN8uSdJACUbgXd6Sr7bmIff/xxruPJycmmV69epmrVqsbX19fceuutplevXjnqV6xYYZo2bWr8/PxMzZo1zbRp03K9y9r58+fN4MGDTVhYmAkMDDQxMTHmwIEDud7FLSUlxQwaNMjceuutxtfX19xyyy2mbdu2ZtKkSQX2n9cd9latWuW4K1lAQIBp2LChefXVV3Psd3p6urHb7bnePSwv1jsM+vn5mdDQUNOxY0czZcoUc/LkyRyvsc7Rpk2bTJ8+fUxUVJSx2+2mWrVqpmPHjmbFihVOr/vyyy/NnXfeaex2u9Nd07LX9/vvvxe4LWP+uOtdr169zCeffGIaNWpk/Pz8TK1atcyMGTNyvP6nn34y3bp1M8HBweaWW24xzz77rFm5cmWOu52dOXPGPPzww6Zy5crGZrM5bTO393nXrl0mJibGVKpUyfj5+ZlmzZrleN+K+j7n5ttvvzX33nuvCQwMNP7+/qZ169YmMTEx1/UVdNe7mTNnGklm+fLledbMnj3bSDKffvqpMcaYK1eumFGjRpnQ0FBToUIF07p1a7Np0yZTqVIl89xzzzm99vfffzfDhw830dHRxtfX11StWtU0b97cjB8/3ly8eDHf3n7++Wdjs9nMRx995LS8OMfn4cOHzUMPPWSqVKligoKCTPfu3c3u3btNVFSU0536suckOjralC9f3uk92bt3r+natasJCgoyVapUMX/+85/NoUOHnI6FK1eumKeffto0bdrUBAcHG39/f1O/fn0zYcIEx50XsxX2M2ns2LEmMjLSlCtXrsA78r366qumZcuWpkqVKqZ8+fKmWrVq5v777zeff/55rvX33HNPjrvvAfAMmzH8ohmA0icuLk4TJ04slT/KmJiYqD/96U9auXKlevbs6el2UEZt3LhR7dq10wcffKD+/fu7bL0xMTHKzMzUF1984bJ14g+//PKL6tatqzVr1qhr166ebge46XHpHQC4yd69e3Xw4EGNHj1ad9xxh+OWzMCNSkpK0qZNm9S8eXP5+/trx44dmjZtmurWreu4vMxVpk6dqjvvvFNbtmxRy5YtXbrum92kSZPUpUsXQhLgJQhKAOAmzzzzjL777jvdddddWrBgQZG/uwLkJTg4WGvXrtXMmTN14cIFhYSEqEePHpo6dWqxbuedn8aNGys+Pj7XOxqi+DIzM1W7dm2NHTvW060A+P/j0jsAAAAAsChXcAkAAAAA3FwISgAAAABgQVACAAAAAIsyfzOHrKwsHT16VEFBQXxxGgAAALiJGWN04cIFRUZGOv0gd27KfFA6evSoatSo4ek2AAAAAHiJ3377TdWrV8+3pswHpaCgIEl/TEZwcLCHuwEAAADgKampqapRo4YjI+SnzAel7MvtgoODCUoAAAAACvWVHG7mAAAAAAAWBCUAAAAAsCAoAQAAAIAFQQkAAAAALAhKAAAAAGBBUAIAAAAAC4ISAAAAAFgQlAAAAADAgqAE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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "ages_population3 = pd.read_csv(\"C:\\\\Users\\\\carmo\\\\Desktop\\\\IronHack\\\\Week 3\\\\Day 3\\\\Descriptive-Stats\\\\data\\\\ages_population3.csv\")\n", + "\n", + "\n", + "# Calculate frequency distribution for the 'observation' column\n", + "observation_counts3 = ages_population3['observation'].value_counts().sort_index()\n", + "\n", + "# Create bar plot for frequency distribution\n", + "plt.figure(figsize=(10, 6))\n", + "plt.bar(observation_counts3.index, observation_counts3.values, color='red', alpha=0.7)\n", + "plt.xlabel('Age')\n", + "plt.ylabel('Frequency')\n", + "plt.title('Frequency Distribution of Age (Dataset 3)')\n", + "plt.grid(axis='y')\n", + "\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": 33, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(41.989, 16.144705959865934)" + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Calculate the mean and standard deviation of the 'observation' column in the third dataset\n", + "mean_age3 = ages_population3['observation'].mean()\n", + "std_dev_age3 = ages_population3['observation'].std()\n", + "\n", + "mean_age3, std_dev_age3" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'\\nThe frequency distribution of age values for the third dataset shows that the data is not symmetric and has a slightly bimodal distribution, with one peak around 35 years and another around 67 years.\\n\\nThe exact mean (average) age for this dataset is approximately 41.99 years, and the standard deviation is approximately 16.14 years.\\n\\nCompared to the first two datasets, this one has a higher mean age, suggesting that it represents an older population. The larger standard deviation indicates a greater spread in the data, which is consistent with the broader and more varied distribution visible in the histogram. The presence of two peaks in the distribution suggests that there might be two distinct age groups within this population sample.'" + ] + }, + "execution_count": 34, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\"\"\"\n", + "The frequency distribution of age values for the third dataset shows that the data is not symmetric and has a slightly bimodal distribution, with one peak around 35 years and another around 67 years.\n", + "\n", + "The exact mean (average) age for this dataset is approximately 41.99 years, and the standard deviation is approximately 16.14 years.\n", + "\n", + "Compared to the first two datasets, this one has a higher mean age, suggesting that it represents an older population. The larger standard deviation indicates a greater spread in the data, which is consistent with the broader and more varied distribution visible in the histogram. The presence of two peaks in the distribution suggests that there might be two distinct age groups within this population sample.\"\"\"" + ] + }, + { + "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": 36, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(30.0, 40.0, 53.0)" + ] + }, + "execution_count": 36, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "def calculate_quartiles_new(data):\n", + " # Sort the data\n", + " sorted_data = sorted(data)\n", + "\n", + " # Calculate Q2 (median)\n", + " Q2 = calculate_median(sorted_data)\n", + "\n", + " # Calculate indices for Q1 and Q3\n", + " mid_index = len(sorted_data) // 2\n", + " Q1_index = mid_index // 2\n", + " Q3_index = mid_index + Q1_index if len(sorted_data) % 2 == 0 else mid_index + Q1_index + 1\n", + "\n", + " # Calculate Q1 and Q3\n", + " if len(sorted_data) % 2 == 0: # even length\n", + " Q1 = (sorted_data[Q1_index] + sorted_data[Q1_index - 1]) / 2\n", + " Q3 = (sorted_data[Q3_index] + sorted_data[Q3_index - 1]) / 2\n", + " else: # odd length\n", + " Q1 = sorted_data[Q1_index]\n", + " Q3 = sorted_data[Q3_index]\n", + "\n", + " return Q1, Q2, Q3\n", + "\n", + "# Calculate the quartiles of the 'observation' column in the third dataset using the new function\n", + "Q1_3_new, Q2_3_new, Q3_3_new = calculate_quartiles_new(ages_population3['observation'])\n", + "Q1_3_new, Q2_3_new, Q3_3_new\n" + ] + }, + { + "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", + "The difference between the mean (approximately 41.99 years) and the median (40.0 years) is about 2 years.\n", + "\n", + "Comparing the mean and median can provide insights into the shape of the distribution. When the mean and median are close, as they are in this case, it suggests that the data is somewhat symmetric around the mean/median. However, the histogram we plotted earlier showed a slightly bimodal distribution, indicating two groups within the population.\n", + "\n", + "The quartiles provide additional information. Half of the population is under 40 years old (the median), and 75% of the population is under 53 years old (Q3). The difference between Q3 and the maximum value in the dataset is quite large, which accounts for the long tail on the right side of the distribution (ages above 53). This tail is pulling the mean upwards, making it slightly larger than the median.\"\"\"" + ] + }, + { + "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.10.9" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/your-code/main.ipynb b/your-code/main.ipynb index 5759add..ec4b942 100644 --- a/your-code/main.ipynb +++ b/your-code/main.ipynb @@ -1,522 +1,1372 @@ -{ - "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": 1, + "metadata": {}, + "outputs": [], + "source": [ + "# Libraries\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import pandas as pd\n", + "import random" + ] + }, + { + "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": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Dice_Roll Value\n", + "0 1 1\n", + "1 2 4\n", + "2 3 5\n", + "3 4 6\n", + "4 5 1\n", + "5 6 3\n", + "6 7 1\n", + "7 8 2\n", + "8 9 1\n", + "9 10 6\n" + ] + } + ], + "source": [ + "# your code here\n", + "\n", + "def dicerollsim ():\n", + " dice_rolls = random.choices(range(1,7), k=10)\n", + " df = pd.DataFrame({'Dice_Roll': range(1,11),'Value': dice_rolls })\n", + "\n", + " return df\n", + "\n", + "dice_roll_df = dicerollsim()\n", + "\n", + "print(dice_roll_df)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 2.- Plot the results sorted by value." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "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", + "
Dice_RollValue
011
451
671
891
782
563
124
235
346
9106
\n", + "
" + ], + "text/plain": [ + " Dice_Roll Value\n", + "0 1 1\n", + "4 5 1\n", + "6 7 1\n", + "8 9 1\n", + "7 8 2\n", + "5 6 3\n", + "1 2 4\n", + "2 3 5\n", + "3 4 6\n", + "9 10 6" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# your code here\n", + "#first sort the DF by value\n", + "\n", + "dice_roll_sorted = dice_roll_df.sort_values(by= 'Value')\n", + "\n", + "dice_roll_sorted" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAioAAAHFCAYAAADcytJ5AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAy1klEQVR4nO3de1wVdeL/8feJywEUEVDAO5im5D2x8lLeS1EXs3IlTVxtH7VpYW7rrTakVLLb1mbeKjVLs+1rqeWqad5Liywsg7xsmlje0kLFJIHP748enl8nUMEL8xFfz8dj/jgzc2beMxK8+8zMOS5jjBEAAICFrnI6AAAAwJlQVAAAgLUoKgAAwFoUFQAAYC2KCgAAsBZFBQAAWIuiAgAArEVRAQAA1qKoAAAAa1FU4JjZs2fL5XJ5poCAAEVFRaljx45KS0vTwYMHi7xn3LhxcrlcZZpz9+7dXjmvuuoqhYaGqnPnzvrggw8uaJuzZ8/2zDt9Pnbv3n3W9/7xvPn6+qpatWrq16+fduzYcV55LjaXy6Vx48Z5XmdmZmrcuHHnPLbSMMZo/vz5uummmxQREaGAgADVrFlTt956q1555ZWLth9JOnHihMaNG6c1a9Zc1O1K0po1a+Ryuc657dM/+z/++ONFzyBJp06dUmRkpG688cYzrlNYWKjatWuradOmJd5uSY8POBOKChw3a9Ysbdy4UStWrNBLL72k5s2ba9KkSYqNjdXKlSu91r3nnnu0ceNGR3I+8MAD2rhxo9avX69nnnlGO3bsUHx8vNatW+dIntPnbeXKlRo2bJgWL16sdu3a6aeffnIkz9lkZmYqNTX1ohaVMWPGKDExUbGxsXrllVe0dOlSjR8/XpGRkVq0aNFF24/0W1FJTU0t139s/fz8dPfdd+uTTz5RZmZmseusXLlS2dnZGjJkSBmnw5XM1+kAQOPGjRUXF+d5ffvtt+uhhx5Su3bt1KdPH+3YsUORkZGSpJo1a6pmzZqO5Kxdu7bn/zbbtm2r+vXrq3379nr11Vd18803l3me35+3Dh06qKCgQCkpKVq4cKH+8pe/lHmesvTLL7/o+eef18CBAzVjxgyvZYMGDVJhYeFF2Y8xRidPnrwo27ocDBkyRM8++6xmzpypZ555psjymTNnyt/fXwMGDHAgHa5UjKjASrVr19azzz6rY8eOafr06Z75Z7r0M2/ePLVu3VoVK1ZUxYoV1bx5c7366qte66xcuVKdO3dWpUqVFBQUpLZt2+rDDz8874ynS8KBAwe85m/dulUJCQkKDQ1VQECAmjdvrtdee+2893OheT777DP96U9/UlhYmAICAtSiRQv95z//8VrnxIkTevjhhxUTE6OAgACFhYUpLi5Ob775pmedDh06qEOHDkX2O2jQIEVHR58x1+zZs3XnnXdKkjp27Oi5ZHX6stcXX3yhnj17KiIiQm63W9WrV1ePHj20d+/eM24zNzdXeXl5qlatWrHLr7rK+1fbkSNHdP/996tGjRry9/dX3bp19cgjjygvL89rPZfLpWHDhmnatGmKjY2V2+3Wa6+9pqpVq0qSUlNTPfkHDRrked+OHTt01113eY4hNjZWL730UpFc33zzjbp166agoCBVqVJF9913n44dO3bG4yxOdna2+vTpo0qVKikkJEQDBgzQoUOHPMuHDBmisLAwnThxosh7O3XqpEaNGp1x27GxsWrdurVef/115efney37+eeftWjRIiUkJCg8PFyfffaZ+vXrp+joaAUGBio6OlqJiYn67rvvznkMpflZ+vXXXzV+/Hg1bNhQbrdbVatW1V/+8hevY0b5xogKrBUfHy8fH59zXlp57LHH9MQTT6hPnz76+9//rpCQEG3dutXrF+Ybb7yhgQMHKiEhQa+99pr8/Pw0ffp03XrrrVq+fLk6d+5c6ny7du2SJF1zzTWeedu2bVObNm0UERGhf//73woPD9cbb7yhQYMG6cCBAxo5cmSp93MheVavXq1u3brphhtu0LRp0xQSEqL58+frz3/+s06cOOH5YztixAi9/vrrGj9+vFq0aKHc3Fxt3bpVhw8fvuBcPXr00MSJEzV27Fi99NJLuu666yRJV199tXJzc9W1a1fFxMTopZdeUmRkpPbv36/Vq1ef9Q94lSpVVK9ePU2ZMkURERGKj49XgwYNii2xJ0+eVMeOHfW///1Pqampatq0qdavX6+0tDRlZGRoyZIlXusvXLhQ69ev12OPPaaoqCiFhYVp2bJl6tatm4YMGaJ77rlHkjzlJTMzU23atPGU66ioKC1fvlwPPvigfvzxR6WkpEj6rUC2b99efn5+mjJliiIjIzV37lwNGzasVOfztttuU9++fXXffffp66+/1j//+U9lZmbqk08+kZ+fn5KTkzVz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gQMHauzYsXr66adVuXJlr1G5SpUq6eabb9bTTz/tOQ9r167Vq6++qsqVK59z2yX9WerXr5/mzp2r+Ph4JScn6/rrr5efn5/27t2r1atXKyEhQbfddlupjguXIQdv5MUV7vTTK6cnf39/ExERYdq3b28mTpxoDh48WOQ9f3zq57Q5c+aYVq1amYCAAFOxYkXTokULrydqjDFm7dq1pkePHiYsLMz4+fmZGjVqmB49epi33377rDlPP6Hz9NNPF7v8zjvvNL6+vmbnzp3GGGO++uor06tXLxMSEmL8/f1Ns2bNimS5GE/9FPe01C+//GJq165t6tevb/Lz840xxmzZssX07dvXREREGD8/PxMVFWU6depkpk2b5nnf6NGjTVxcnAkNDTVut9vUrVvXPPTQQ+bHH3/02v5rr71mYmNjTUBAgLn22mvNW2+9VaKnfowx5vnnnzcxMTHGx8fHc+zffPONSUxMNFdffbUJDAw0ISEh5vrrrzezZ88+6znIy8szzzzzjOnevbupXbu2cbvdJiAgwMTGxpqRI0eaw4cPe61/+PBhc99995lq1aoZX19fU6dOHTNmzBhz8uTJIrmHDh1a7D5XrlxpWrRoYdxut5FkkpKSPMt27dplBg8ebGrUqGH8/PxM1apVTZs2bcz48eO9tpGZmWm6du1qAgICTFhYmBkyZIhZtGhRqZ762bx5s+nVq5epWLGiCQ4ONomJiebAgQPFvmfNmjVGknnyySfPuu0zue2224wkc//99xdZtnfvXnP77beb0NBQExwcbLp162a2bt1q6tSp43Vuinvqx5iS/yydOnXKPPPMM6ZZs2ae/74bNmxo7r33XrNjx47zOi5cXlzGnOOxCgDAZenvf/+7pk6dquzsbK97WIDLCZd+AKCc2bRpk7Zv364pU6bo3nvvpaTgssaICgCUMy6XS0FBQYqPj9esWbPO+dkpgM0YUQGAcob//0R5wuPJAADAWhQVAABgLYoKAACw1mV9j0phYaF++OEHBQcHl+pjrwEAgHOMMTp27JiqV6/u+aLLM7msi8oPP/xwxu93AQAAdsvOzj7rl8pKl3lROf09JdnZ2SX6GG8AAOC8o0ePqlatWiX6YsnLuqicvtxTqVIligoAAJeZkty2wc20AADAWhQVAABgLYoKAACwFkUFAABYi6ICAACsRVEBAADWoqgAAABrUVQAAIC1KCoAAMBaFBUAAGAtx4vK999/rwEDBig8PFxBQUFq3ry5Nm/e7HQsAABgAUe/6+enn35S27Zt1bFjRy1dulQRERH63//+p8qVKzsZCwAAWMLRojJp0iTVqlVLs2bN8syLjo52LhAAALCKo5d+Fi9erLi4ON15552KiIhQixYt9PLLLzsZCQAAWMTRovLtt99q6tSpql+/vpYvX6777rtPDz74oObMmVPs+nl5eTp69KjXBAAAyi+XMcY4tXN/f3/FxcXp448/9sx78MEHlZ6ero0bNxZZf9y4cUpNTS0yPycnR5UqVbqkWYEziR69xOkIRex+sofTEQCchyvl98nRo0cVEhJSor/fjo6oVKtWTddee63XvNjYWO3Zs6fY9ceMGaOcnBzPlJ2dXRYxAQCAQxy9mbZt27batm2b17zt27erTp06xa7vdrvldrvLIhoAALCAoyMqDz30kDZt2qSJEydq586dmjdvnmbMmKGhQ4c6GQsAAFjC0aLSqlUrvfvuu3rzzTfVuHFjPfHEE3r++efVv39/J2MBAABLOHrpR5J69uypnj17Oh0DAABYyPGP0AcAADgTigoAALAWRQUAAFiLogIAAKxFUQEAANaiqAAAAGtRVAAAgLUoKgAAwFoUFQAAYC2KCgAAsBZFBQAAWIuiAgAArEVRAQAA1qKoAAAAa1FUAACAtSgqAADAWhQVAABgLYoKAACwFkUFAABYi6ICAACsRVEBAADWoqgAAABrUVQAAIC1KCoAAMBaFBUAAGAtigoAALAWRQUAAFiLogIAAKxFUQEAANaiqAAAAGtRVAAAgLUoKgAAwFoUFQAAYC2KCgAAsBZFBQAAWIuiAgAArEVRAQAA1qKoAAAAa1FUAACAtSgqAADAWhQVAABgLYoKAACwFkUFAABYi6ICAACsRVEBAADWoqgAAABrUVQAAIC1KCoAAMBajhaVcePGyeVyeU1RUVFORgIAABbxdTpAo0aNtHLlSs9rHx8fB9MAAACbOF5UfH19GUUBAADFcvwelR07dqh69eqKiYlRv3799O23355x3by8PB09etRrAgAA5ZejIyo33HCD5syZo2uuuUYHDhzQ+PHj1aZNG3399dcKDw8vsn5aWppSU1MdSIqyED16idMRitj9ZA+nIwDAFc3REZXu3bvr9ttvV5MmTdSlSxctWfLbH6rXXnut2PXHjBmjnJwcz5SdnV2WcQEAQBlz/B6V36tQoYKaNGmiHTt2FLvc7XbL7XaXcSoAAOAUx+9R+b28vDxlZWWpWrVqTkcBAAAWcLSoPPzww1q7dq127dqlTz75RHfccYeOHj2qpKQkJ2MBAABLOHrpZ+/evUpMTNSPP/6oqlWr6sYbb9SmTZtUp04dJ2MBAABLOFpU5s+f7+TuAQCA5ay6RwUAAOD3KCoAAMBaFBUAAGAtigoAALAWRQUAAFiLogIAAKxFUQEAANaiqAAAAGtRVAAAgLUoKgAAwFoUFQAAYC2KCgAAsBZFBQAAWIuiAgAArEVRAQAA1qKoAAAAa1FUAACAtSgqAADAWhQVAABgLYoKAACwFkUFAABYi6ICAACsRVEBAADWoqgAAABrUVQAAIC1KCoAAMBaFBUAAGAtigoAALAWRQUAAFiLogIAAKxFUQEAANaiqAAAAGtRVAAAgLUoKgAAwFoUFQAAYC2KCgAAsBZFBQAAWIuiAgAArEVRAQAA1qKoAAAAa1FUAACAtSgqAADAWhQVAABgLYoKAACwFkUFAABYi6ICAACsRVEBAADWoqgAAABrWVNU0tLS5HK5NHz4cKejAAAAS1hRVNLT0zVjxgw1bdrU6SgAAMAijheV48ePq3///nr55ZcVGhrqdBwAAGARx4vK0KFD1aNHD3Xp0uWc6+bl5eno0aNeEwAAKL98ndz5/Pnz9fnnnys9Pb1E66elpSk1NfUSp7r8RY9e4nSEInY/2cPpCACAy5BjIyrZ2dlKTk7WG2+8oYCAgBK9Z8yYMcrJyfFM2dnZlzglAABwkmMjKps3b9bBgwfVsmVLz7yCggKtW7dOkydPVl5ennx8fLze43a75Xa7yzoqAABwiGNFpXPnzvrqq6+85v3lL39Rw4YNNWrUqCIlBQAAXHkcKyrBwcFq3Lix17wKFSooPDy8yHwAAHBlcvypHwAAgDNx9KmfP1qzZo3TEQAAgEUYUQEAANaiqAAAAGtRVAAAgLUoKgAAwFoUFQAAYC2KCgAAsBZFBQAAWIuiAgAArEVRAQAA1qKoAAAAa1FUAACAtSgqAADAWhQVAABgLYoKAACwFkUFAABYi6ICAACsRVEBAADWoqgAAABrUVQAAIC1KCoAAMBaFBUAAGAtigoAALAWRQUAAFiLogIAAKxFUQEAANaiqAAAAGudV1HJz8/XypUrNX36dB07dkyS9MMPP+j48eMXNRwAALiy+Zb2Dd999526deumPXv2KC8vT127dlVwcLCeeuopnTx5UtOmTbsUOQEAwBWo1CMqycnJiouL008//aTAwEDP/Ntuu00ffvjhRQ0HAACubKUeUdmwYYM++ugj+fv7e82vU6eOvv/++4sWDAAAoNQjKoWFhSooKCgyf+/evQoODr4ooQAAAKTzKCpdu3bV888/73ntcrl0/PhxpaSkKD4+/mJmAwAAV7hSX/r517/+pY4dO+raa6/VyZMnddddd2nHjh2qUqWK3nzzzUuREQAAXKFKXVSqV6+ujIwMvfnmm/r8889VWFioIUOGqH///l431wIAAFyoUhcVSQoMDNTgwYM1ePDgi50HAADAo9RFZc6cOWddPnDgwPMOAwAA8HulLirJycler0+dOqUTJ07I399fQUFBFBUAAHDRlPqpn59++slrOn78uLZt26Z27dpxMy0AALioLsqXEtavX19PPvlkkdEWAACAC3HRvj3Zx8dHP/zww8XaHAAAQOnvUVm8eLHXa2OM9u3bp8mTJ6tt27YXLRgAAECpi0rv3r29XrtcLlWtWlWdOnXSs88+e7FyAQAAlL6oFBYWXoocAAAARVy0e1QAAAAuthKNqIwYMaLEG3zuuefOOwwAAMDvlaiofPHFFyXamMvluqAwAAAAv1eiorJ69epLnQMAAKAIR+9RmTp1qpo2bapKlSqpUqVKat26tZYuXepkJAAAYJHz+vbk9PR0vf3229qzZ49+/fVXr2XvvPNOibdTs2ZNPfnkk6pXr54k6bXXXlNCQoK++OILNWrU6HyiAQCAcqTUIyrz589X27ZtlZmZqXfffVenTp1SZmamVq1apZCQkFJtq1evXoqPj9c111yja665RhMmTFDFihW1adOm0sYCAADlUKmLysSJE/Wvf/1L77//vvz9/fXCCy8oKytLffv2Ve3atc87SEFBgebPn6/c3Fy1bt36vLcDAADKj1IXlf/973/q0aOHJMntdis3N1cul0sPPfSQZsyYUeoAX331lSpWrCi326377rtP7777rq699tpi183Ly9PRo0e9JgAAUH6V+h6VsLAwHTt2TJJUo0YNbd26VU2aNNHPP/+sEydOlDpAgwYNlJGRoZ9//lkLFixQUlKS1q5dW2xZSUtLU2pqaqn3AaD8iB69xOkIRex+sofTEYByq8QjKhkZGZKkm266SStWrJAk9e3bV8nJyfrrX/+qxMREde7cudQB/P39Va9ePcXFxSktLU3NmjXTCy+8UOy6Y8aMUU5OjmfKzs4u9f4AAMDlo8QjKtddd51atGih3r17KzExUdJvxcHPz08bNmxQnz599M9//vOCAxljlJeXV+wyt9stt9t9wfsAAACXhxIXlY8++kgzZ87UM888o7S0NPXp00dDhgzRyJEjNXLkyPPa+dixY9W9e3fVqlVLx44d0/z587VmzRotW7bsvLYHAADKlxJf+mndurVefvll7d+/X1OnTtXevXvVpUsXXX311ZowYYL27t1b6p0fOHBAd999txo0aKDOnTvrk08+0bJly9S1a9dSbwsAAJQ/pX7qJzAwUElJSVqzZo22b9+uxMRETZ8+XTExMYqPjy/Vtl599VXt3r1beXl5OnjwoFauXElJAQAAHhf0EfpXX321Ro8erUceeUSVKlXS8uXLL1YuAACA8/sIfUlau3atZs6cqQULFsjHx0d9+/bVkCFDLmY2AABwhStVUcnOztbs2bM1e/Zs7dq1S23atNGLL76ovn37qkKFCpcqIwAAuEKVuKh07dpVq1evVtWqVTVw4EANHjxYDRo0uJTZAADAFa7ERSUwMFALFixQz5495ePjcykzAQAASCpFUVm8ePGlzAEAAFDEBT31AwAAcClRVAAAgLUoKgAAwFoUFQAAYC2KCgAAsBZFBQAAWIuiAgAArEVRAQAA1qKoAAAAa1FUAACAtSgqAADAWhQVAABgLYoKAACwFkUFAABYi6ICAACsRVEBAADWoqgAAABrUVQAAIC1KCoAAMBaFBUAAGAtigoAALAWRQUAAFiLogIAAKxFUQEAANaiqAAAAGtRVAAAgLUoKgAAwFoUFQAAYC2KCgAAsBZFBQAAWIuiAgAArEVRAQAA1qKoAAAAa1FUAACAtSgqAADAWhQVAABgLYoKAACwFkUFAABYi6ICAACsRVEBAADWoqgAAABrUVQAAIC1HC0qaWlpatWqlYKDgxUREaHevXtr27ZtTkYCAAAWcbSorF27VkOHDtWmTZu0YsUK5efn65ZbblFubq6TsQAAgCV8ndz5smXLvF7PmjVLERER2rx5s26++WaHUgEAAFs4WlT+KCcnR5IUFhZW7PK8vDzl5eV5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FJkfGBh41vcVFhYqNTVVffr0KbIsICCgRPuuUqWK6tWrp3r16mnBggWqV6+ebrzxRnXp0uWMT/+cqVgBsBP3qAA4b6tWrdJXX32l22+/vciypk2bKiMjQ0eOHCn2vdddd522bdvmKRq/n666qvS/mkJDQ/XAAw/o4YcfljFG1157rfLz871u3j18+LC2b9+u2NjYUm8fgDMoKgBKJC8vT/v379f333+vzz//XBMnTlRCQoJ69uypgQMHFlk/MTFRUVFR6t27tz766CN9++23WrBggTZu3ChJeuyxxzRnzhyNGzdOX3/9tbKysvTWW2/p0UcfPe+MQ4cO1bZt27RgwQLVr19fCQkJ+utf/6oNGzZoy5YtGjBggGrUqKGEhITz3geAskVRAVAiy5YtU7Vq1RQdHa1u3bpp9erV+ve//61FixbJx8enyPr+/v764IMPFBERofj4eDVp0kRPPvmkZ91bb71V77//vlasWKFWrVrpxhtv1HPPPac6deqcd8aqVavq7rvv1rhx41RYWKhZs2apZcuW6tmzp1q3bi1jjP773/96PRkEwG4uw8c4AgAASzGiAgAArEVRAWCduXPnqmLFisVOjRo1cjoegDLEpR8A1jl27JgOHDhQ7DI/P78Luo8FwOWFogIAAKzFpR8AAGAtigoAALAWRQUAAFiLogIAAKxFUQEAANaiqAAAAGtRVAAAgLUoKgAAwFr/D318jStLeTWrAAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Plot the sorted results\n", + "plt.bar(dice_roll_sorted['Dice_Roll'], dice_roll_sorted['Value'])\n", + "plt.xlabel('Dice_Roll')\n", + "plt.ylabel('Value')\n", + "plt.title('Dice Roll Results Sorted by Value')\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": 5, + "metadata": {}, + "outputs": [], + "source": [ + "value_counts = dice_roll_sorted['Value'].value_counts().sort_index()" + ] + }, + { + "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": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "3.0" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "def calculate_mean(data):\n", + " # Sum all the observations\n", + " total_sum = sum(data)\n", + " \n", + " # Count the number of observations\n", + " count = len(data)\n", + " \n", + " # Calculate the mean\n", + " mean = total_sum / count if count > 0 else 0\n", + "\n", + " return mean\n", + "\n", + "# Calculate the mean of the 'Value' column\n", + "mean_value = calculate_mean(dice_roll_sorted['Value'])\n", + "mean_value\n" + ] + }, + { + "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": 7, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\carmo\\AppData\\Local\\Temp\\ipykernel_19584\\1800913377.py:7: FutureWarning: iteritems is deprecated and will be removed in a future version. Use .items instead.\n", + " for value, frequency in freq_distribution.iteritems():\n" + ] + }, + { + "data": { + "text/plain": [ + "3.0" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "def calculate_mean_frequency(freq_distribution):\n", + " # Initialize total_sum and total_count\n", + " total_sum = 0\n", + " total_count = 0\n", + " \n", + " # Loop over the frequency distribution (index is value, value is frequency)\n", + " for value, frequency in freq_distribution.iteritems():\n", + " total_sum += value * frequency\n", + " total_count += frequency\n", + "\n", + " # Calculate the mean\n", + " mean = total_sum / total_count if total_count > 0 else 0\n", + "\n", + " return mean\n", + "\n", + "# Calculate the mean of the 'Value' column using the frequency distribution\n", + "mean_value_frequency = calculate_mean_frequency(value_counts)\n", + "mean_value_frequency\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": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "2.5" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "def calculate_median(data):\n", + " # Sort the data\n", + " sorted_data = sorted(data)\n", + " \n", + " # Count the number of observations\n", + " count = len(sorted_data)\n", + "\n", + " # Check if the count is even or odd\n", + " if count % 2 == 0:\n", + " # If even, the median is the average of the two middle numbers\n", + " median = (sorted_data[count // 2] + sorted_data[count // 2 - 1]) / 2\n", + " else:\n", + " # If odd, the median is the middle number\n", + " median = sorted_data[count // 2]\n", + "\n", + " return median\n", + "\n", + "# Calculate the median of the 'Value' column\n", + "median_value = calculate_median(dice_roll_sorted['Value'])\n", + "median_value\n" + ] + }, + { + "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": 13, + "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", + "
Unnamed: 0rollvalue
0001
1112
2226
3331
4446
\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" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "roll_100 = pd.read_csv(\"C:\\\\Users\\\\carmo\\\\Desktop\\\\IronHack\\\\Week 3\\\\Day 3\\\\Descriptive-Stats\\\\data\\\\roll_the_dice_hundred.csv\")\n", + "\n", + "roll_100.head()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "roll_100_sorted = roll_100.sort_values(by= 'value')\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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sLAwrVq1qtLjBAUFXdD5oOZiZgdW27dvnx555BEFBwdr2LBhVfbr3LmzvLy8lJmZWWWf9u3bq27dusrNzVXr1q0rXWrVqnXRNQ4YMEAdOnTQK6+84rwZOjk5WR988IEz3JRbvHixAgICzvmBbT/X9OnTFRISoscee0xlZWW69tprFRcXpy+++KLK867sl0VERISGDBmifv36aceOHc6nemJiYrRz506XJ5gOHjyoTZs2nbc2X19fSTrnX/wOh0MJCQl69tlnVbduXX322WdV9j19+nSVs2Tll1DKZ9OSk5N17NgxLV++3KXf4sWLndsvtf6AgAB17NhRn3/+uZo3b17pGJeHkI4dO2r79u364osvXI6RlZV13tc/25IlS1zW//a3v+nMmTMV/ih44IEHVKtWLQ0YMEA7duy46Buh77//fuXm5upPf/qTfvjhB91///3ObQ6HQ8YY57iUmzdvnkpLS8977At9L/Xo0UMHDx5UaWlppWN7oeENNRczO7DGtm3bnNfiCwoKtHHjRi1YsEBeXl5atmyZc/amMjExMZo4caKeeOIJnThxQv369VNwcLByc3N14MABTZkyRYGBgXrhhRc0ePBgHTp0SHfddZfCw8P1ww8/6IsvvtAPP/xwzrB0LtOmTVPbtm31xBNPaN68eZo8ebLeeecddezYUY899phCQ0O1ZMkSrVy5UtOnT1dwcPClDtN5hYSEaMKECRo3bpyysrI0cOBAvfzyy+rWrZu6dOmiIUOGqGHDhjp06JC++uorffbZZ3rjjTckSW3btlWPHj3UvHlzhYSE6KuvvtJrr72mdu3aKSAgQJJ077336uWXX9bAgQP1u9/9TgcPHtT06dNVp06d89bWrFkzSdLcuXMVFBQkPz8/xcbG6uOPP9acOXN055136uqrr5YxRm+99ZaOHDmiTp06VXm8wsJCxcTE6O6779btt9+u6OhoHTt2TOvXr9dzzz2n+Ph452zWoEGD9OKLL2rw4MHau3evbrjhBn300UdKT09XSkqKbr/99vPWHxQUpCZNmmjFihVKTk5WaGio6tWrp5iYGD333HO6+eabdcstt+j3v/+9YmJiVFRUpN27d+vvf/+7PvjgA0nSmDFjNH/+fHXv3t354YdLlixxzpxdqLfeekve3t7q1KmT82mshIQE9enTx6Vf3bp1NWjQIGVmZqpJkyZK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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Plot the sorted results\n", + "plt.bar(roll_100_sorted['value'], roll_100_sorted['roll'])\n", + "plt.xlabel('value')\n", + "plt.ylabel('roll')\n", + "plt.title('Dice Roll Results Sorted by Value')\n", + "plt.show()" + ] + }, + { + "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": 18, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "3.74" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "mean_value_100 = calculate_mean(roll_100_sorted['value'])\n", + "mean_value_100" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 3.- Now, calculate the frequency distribution.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1 12\n", + "2 17\n", + "3 14\n", + "4 22\n", + "5 12\n", + "6 23\n", + "Name: value, dtype: int64\n" + ] + } + ], + "source": [ + "value_counts_100 = roll_100_sorted['value'].value_counts().sort_index()\n", + "print(value_counts_100)" + ] + }, + { + "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": 21, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0oAAAIhCAYAAABwnkrAAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA5D0lEQVR4nO3dfZxXc94/8PeXptHUVLqZbpS0VEJuI+WuRISWWpdWqMguGy6kay83l4esttClbS9WZZdJa6O1625v3ISETba0sqxNbEqUEJVa09Sc3x8ezc+c6XZMfaeZ5/PxmMd1nfM95/t9fb9nzjYvn3M+30ySJEkAAABQardsBwAAAKhqFCUAAIAURQkAACBFUQIAAEhRlAAAAFIUJQAAgBRFCQAAIEVRAgAASFGUAAAAUhQlgIiYNGlSZDKZmDNnziYfP+OMM2KfffYps26fffaJwYMHb9frzJw5M0aMGBFffPFFxYLWQFOnTo0DDzww6tSpE5lMJl5//fVNbvfCCy9EJpMp/aldu3Y0bdo0jjnmmLjhhhti0aJF5fbZeNzff//9HfsmUr6ZM5PJRP369aNbt27x4IMPfqvnHDFiROnyxs/jhRde2Ow+V199dWQymfjnP/+52W1uuOGGyGQyMXfu3G3OUpFzA6CqUZQAKujRRx+NG2+8cbv2mTlzZtx8882K0jb65JNP4oILLoh99903nnrqqXjllVeiffv2W9xn1KhR8corr8T06dPj3nvvje7du8d9990XHTt2jN/85jdltj399NPjlVdeiRYtWuzIt7FJZ599drzyyisxc+bMmDBhQqxatSoGDBgQU6ZM2WkZhgwZEhER99133yYfLykpicmTJ8ehhx4ahx9++E7LBVAV1Mp2AIBd1WGHHZbtCNutuLg4MplM1Kq1a/zP/zvvvBPFxcVx/vnnxwknnLBN+7Rr1y6OPvro0uXvfve7cc0118RJJ50UgwcPjoMPPjg6deoUERFNmzaNpk2b7pDsW9OsWbPSnF27do1jjjkm9tlnn5g4cWIMGDBgp2Q46KCD4qijjopf//rXMWrUqHK/F88880wsWbIk/vu//3un5AGoSowoAVRQ+vKikpKSGDlyZHTo0CHq1KkTDRs2jIMPPjh+/vOfR0TEiBEj4r/+678iIqJt27all11tvDSqpKQkbr/99th///0jNzc3CgoKYuDAgbFkyZIyr5skSYwaNSratGkTe+yxR3Tu3DmmTZsW3bt3j+7du5dut/HSq1//+tdxzTXXxF577RW5ubnx7rvvxieffBJDhw6NAw44IOrVqxcFBQVx4oknxksvvVTmtd5///3IZDIxZsyYuO2222KfffaJOnXqRPfu3UtLzLXXXhstW7aMBg0aRN++fWP58uXb9Pk98cQT0bVr18jLy4v8/Pw4+eST45VXXil9fPDgwXHsscdGRET//v0jk8mUeX/bo1GjRjFx4sRYv359/OxnPytdv7lL75566qno2bNnNGjQIPLy8qJjx44xevToMtvMmTMnvvvd70ajRo1ijz32iMMOOyx++9vfVihfRESbNm2iadOm8fHHH5dZv3jx4jj//POjoKAgcnNzo2PHjnHHHXdESUlJhV/rm4YMGRLLli2LJ598stxjhYWFkZubG+edd1589dVXcc0118Shhx4aDRo0iEaNGkXXrl3j8ccf3+prbO5z3tzlgc8++2z07Nkz6tevH3l5eXHMMcfEc889V2abTz75JH74wx9G69atIzc3t/Qyy2effXa7PwOATdk1/pMiwE6yYcOGWL9+fbn1SZJsdd/bb789RowYEf/zP/8Txx9/fBQXF8c///nP0svsLr744lixYkXceeed8cgjj5Re7nXAAQdERMSPfvSjuOeee+Lyyy+PM844I95///248cYb44UXXoi5c+dGkyZNIuLre0ZGjx4dP/zhD6Nfv37xwQcfxMUXXxzFxcWbvCztuuuui65du8aECRNit912i4KCgvjkk08iIuKmm26K5s2bx5dffhmPPvpodO/ePZ577rlyheQXv/hFHHzwwfGLX/wivvjii7jmmmuiT58+0aVLl8jJyYn77rsvFi1aFMOHD4+LL744nnjiiS1+VlOmTInzzjsvevXqFQ8++GAUFRXF7bffXvr6xx57bNx4441x1FFHxWWXXRajRo2KHj16RP369bd6HDbnyCOPjBYtWsSLL764xe3uvffe+MEPfhAnnHBCTJgwIQoKCuKdd96JN998s3Sb6dOnx6mnnhpdunSJCRMmRIMGDeKhhx6K/v37x9q1ayt0f87KlStjxYoVZUbDPvnkk+jWrVusW7cubrnllthnn33ij3/8YwwfPjzee++9uPvuu7f7ddLOPffcuPrqq+O+++6LPn36lK7//PPP4/HHH4++ffvGnnvuWZpv+PDhsddee8W6devi2WefjX79+kVhYWEMHDjwW2eJiHjggQdi4MCBceaZZ8b9998fOTk5MXHixDjllFPi6aefjp49e0ZExAUXXBBz586Nn/70p9G+ffv44osvYu7cufHZZ59VSg6ASABICgsLk4jY4k+bNm3K7NOmTZtk0KBBpctnnHFGcuihh27xdcaMGZNERLJw4cIy699+++0kIpKhQ4eWWf/qq68mEZFcf/31SZIkyYoVK5Lc3Nykf//+ZbZ75ZVXkohITjjhhNJ106dPTyIiOf7447f6/tevX58UFxcnPXv2TPr27Vu6fuHChUlEJIccckiyYcOG0vXjxo1LIiL57ne/W+Z5rrrqqiQikpUrV272tTZs2JC0bNky6dSpU5nnXL16dVJQUJB069at3Ht4+OGHt/oetmXbLl26JHXq1Cld3njcNx6P1atXJ/Xr10+OPfbYpKSkZLPPs//++yeHHXZYUlxcXGb9GWeckbRo0aLM+9qUjce6uLg4WbduXfLOO+8k3/3ud5P8/Pxkzpw5pdtde+21SUQkr776apn9f/SjHyWZTCaZP39+mee86aabyn0e06dP32KWJEmSQYMGJTk5OcnHH39cuu7OO+9MIiKZNm3aJvfZ+DszZMiQ5LDDDivzWPrcSH/Om8u4Zs2apFGjRkmfPn3KbLdhw4bkkEMOSY466qjSdfXq1Uuuuuqqrb43gIpy6R3AN0yePDlmz55d7mfjJWBbctRRR8W8efNi6NCh8fTTT8eqVau2+XWnT58eEVFuJOKoo46Kjh07ll52NGvWrCgqKopzzjmnzHZHH310uVn5Nvre9763yfUTJkyIww8/PPbYY4+oVatW5OTkxHPPPRdvv/12uW1PO+202G23//9PRseOHSPi68kQvmnj+sWLF2/mnUbMnz8/Pvroo7jgggvKPGe9evXie9/7XsyaNSvWrl272f2/jWQrI4MzZ86MVatWxdChQyOTyWxym3fffTf++c9/xnnnnRcREevXry/9Oe2002Lp0qUxf/78rWa5++67IycnJ2rXrh3t27ePJ598Mh588ME44ogjSrd5/vnn44ADDoijjjqqzL6DBw+OJEni+eef3+rrbIshQ4ZEcXFx/PrXvy5dV1hYGG3atCkdwYmIePjhh+OYY46JevXqlf7O3HvvvZv8namImTNnxooVK2LQoEFlPteSkpI49dRTY/bs2bFmzZqI+PrcmDRpUowcOTJmzZoVxcXFlZIBYCNFCeAbOnbsGJ07dy7306BBg63ue91118X//u//xqxZs6J3797RuHHj6Nmz52anHP+mjZcLbWr2tZYtW5Y+vvH/NmvWrNx2m1q3ueccO3Zs/OhHP4ouXbrE73//+5g1a1bMnj07Tj311Pj3v/9dbvtGjRqVWa5du/YW13/11VebzPLN97C591pSUhKff/75Zvf/NhYvXhwtW7bc7OMbL0ls1arVZrfZeA/R8OHDIycnp8zP0KFDIyLi008/3WqWc845J2bPnh0zZ86MiRMnRn5+fnz/+9+PBQsWlG7z2WefbfZz2vh4ZTjuuOOiffv2UVhYGBERb7zxRsydOzcuvPDC0sL4yCOPxDnnnBN77bVXPPDAA/HKK6/E7Nmz46KLLtri8d4eGz/bs88+u9xne9ttt0WSJLFixYqI+Hra+EGDBsWvfvWr6Nq1azRq1CgGDhwYy5Ytq5QsAO5RAqgktWrVimHDhsWwYcPiiy++iGeffTauv/76OOWUU+KDDz6IvLy8ze7buHHjiIhYunRpuT/SP/roo9L7kzZul77hPyJi2bJlmxxV2tTIyAMPPBDdu3eP8ePHl1m/evXqLb/JSvDN95r20UcfxW677RZ77rlnpb/uX//611i2bFnplNibsnEGvPQEGt+08Vhcd9110a9fv01u06FDh63madq0aXTu3Dkivp71rmPHjnHCCSfE1VdfHX/84x8j4uvPanOf0zezVIaLLroorr322vjrX/8aU6ZMid12263MCOcDDzwQbdu2jalTp5b5nSoqKtrqc++xxx6b3DZdKDe+nzvvvLPMvVrftPE/CDRp0iTGjRsX48aNi8WLF8cTTzwR1157bSxfvjyeeuqprb9hgK0wogSwAzRs2DDOPvvsuOyyy2LFihWls33l5uZGRJQbtTnxxBMj4us/Rr9p9uzZ8fbbb5de/tSlS5fIzc2NqVOnltlu1qxZm/xC1c3JZDKlWTZ64403ysw6t6N06NAh9tprr5gyZUqZS+HWrFkTv//970tnwqtMK1asiEsvvTRycnLi6quv3ux23bp1iwYNGsSECRM2e5lehw4dol27djFv3rxNjj527tw58vPztzvjcccdFwMHDow//elPpcehZ8+e8Y9//KPcl71Onjw5MplM9OjRY7tfZ3MGDRoUtWrViokTJ8ZvfvOb6NmzZ7Rp06b08Y1f4vvNkrRs2bJtmvVuY4F/4403yqxPT/pxzDHHRMOGDeMf//jHZj/bjaOW37T33nvH5ZdfHieffPJ2fTEuwJYYUQKoJH369ImDDjooOnfuHE2bNo1FixbFuHHjok2bNtGuXbuIiNLv7/n5z38egwYNipycnOjQoUN06NAhfvjDH8add94Zu+22W/Tu3bt01rvWrVuX/nHfqFGjGDZsWIwePTr23HPP6Nu3byxZsiRuvvnmaNGiRZl7frbkjDPOiFtuuSVuuummOOGEE2L+/Pnxk5/8JNq2bbvJWf8q02677Ra33357nHfeeXHGGWfEJZdcEkVFRTFmzJj44osv4tZbb/1Wz79gwYKYNWtWlJSUxGeffRavvvpq3HvvvbFq1aqYPHlyHHjggZvdt169enHHHXfExRdfHCeddFL84Ac/iGbNmsW7774b8+bNi7vuuisiIiZOnBi9e/eOU045JQYPHhx77bVXrFixIt5+++2YO3duPPzwwxXKfsstt8TUqVPjxhtvjGeffTauvvrqmDx5cpx++unxk5/8JNq0aRN/+tOf4u67744f/ehHW/3y3e3RvHnzOO2006KwsDCSJCk38nbGGWfEI488EkOHDo2zzz47Pvjgg7jllluiRYsWZS4X3JQjjzwyOnToEMOHD4/169fHnnvuGY8++mi8/PLLZbarV69e3HnnnTFo0KBYsWJFnH322aWzNM6bNy8++eSTGD9+fKxcuTJ69OgRAwYMiP333z/y8/Nj9uzZ8dRTT212lA9gu2VzJgmAqmLjrFyzZ8/e5OOnn376Vme9u+OOO5Ju3bolTZo0SWrXrp3svffeyZAhQ5L333+/zH7XXXdd0rJly2S33XYrM+PXhg0bkttuuy1p3759kpOTkzRp0iQ5//zzkw8++KDM/iUlJcnIkSOTVq1aJbVr104OPvjg5I9//GNyyCGHlJmxbkuzwBUVFSXDhw9P9tprr2SPPfZIDj/88OSxxx5LBg0aVOZ9bpz1bsyYMWX239xzb+1z/KbHHnss6dKlS7LHHnskdevWTXr27Jn85S9/2abX2ZSN2278qVWrVtK4ceOka9euyfXXX1/uOHwzb3o2tj//+c/JCSeckNStWzfJy8tLDjjggOS2224rs828efOSc845JykoKEhycnKS5s2bJyeeeGIyYcKErWaNiOSyyy7b5GP/9V//lUREMmPGjCRJkmTRokXJgAEDksaNGyc5OTlJhw4dkjFjxpSbWS++xax3Gz3++ONJRCSNGjVKvvrqq3KP33rrrck+++yT5ObmJh07dkx++ctfJjfddFOS/nMifW4kSZK88847Sa9evZL69esnTZs2Ta644orkT3/60yYzzpgxIzn99NOTRo0aJTk5Oclee+2VnH766aW/B1999VVy6aWXJgcffHBSv379pE6dOkmHDh2Sm266KVmzZs02v1+ALckkyTZ8OQgAVdrChQtj//33j5tuuimuv/76bMcBgF2eogSwi5k3b148+OCD0a1bt6hfv37Mnz8/br/99li1alW8+eabm539DgDYdu5RAtjF1K1bN+bMmRP33ntvfPHFF9GgQYPo3r17/PSnP1WSAKCSGFECAABIMT04AABAiqIEAACQoigBAACkVPvJHEpKSuKjjz6K/Pz8Mt8mDgAA1CxJksTq1aujZcuWW/2S9mpflD766KNo3bp1tmMAAABVxAcffBCtWrXa4jbVvijl5+dHxNcfRv369bOcBgAAyJZVq1ZF69atSzvCllT7orTxcrv69esrSgAAwDbdkmMyBwAAgBRFCQAAIEVRAgAASFGUAAAAUhQlAACAFEUJAAAgRVECAABIUZQAAABSFCUAAIAURQkAACBFUQIAAEhRlAAAAFIUJQAAgBRFCQAAIEVRAgAASFGUAAAAUhQlAACAFEUJAAAgRVECAABIqZXtAAAAsCP1ebBPtiPUeH849w/ZjrDdjCgBAACkKEoAAAApihIAAECKogQAAJCiKAEAAKQoSgAAACmKEgAAQIqiBAAAkKIoAQAApChKAAAAKYoSAABAiqIEAACQoigBAACkKEoAAAApihIAAECKogQAAJCiKAEAAKQoSgAAACm1sh0AAKqqPg/2yXaEGu8P5/4h2xGAGsqIEgAAQIqiBAAAkKIoAQAApChKAAAAKYoSAABAiqIEAACQoigBAACkKEoAAAApihIAAECKogQAAJCiKAEAAKQoSgAAACmKEgAAQIqiBAAAkKIoAQAApChKAAAAKYoSAABAiqIEAACQoigBAACkKEoAAAApihIAAECKogQAAJCiKAEAAKQoSgAAACmKEgAAQIqiBAAAkKIoAQAApChKAAAAKYoSAABAiqIEAACQoigBAACkKEoAAAApihIAAEBKVovS6NGj48gjj4z8/PwoKCiIs846K+bPn19mmyRJYsSIEdGyZcuoU6dOdO/ePd56660sJQYAAGqCrBalGTNmxGWXXRazZs2KadOmxfr166NXr16xZs2a0m1uv/32GDt2bNx1110xe/bsaN68eZx88smxevXqLCYHAACqs1rZfPGnnnqqzHJhYWEUFBTEa6+9Fscff3wkSRLjxo2LG264Ifr16xcREffff380a9YspkyZEpdcckk2YgMAANVcVotS2sqVKyMiolGjRhERsXDhwli2bFn06tWrdJvc3Nw44YQTYubMmZssSkVFRVFUVFS6vGrVqoiIKC4ujuLi4h0ZH4BqJidysh2hxvNvN5XBuZx9VeVc3p4cVaYoJUkSw4YNi2OPPTYOOuigiIhYtmxZREQ0a9aszLbNmjWLRYsWbfJ5Ro8eHTfffHO59c8880zk5eVVcmoAqrNBeYOyHaHG+/Of/5ztCFQDzuXsqyrn8tq1a7d52ypTlC6//PJ444034uWXXy73WCaTKbOcJEm5dRtdd911MWzYsNLlVatWRevWraNXr15Rv379yg0NQLXW/3f9sx2hxpt69tRsR6AacC5nX1U5lzdebbYtqkRRuuKKK+KJJ56IF198MVq1alW6vnnz5hHx9chSixYtStcvX7683CjTRrm5uZGbm1tufU5OTuTkGHYFYNsVR9W4VKQm8283lcG5nH1V5VzenhxZnfUuSZK4/PLL45FHHonnn38+2rZtW+bxtm3bRvPmzWPatGml69atWxczZsyIbt267ey4AABADZHVEaXLLrsspkyZEo8//njk5+eX3pPUoEGDqFOnTmQymbjqqqti1KhR0a5du2jXrl2MGjUq8vLyYsCAAdmMDgAAVGNZLUrjx4+PiIju3buXWV9YWBiDBw+OiIgf//jH8e9//zuGDh0an3/+eXTp0iWeeeaZyM/P38lpAQCAmiKrRSlJkq1uk8lkYsSIETFixIgdHwgAACCyfI8SAABAVaQoAQAApChKAAAAKYoSAABAiqIEAACQoigBAACkKEoAAAApihIAAECKogQAAJCiKAEAAKQoSgAAACmKEgAAQIqiBAAAkKIoAQAApChKAAAAKYoSAABAiqIEAACQoigBAACkKEoAAAApihIAAECKogQAAJCiKAEAAKQoSgAAACmKEgAAQIqiBAAAkKIoAQAApChKAAAAKYoSAABAiqIEAACQoigBAACkKEoAAAApihIAAECKogQAAJCiKAEAAKQoSgAAACmKEgAAQIqiBAAAkKIoAQAApChKAAAAKYoSAABAiqIEAACQoigBAACkKEoAAAApihIAAECKogQAAJCiKAEAAKQoSgAAACmKEgAAQIqiBAAAkKIoAQAApChKAAAAKbWyHQCqoz4P9sl2hBrvD+f+IdsRAIBdmBElAACAFEUJAAAgRVECAABIUZQAAABSFCUAAIAURQkAACBFUQIAAEhRlAAAAFIUJQAAgBRFCQAAIEVRAgAASFGUAAAAUhQlAACAFEUJAAAgRVECAABIUZQAAABSFCUAAIAURQkAACBFUQIAAEhRlAAAAFIUJQAAgBRFCQAAIEVRAgAASFGUAAAAUhQlAACAFEUJAAAgRVECAABIUZQAAABSFCUAAIAURQkAACBFUQIAAEhRlAAAAFIUJQAAgJSsFqUXX3wx+vTpEy1btoxMJhOPPfZYmccHDx4cmUymzM/RRx+dnbAAAECNkdWitGbNmjjkkEPirrvu2uw2p556aixdurT0589//vNOTAgAANREtbL54r17947evXtvcZvc3Nxo3rz5TkoEAACQ5aK0LV544YUoKCiIhg0bxgknnBA//elPo6CgYLPbFxUVRVFRUenyqlWrIiKiuLg4iouLd3heiIjIiZxsR6jxnO9UBudy9jmXqQzO5eyrKufy9uTIJEmS7MAs2yyTycSjjz4aZ511Vum6qVOnRr169aJNmzaxcOHCuPHGG2P9+vXx2muvRW5u7iafZ8SIEXHzzTeXWz9lypTIy8vbUfEBAIAqbu3atTFgwIBYuXJl1K9ff4vbVumilLZ06dJo06ZNPPTQQ9GvX79NbrOpEaXWrVvHp59+utUPAypL/9/1z3aEGm/q2VOzHYFqwLmcfc5lKoNzOfuqyrm8atWqaNKkyTYVpSp/6d03tWjRItq0aRMLFizY7Da5ubmbHG3KycmJnBzDruwcxVE1hpdrMuc7lcG5nH3OZSqDczn7qsq5vD05dqnvUfrss8/igw8+iBYtWmQ7CgAAUI1ldUTpyy+/jHfffbd0eeHChfH6669Ho0aNolGjRjFixIj43ve+Fy1atIj3338/rr/++mjSpEn07ds3i6kBAIDqLqtFac6cOdGjR4/S5WHDhkVExKBBg2L8+PHx97//PSZPnhxffPFFtGjRInr06BFTp06N/Pz8bEUGAABqgKwWpe7du8eW5pJ4+umnd2IaAACAr+1S9ygBAADsDIoSAABAiqIEAACQoigBAACkKEoAAAApihIAAECKogQAAJCiKAEAAKQoSgAAACmKEgAAQIqiBAAAkKIoAQAApNTKdgCAXVGfB/tkO0KN94dz/5DtCABUY0aUAAAAUhQlAACAFEUJAAAgpUJFaeHChZWdAwAAoMqoUFHab7/9okePHvHAAw/EV199VdmZAAAAsqpCRWnevHlx2GGHxTXXXBPNmzePSy65JP76179WdjYAAICsqFBROuigg2Ls2LHx4YcfRmFhYSxbtiyOPfbYOPDAA2Ps2LHxySefVHZOAACAneZbTeZQq1at6Nu3b/z2t7+N2267Ld57770YPnx4tGrVKgYOHBhLly6trJwAAAA7zbcqSnPmzImhQ4dGixYtYuzYsTF8+PB477334vnnn48PP/wwzjzzzMrKCQAAsNPUqshOY8eOjcLCwpg/f36cdtppMXny5DjttNNit92+7l1t27aNiRMnxv7771+pYQEAAHaGChWl8ePHx0UXXRQXXnhhNG/efJPb7L333nHvvfd+q3AAAADZUKGitGDBgq1uU7t27Rg0aFBFnh4AACCrKnSPUmFhYTz88MPl1j/88MNx//33f+tQAAAA2VShonTrrbdGkyZNyq0vKCiIUaNGfetQAAAA2VShorRo0aJo27ZtufVt2rSJxYsXf+tQAAAA2VSholRQUBBvvPFGufXz5s2Lxo0bf+tQAAAA2VShovT9738//vM//zOmT58eGzZsiA0bNsTzzz8fV155ZXz/+9+v7IwAAAA7VYVmvRs5cmQsWrQoevbsGbVqff0UJSUlMXDgQPcoAQAAu7wKFaXatWvH1KlT45Zbbol58+ZFnTp1olOnTtGmTZvKzgcAALDTVagobdS+ffto3759ZWUBAACoEipUlDZs2BCTJk2K5557LpYvXx4lJSVlHn/++ecrJRwAAEA2VKgoXXnllTFp0qQ4/fTT46CDDopMJlPZuQAAALKmQkXpoYceit/+9rdx2mmnVXYeAACArKvQ9OC1a9eO/fbbr7KzAAAAVAkVKkrXXHNN/PznP48kSSo7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LVm2bFlERLkvs23WrFksWrRos/tdd911MWzYsNLlVatWRevWraNXr15b/TB2hv6/65/tCDXe1LOn7vDXcJyzb0cfZ8c4+5zLNYNzufpzLtcMO+M4b4uNV5ttiypblDZKTz+eJMkWpyTPzc0tnZXvm3JyciInJ/vDrsVRNYYda7Kd8XvgOGffjj7OjnH2OZdrBudy9edcrhmqwt/hEduX41t94eyO1Lx584j4/yNLGy1fvrzcKBMAAEBlqrJFqW3bttG8efOYNm1a6bp169bFjBkzolu3bllMBgAAVHdZvfTuyy+/jHfffbd0eeHChfH6669Ho0aNYu+9946rrroqRo0aFe3atYt27drFqFGjIi8vLwYMGJDF1AAAQHWX1aI0Z86c6NGjR+nyxkkYBg0aFJMmTYof//jH8e9//zuGDh0an3/+eXTp0iWeeeYZ36EEAADsUFktSt27d48tzU6eyWRixIgRMWLEiJ0XCgAAqPGq7D1KAAAA2aIoAQAApChKAAAAKYoSAABAiqIEAACQoigBAACkKEoAAAApihIAAECKogQAAJCiKAEAAKQoSgAAACmKEgAAQIqiBAAAkKIoAQAApChKAAAAKYoSAABAiqIEAACQoigBAACkKEoAAAApihIAAECKogQAAJCiKAEAAKQoSgAAACmKEgAAQIqiBAAAkKIoAQAApChKAAAAKYoSAABAiqIEAACQoigBAACkKEoAAAApihIAAECKogQAAJCiKAEAAKQoSgAAACmKEgAAQIqiBAAAkKIoAQAApChKAAAAKYoSAABAiqIEAACQoigBAACkKEoAAAApihIAAECKogQAAJCiKAEAAKQoSgAAACmKEgAAQIqiBAAAkKIoAQAApChKAAAAKYoSAABAiqIEAACQoigBAACkKEoAAAApihIAAECKogQAAJCiKAEAAKQoSgAAACmKEgAAQIqiBAAAkKIoAQAApChKAAAAKYoSAABAiqIEAACQoigBAACkKEoAAAApihIAAECKogQAAJCiKAEAAKQoSgAAACmKEgAAQIqiBAAAkKIoAQAApChKAAAAKYoSAABAiqIEAACQoigBAACkKEoAAAApihIAAECKogQAAJCiKAEAAKQoSgAAACmKEgAAQEqVLkojRoyITCZT5qd58+bZjgUAAFRztbIdYGsOPPDAePbZZ0uXd9999yymAQAAaoIqX5Rq1aplFAkAANipqnxRWrBgQbRs2TJyc3OjS5cuMWrUqPjOd76z2e2LioqiqKiodHnVqlUREVFcXBzFxcU7PO/W5EROtiPUeDvj98Bxzr4dfZwd4+xzLtcMzuXqz7lcM1SFv8Mjti9HJkmSZAdm+VaefPLJWLt2bbRv3z4+/vjjGDlyZPzzn/+Mt956Kxo3brzJfUaMGBE333xzufVTpkyJvLy8HR0ZAACootauXRsDBgyIlStXRv369be4bZUuSmlr1qyJfffdN3784x/HsGHDNrnNpkaUWrduHZ9++ulWP4ydof/v+mc7Qo039eypO/w1HOfs29HH2THOPudyzeBcrv6cyzXDzjjO22LVqlXRpEmTbSpKVf7Su2+qW7dudOrUKRYsWLDZbXJzcyM3N7fc+pycnMjJyf6wa3FUjWHHmmxn/B44ztm3o4+zY5x9zuWawblc/TmXa4aq8Hd4xPblqNLTg6cVFRXF22+/HS1atMh2FAAAoBqr0kVp+PDhMWPGjFi4cGG8+uqrcfbZZ8eqVati0KBB2Y4GAABUY1X60rslS5bEueeeG59++mk0bdo0jj766Jg1a1a0adMm29EAAIBqrEoXpYceeijbEQAAgBqoSl96BwAAkA2KEgAAQIqiBAAAkKIoAQAApChKAAAAKYoSAABAiqIEAACQoigBAACkKEoAAAApihIAAECKogQAAJCiKAEAAKQoSgAAACmKEgAAQIqiBAAAkKIoAQAApChKAAAAKYoSAABAiqIEAACQoigBAACkKEoAAAApihIAAECKogQAAJCiKAEAAKQoSgAAACmKEgAAQIqiBAAAkKIoAQAApChKAAAAKYoSAABAiqIEAACQoigBAACkKEoAAAApihIAAECKogQAAJCiKAEAAKQoSgAAACmKEgAAQIqiBAAAkKIoAQAApChKAAAAKYoSAABAiqIEAACQoigBAACkKEoAAAApihIAAECKogQAAJCiKAEAAKQoSgAAACmKEgAAQIqiBAAAkKIoAQAApChKAAAAKYoSAABAiqIEAACQoigBAACkKEoAAAApihIAAECKogQAAJCiKAEAAKQoSgAAACmKEgAAQIqiBAAAkKIoAQAApChKAAAAKYoSAABAiqIEAACQoigBAACkKEoAAAApihIAAECKogQAAJCiKAEAAKQoSgAAACmKEgAAQIqiBAAAkKIoAQAApChKAAAAKYoSAABAiqIEAACQoigBAACkKEoAAAApihIAAECKogQAAJCiKAEAAKQoSgAAACm7RFG6++67o23btrHHHnvEEUccES+99FK2IwEAANVYlS9KU6dOjauuuipuuOGG+Nvf/hbHHXdc9O7dOxYvXpztaAAAQDVV5YvS2LFjY8iQIXHxxRdHx44dY9y4cdG6desYP358tqMBAADVVK1sB9iSdevWxWuvvRbXXnttmfW9evWKmTNnbnKfoqKiKCoqKl1euXJlRESsWLEiiouLd1zYbbU22wH47LPPdvyLOM5Zt8OPs2Ocdc7lmsG5XP05l2uGnXKct8Hq1asjIiJJkq1uW6WL0qeffhobNmyIZs2alVnfrFmzWLZs2Sb3GT16dNx8883l1rdt23aHZGTX0+TiJtmOwE7gOFd/jnHN4DhXf45xzVDVjvPq1aujQYMGW9ymSheljTKZTJnlJEnKrdvouuuui2HDhpUul5SUxIoVK6Jx48ab3Ydtt2rVqmjdunV88MEHUb9+/WzHYQdwjGsGx7n6c4xrBse5+nOMK1eSJLF69epo2bLlVret0kWpSZMmsfvuu5cbPVq+fHm5UaaNcnNzIzc3t8y6hg0b7qiINVb9+vWdrNWcY1wzOM7Vn2NcMzjO1Z9jXHm2NpK0UZWezKF27dpxxBFHxLRp08qsnzZtWnTr1i1LqQAAgOquSo8oRUQMGzYsLrjggujcuXN07do17rnnnli8eHFceuml2Y4GAABUU1W+KPXv3z8+++yz+MlPfhJLly6Ngw46KP785z9HmzZtsh2tRsrNzY2bbrqp3OWNVB+Occ3gOFd/jnHN4DhXf45x9mSSbZkbDwAAoAap0vcoAQAAZIOiBAAAkKIoAQAApChKAAAAKYoS2+TFF1+MPn36RMuWLSOTycRjjz2W7UhUstGjR8eRRx4Z+fn5UVBQEGeddVbMnz8/27GoROPHj4+DDz649EsLu3btGk8++WS2Y7GDjR49OjKZTFx11VXZjkIlGTFiRGQymTI/zZs3z3YsdoAPP/wwzj///GjcuHHk5eXFoYceGq+99lq2Y9UYihLbZM2aNXHIIYfEXXfdle0o7CAzZsyIyy67LGbNmhXTpk2L9evXR69evWLNmjXZjkYladWqVdx6660xZ86cmDNnTpx44olx5plnxltvvZXtaOwgs2fPjnvuuScOPvjgbEehkh144IGxdOnS0p+///3v2Y5EJfv888/jmGOOiZycnHjyySfjH//4R9xxxx3RsGHDbEerMar89yhRNfTu3Tt69+6d7RjsQE899VSZ5cLCwigoKIjXXnstjj/++CylojL16dOnzPJPf/rTGD9+fMyaNSsOPPDALKViR/nyyy/jvPPOi1/+8pcxcuTIbMehktWqVcsoUjV32223RevWraOwsLB03T777JO9QDWQESVgk1auXBkREY0aNcpyEnaEDRs2xEMPPRRr1qyJrl27ZjsOO8Bll10Wp59+epx00knZjsIOsGDBgmjZsmW0bds2vv/978e//vWvbEeikj3xxBPRuXPn+I//+I8oKCiIww47LH75y19mO1aNoigB5SRJEsOGDYtjjz02DjrooGzHoRL9/e9/j3r16kVubm5ceuml8eijj8YBBxyQ7VhUsoceeijmzp0bo0ePznYUdoAuXbrE5MmT4+mnn45f/vKXsWzZsujWrVt89tln2Y5GJfrXv/4V48ePj3bt2sXTTz8dl156afznf/5nTJ48OdvRagyX3gHlXH755fHGG2/Eyy+/nO0oVLIOHTrE66+/Hl988UX8/ve/j0GDBsWMGTOUpWrkgw8+iCuvvDKeeeaZ2GOPPbIdhx3gm5fCd+rUKbp27Rr77rtv3H///TFs2LAsJqMylZSUROfOnWPUqFEREXHYYYfFW2+9FePHj4+BAwdmOV3NYEQJKOOKK66IJ554IqZPnx6tWrXKdhwqWe3atWO//faLzp07x+jRo+OQQw6Jn//859mORSV67bXXYvny5XHEEUdErVq1olatWjFjxoz4v//7v6hVq1Zs2LAh2xGpZHXr1o1OnTrFggULsh2FStSiRYty/xGrY8eOsXjx4iwlqnmMKAER8fXldldccUU8+uij8cILL0Tbtm2zHYmdIEmSKCoqynYMKlHPnj3LzYB24YUXxv777x///d//HbvvvnuWkrGjFBUVxdtvvx3HHXdctqNQiY455phyX9PxzjvvRJs2bbKUqOZRlNgmX375Zbz77rulywsXLozXX389GjVqFHvvvXcWk1FZLrvsspgyZUo8/vjjkZ+fH8uWLYuIiAYNGkSdOnWynI7KcP3110fv3r2jdevWsXr16njooYfihRdeKDfjIbu2/Pz8cvcW1q1bNxo3buyew2pi+PDh0adPn9h7771j+fLlMXLkyFi1alUMGjQo29GoRFdffXV069YtRo0aFeecc0789a9/jXvuuSfuueeebEerMRQltsmcOXOiR48epcsbr4EeNGhQTJo0KUupqEzjx4+PiIju3buXWV9YWBiDBw/e+YGodB9//HFccMEFsXTp0mjQoEEcfPDB8dRTT8XJJ5+c7WjAdliyZEmce+658emnn0bTpk3j6KOPjlmzZhlpqGaOPPLIePTRR+O6666Ln/zkJ9G2bdsYN25cnHfeedmOVmNkkiRJsh0CAACgKjGZAwAAQIqiBAAAkKIoAQAApChKAAAAKYoSAABAiqIEAACQoigBAACkKEoAAAApihIA1V737t3jqquuynYMAHYhihIAVVqfPn3ipJNO2uRjr7zySmQymZg7d+5OTgVAdacoAVClDRkyJJ5//vlYtGhRucfuu+++OPTQQ+Pwww/PQjIAqjNFCYAq7YwzzoiCgoKYNGlSmfVr166NqVOnxllnnRXnnntutGrVKvLy8qJTp07x4IMPbvE5M5lMPPbYY2XWNWzYsMxrfPjhh9G/f//Yc889o3HjxnHmmWfG+++/XzlvCoAqT1ECoEqrVatWDBw4MCZNmhRJkpSuf/jhh2PdunVx8cUXxxFHHBF//OMf480334wf/vCHccEFF8Srr75a4ddcu3Zt9OjRI+rVqxcvvvhivPzyy1GvXr049dRTY926dZXxtgCo4hQlAKq8iy66KN5///144YUXStfdd9990a9fv9hrr71i+PDhceihh8Z3vvOduOKKK+KUU06Jhx9+uMKv99BDD8Vuu+0Wv/rVr6JTp07RsWPHKCwsjMWLF5fJAED1VSvbAQBga/bff//o1q1b3HfffdGjR49477334qWXXopnnnkmNmzYELfeemtMnTo1PvzwwygqKoqioqKoW7duhV/vtddei3fffTfy8/PLrP/qq6/ivffe+7ZvB4BdgKIEwC5hyJAhcfnll8cvfvGLKCwsjDZt2kTPnj1jzJgx8bOf/SzGjRsXnTp1irp168ZVV121xUvkMplMmcv4IiKKi4tL//+SkpI44ogj4je/+U25fZs2bVp5bwqAKktRAmCXcM4558SVV14ZU6ZMifvvvz9+8IMfRCaTiZdeeinOPPPMOP/88yPi65KzYMGC6Nix42afq2nTprF06dLS5QULFsTatWtLlw8//PCYOnVqFBQURP369XfcmwKgynKPEgC7hHr16kX//v3j+uuvj48++igGDx4cERH77bdfTJs2LWbOnBlvv/12XHLJJbFs2bItPteJJ54Yd911V8ydOzfmzJkTl156aeTk5JQ+ft5550WTJk3izDPPjJdeeikWLlwYM2bMiCuvvDKWLFmyI98mAFWEogTALmPIkCHx+eefx0knnRR77713RETceOONcfjhh8cpp5wS3bt3j+bNm8dZZ521xee54447onXr1nH88cfHgAEDYvjw4ZGXl1f6eF5eXrz44oux9957R79+/aJjx45x0UUXxb///W8jTAA1RCZJX6QNAABQwxlRAgAASFGUAAAAUhQlAACAFEUJAAAgRVECAABIUZQAAABSFCUAAIAURQkAACBFUQIAAEhRlAAAAFIUJQAAgJT/B5GW3lXYfLaaAAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(figsize=(10, 6))\n", + "plt.bar(value_counts_100.index, value_counts_100.values, color='green', alpha=0.7)\n", + "plt.xlabel('Value')\n", + "plt.ylabel('Frequency')\n", + "plt.title('Histogram of Dice Roll Values')\n", + "plt.grid(axis='y')\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "\"\"\"\n", + "The value '6' appears to occur most frequently, while the values '3' and '5' occur least frequently. This distribution is expected, as the results of rolling a die are random.\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": 22, + "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", + "
Unnamed: 0rollvalue
0005
1116
2221
3336
4445
\n", + "
" + ], + "text/plain": [ + " Unnamed: 0 roll value\n", + "0 0 0 5\n", + "1 1 1 6\n", + "2 2 2 1\n", + "3 3 3 6\n", + "4 4 4 5" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "roll_1000 = pd.read_csv(\"C:\\\\Users\\\\carmo\\\\Desktop\\\\IronHack\\\\Week 3\\\\Day 3\\\\Descriptive-Stats\\\\data\\\\roll_the_dice_thousand.csv\")\n", + "\n", + "roll_1000.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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liypGTNmyGq1Ol2Vympq33/+8x9FRUWpbNmyKlGihKpUqaKhQ4c69cnJ+WCGn5+fqlevrt9//92p/fLlyxo4cKDuv/9+eXl56YEHHtA777yj5OTkXO/rdgMGDNCtW7e0YMGCDOtiY2MlSS+88IKkv17jTZo0UUBAgPz8/NSgQQPNmDHjrtMRs3qes/odtGfPHnXs2FEBAQEqUaKE6tevr8WLFzv1SUpKUnR0tCpXrqwSJUooICBAjRo10ldffXXXY546daqioqJUunRpp/b77svZW6bly5fLMAz179/fqb1///66ceOG01TJZcuW6cknn1R4eLijzc/PT127dtXKlSuVkpIiSdq1a5fi4+MzbPOZZ55RqVKltGzZshzVdqdGjRpJUobXVU7O85z64Ycf9PTTTzvOhdDQUHXo0EFnzpxx9PHy8lKPHj30xRdf5Hr6KuAKBCnADaWmpiolJcXp53YjRozQqVOnNG3aNK1cuVJBQUGaN2+e2rRpIz8/P82ePVuLFy9WQECAnnrqKacwtXHjRnXq1Em+vr5auHChJkyYoMWLFzveFOXGTz/9pMaNG+vQoUOaOHGiVq1apQ4dOuj111/XqFGjMvR/++23dfLkSf3rX//SF198obi4OEVFRSk1NdXRZ8aMGWrfvr3S0tIcx/n66687/vPt0aOHgoODM7w5TUlJ0fTp09WlSxeFhobm+pjat28vDw+PbKe8nDhxQh06dJCXl5dmzpypNWvWaNy4cfLx8dGtW7cUEhLieNM0YMAAx1Std99912k7Xbt2VdWqVfX1119r2rRp2da1f/9+DR06VG+88YaWLVumZs2aaciQIfrwww9NH+Pnn3+u5s2bKzg42GkaaVaOHDmiZs2a6fDhw/r000+1dOlSPfTQQ+rXr58++OCDDP1zMs6Z2bJli5588kldvXpVM2bM0FdffSVfX19FRUVp0aJFkv6a+pj+uZz06Uq5fTMpSaGhoWrYsKF27NiR4Xy73dq1a/X444/r1KlTmjRpkr777jv93//7f53eiJo9H3IiJSVFp0+fVvXq1R1tN2/eVGRkpObMmaNhw4Zp9erV6t27tz744ANT072y06pVK4WHh2eY3peamqq5c+eqadOmeuihhyT9dT688sorWrx4sZYuXaquXbtq8ODB+uc//5kntUjS999/r+bNm+vPP//UtGnT9M03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zDB9EkUHY1w8MM5FH2NcPDDORR9j7BqF/q59AAAAAFDQCv1npAAAAACgoBGkAAAAAMAkghQAAAAAmESQAgAAAACTCFLIM1u3blVUVJRCQ0NlsVi0fPlyV5eEPDZ27Fg1btxYvr6+CgoKUufOnXXkyBFXl4U8NHXqVD388MOOL3V89NFH9d1337m6LOSjsWPHymKxaOjQoa4uBXkoJiZGFovF6Sc4ONjVZSEfnD17Vr1791bZsmXl7e2tevXqae/eva4uq1ggSCHPJCYmqm7dupoyZYqrS0E+2bJliwYNGqRdu3Zp/fr1SklJUZs2bZSYmOjq0pBHKlSooHHjxmnPnj3as2ePnnzySXXq1EmHDx92dWnIB7t379YXX3yhhx9+2NWlIB/UqlVL8fHxjp+DBw+6uiTksStXrqh58+ayWq367rvv9NNPP2nixIkqXbq0q0srForE90jBPbRr107t2rVzdRnIR2vWrHFajo2NVVBQkPbu3asnnnjCRVUhL0VFRTktv//++5o6dap27dqlWrVquagq5Ifr16/rueee05dffqnRo0e7uhzkA09PT65CFXHjx49XWFiYYmNjHW2VKlVyXUHFDFekAOTa1atXJUkBAQEurgT5ITU1VQsXLlRiYqIeffRRV5eDPDZo0CB16NBBrVq1cnUpyCdxcXEKDQ1V5cqV9eyzz+q3335zdUnIYytWrFCjRo30zDPPKCgoSPXr19eXX37p6rKKDYIUgFwxDEPDhg3TY489ptq1a7u6HOShgwcPqlSpUrLZbHr11Ve1bNkyPfTQQ64uC3lo4cKF2rdvn8aOHevqUpBPmjRpojlz5mjt2rX68ssvdf78eTVr1kyXLl1ydWnIQ7/99pumTp2qatWqae3atXr11Vf1+uuva86cOa4urVhgah+AXHnttdf0448/avv27a4uBXnswQcf1P79+/Xnn3/q//2//6e+fftqy5YthKki4vTp0xoyZIjWrVunEiVKuLoc5JPbp9rXqVNHjz76qKpUqaLZs2dr2LBhLqwMeSktLU2NGjXSmDFjJEn169fX4cOHNXXqVPXp08fF1RV9XJECYNrgwYO1YsUKff/996pQoYKry0Ee8/LyUtWqVdWoUSONHTtWdevW1SeffOLqspBH9u7dqwsXLqhhw4by9PSUp6entmzZok8//VSenp5KTU11dYnIBz4+PqpTp47i4uJcXQryUEhISIY/ctWsWVOnTp1yUUXFC1ekAOSYYRgaPHiwli1bps2bN6ty5cquLgkFwDAMJScnu7oM5JGWLVtmuHtb//79VaNGDb311lvy8PBwUWXIT8nJyfr555/1+OOPu7oU5KHmzZtn+BqSX3/9VeHh4S6qqHghSCHPXL9+XUePHnUsHz9+XPv371dAQIAqVqzowsqQVwYNGqQFCxbom2++ka+vr86fPy9J8vf3V8mSJV1cHfLC22+/rXbt2iksLEzXrl3TwoULtXnz5gx3bETh5evrm+FzjT4+PipbtiyfdyxCoqOjFRUVpYoVK+rChQsaPXq0EhIS1LdvX1eXhjz0xhtvqFmzZhozZoy6d++u//73v/riiy/0xRdfuLq0YoEghTyzZ88eRUZGOpbT52D37dtXs2bNclFVyEtTp06VJEVERDi1x8bGql+/fgVfEPLc77//rueff17x8fHy9/fXww8/rDVr1qh169auLg2ACWfOnFHPnj118eJFlStXTk2bNtWuXbu4UlHENG7cWMuWLdOIESP03nvvqXLlyvr444/13HPPubq0YsFiGIbh6iIAAAAAoDDhZhMAAAAAYBJBCgAAAABMIkgBAAAAgEkEKQAAAAAwiSAFAAAAACYRpAAAAADAJIIUAAAAAJhEkAIAAAAAkwhSAIBiLyIiQkOHDnV1GQCAQoQgBQAo1KKiotSqVatM1+3cuVMWi0X79u0r4KoAAEUdQQoAUKgNGDBAmzZt0smTJzOsmzlzpurVq6cGDRq4oDIAQFFGkAIAFGpPP/20goKCNGvWLKf2pKQkLVq0SJ07d1bPnj1VoUIFeXt7q06dOvrqq6+y3abFYtHy5cud2kqXLu20j7Nnz6pHjx4qU6aMypYtq06dOunEiRN5c1AAALdHkAIAFGqenp7q06ePZs2aJcMwHO1ff/21bt26pRdffFENGzbUqlWrdOjQIb388st6/vnn9Z///CfX+0xKSlJkZKRKlSqlrVu3avv27SpVqpTatm2rW7du5cVhAQDcHEEKAFDovfDCCzpx4oQ2b97saJs5c6a6du2q+++/X9HR0apXr54eeOABDR48WE899ZS+/vrrXO9v4cKFuu+++/Svf/1LderUUc2aNRUbG6tTp0451QAAKLo8XV0AAAD3qkaNGmrWrJlmzpypyMhIHTt2TNu2bdO6deuUmpqqcePGadGiRTp79qySk5OVnJwsHx+fXO9v7969Onr0qHx9fZ3ab968qWPHjt3r4QAACgGCFACgSBgwYIBee+01ffbZZ4qNjVV4eLhatmypCRMm6KOPPtLHH3+sOnXqyMfHR0OHDs12Cp7FYnGaJihJdrvd8e+0tDQ1bNhQ8+fPz/DYcuXK5d1BAQDcFkEKAFAkdO/eXUOGDNGCBQs0e/ZsvfTSS7JYLNq2bZs6deqk3r17S/orBMXFxalmzZpZbqtcuXKKj493LMfFxSkpKcmx3KBBAy1atEhBQUHy8/PLv4MCALgtPiMFACgSSpUqpR49eujtt9/WuXPn1K9fP0lS1apVtX79eu3YsUM///yzXnnlFZ0/fz7bbT355JOaMmWK9u3bpz179ujVV1+V1Wp1rH/uuecUGBioTp06adu2bTp+/Li2bNmiIUOG6MyZM/l5mAAAN0GQAgAUGQMGDNCVK1fUqlUrVaxYUZL07rvvqkGDBnrqqacUERGh4OBgde7cOdvtTJw4UWFhYXriiSfUq1cvRUdHy9vb27He29tbW7duVcWKFdW1a1fVrFlTL7zwgm7cuMEVKgAoJizGnZPAAQAAAADZ4ooUAAAAAJhEkAIAAAAAkwhSAAAAAGASQQoAAAAATCJIAQAAAIBJBCkAAAAAMIkgBQAAAAAmEaQAAAAAwCSCFAAAAACYRJACAAAAAJMIUgAAAABg0v8HOaYhy5O9k4cAAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "value_counts_dice_thousand = roll_1000['value'].value_counts().sort_index()\n", + "\n", + "# Create bar plot for frequency distribution\n", + "plt.figure(figsize=(10, 6))\n", + "plt.bar(value_counts_dice_thousand.index, value_counts_dice_thousand.values, color='purple', alpha=0.7)\n", + "plt.xlabel('Value')\n", + "plt.ylabel('Frequency')\n", + "plt.title('Frequency Distribution of Dice Roll Values (1000 Rolls)')\n", + "plt.grid(axis='y')\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "\"\"\"\n", + "All the possible resulst seem to even out, the greater the size of the sample, the more evenly distributed this values are.\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": 24, + "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", + "
observation
068.0
112.0
245.0
338.0
449.0
\n", + "
" + ], + "text/plain": [ + " observation\n", + "0 68.0\n", + "1 12.0\n", + "2 45.0\n", + "3 38.0\n", + "4 49.0" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ages_population= pd.read_csv(\"C:\\\\Users\\\\carmo\\\\Desktop\\\\IronHack\\\\Week 3\\\\Day 3\\\\Descriptive-Stats\\\\data\\\\ages_population.csv\")\n", + "ages_population.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0oAAAIhCAYAAABwnkrAAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA/Z0lEQVR4nO3de1zUVf7H8fcoMAICeQmQvJGplaaVlnkpMZVSY0vrt7pWWurmpqam/Spzd8XWa6Zrm5taGeqaaRctWc2kvJRpm5l4wX2YbYplEuUNxESB8/ujZX7N4SIMAwP4ej4e83g055z5fj9zGNF35zvn6zDGGAEAAAAAXGr4ugAAAAAAqGwISgAAAABgISgBAAAAgIWgBAAAAAAWghIAAAAAWAhKAAAAAGAhKAEAAACAhaAEAAAAABaCEgAAAABYCEoALnmLFy+Ww+Eo9PHEE0/4urxqxZ7rWrVqKTIyUt26ddP06dOVnp5e4DXx8fFyOBylOs/Zs2cVHx+vzZs3l+p1hZ2radOmuuuuu0p1nItZvny55s6dW2ifw+FQfHy8V8/nbR999JHat2+v4OBgORwOvfvuuxd9zd69e+VwOOTv769jx46Vf5EAUEZ+vi4AACqLhIQEXX311W5tUVFRPqqmesuf6wsXLig9PV1bt27VzJkz9fzzz2vlypXq0aOHa+ywYcN05513lur4Z8+e1eTJkyVJMTExJX6dJ+fyxPLly7Vv3z6NHTu2QN/27dvVsGHDcq/BU8YY/fa3v1WLFi20Zs0aBQcHq2XLlhd93auvvipJysnJ0dKlS/XUU0+Vd6kAUCYEJQD4r9atW6t9+/YlGnvhwgU5HA75+fFr1BP2XN977716/PHH1aVLF/Xr108HDx5URESEJKlhw4blHhzOnj2roKCgCjnXxdxyyy0+Pf/FfP/99zpx4oT69u2r7t27l+g12dnZev3119W2bVv99NNPeu211whKACo9Lr0DgIvYvHmzHA6H/vGPf2j8+PG64oor5HQ69fXXX0uSPvzwQ3Xv3l2hoaEKCgpS586d9dFHHxU4ztq1a3X99dfL6XQqOjpazz//fIFLvQ4fPiyHw6HFixcXeH1hl2QdPHhQAwcOVHh4uJxOp6655hr9/e9/L7T+N954QxMnTlRUVJRCQ0PVo0cPHThwoMB51q9fr+7duyssLExBQUG65pprNH36dEnSP/7xDzkcDm3fvr3A65599ln5+/vr+++/v+icFqZx48aaPXu2MjMztXDhQld7YZfDbdy4UTExMapXr54CAwPVuHFj3XvvvTp79qwOHz6syy+/XJI0efJk12V+Dz30kNvxvvzyS913332qU6eOmjVrVuS58q1evVpt2rRRrVq1dOWVV+pvf/ubW3/+ZYWHDx92a8+f//zLAGNiYrR27Vqlpqa6XYaYr7Cf8759+3T33XerTp06qlWrlq6//notWbKk0POU9OdcmK1bt6p79+4KCQlRUFCQOnXqpLVr17r64+PjXUHyqaeeksPhUNOmTS963HfffVfHjx/XsGHDNHjwYH311VfaunVrgXHZ2dkaP368IiMjFRQUpNtuu007d+5U06ZNXT+/fGlpaRo+fLgaNmyogIAARUdHa/LkycrJySnRewWAiyEoAcB/5ebmKicnx+3xaxMmTNCRI0e0YMECJSYmKjw8XMuWLVNsbKxCQ0O1ZMkSvfnmm6pbt67uuOMOt7D00Ucf6e6771ZISIhWrFihWbNm6c0331RCQoLH9e7fv1833XST9u3bp9mzZ+uf//yn+vTpo9GjR7suO/u1Z555RqmpqXr11Vf18ssv6+DBg4qLi1Nubq5rzKJFi9S7d2/l5eW53ufo0aP13XffSZL69++vyMjIAmEsJydHCxcuVN++fct0uWLv3r1Vs2ZNffzxx0WOOXz4sPr06aOAgAC99tprWr9+vWbMmKHg4GCdP39eDRo00Pr16yVJQ4cO1fbt27V9+3b96U9/cjtOv379dNVVV+mtt97SggULiq0rOTlZY8eO1eOPP67Vq1erU6dOGjNmjJ5//vlSv8eXXnpJnTt3VmRkpKu2woJnvgMHDqhTp05KSUnR3/72N61atUrXXnutHnroIT333HMFxpfk51yYLVu26Pbbb9fp06e1aNEivfHGGwoJCVFcXJxWrlwp6ZdLE1etWiVJeuyxx7R9+3atXr36ou950aJFcjqduv/++zVkyBA5HA4tWrSowLiHH35Yc+fO1cMPP6z33ntP9957r/r27atTp065jUtLS9PNN9+sDz74QH/+85/1/vvva+jQoZo+fbp+//vfX7QeACgRAwCXuISEBCOp0MeFCxfMpk2bjCRz2223ub0uKyvL1K1b18TFxbm15+bmmrZt25qbb77Z1dahQwcTFRVlfv75Z1dbRkaGqVu3rvn1r+JDhw4ZSSYhIaFAnZLMpEmTXM/vuOMO07BhQ3P69Gm3caNGjTK1atUyJ06cMMYYV/29e/d2G/fmm28aSWb79u3GGGMyMzNNaGio6dKli8nLyytyviZNmmQCAgLMDz/84GpbuXKlkWS2bNlS5OuM+f+53rFjR5FjIiIizDXXXON2vl/P0dtvv20kmeTk5CKP8eOPPxaYL/t4f/7zn4vs+7UmTZoYh8NR4Hw9e/Y0oaGhJisry+29HTp0yG1c/vxv2rTJ1danTx/TpEmTQmu36x4wYIBxOp3myJEjbuN69eplgoKCzKlTp9zOc7Gfc1FuueUWEx4ebjIzM11tOTk5pnXr1qZhw4auz0T+Z3TWrFnFHi/f4cOHTY0aNcyAAQNcbV27djXBwcEmIyPD1ZaSkmIkmaeeesrt9W+88YaRZAYPHuxqGz58uKldu7ZJTU11G/v8888bSSYlJaVEtQFAcVhRAoD/Wrp0qXbs2OH2+PV3kO6991638du2bdOJEyc0ePBgt1WovLw83XnnndqxY4eysrKUlZWlHTt2qF+/fqpVq5br9fn/t94T586d00cffaS+ffsqKCjI7fy9e/fWuXPn9Nlnn7m95je/+Y3b8zZt2kiSUlNTXe8nIyNDI0aMKHaXuUcffVSS9Morr7ja5s2bp+uuu0633XabR+/n14wxxfZff/31CggI0COPPKIlS5bom2++8eg89s+zOK1atVLbtm3d2gYOHKiMjAx9+eWXHp2/pDZu3Kju3burUaNGbu0PPfSQzp49W2A16mI/58JkZWXpX//6l+677z7Vrl3b1V6zZk09+OCD+u6770p8+Z4tISFBeXl5GjJkiKttyJAhysrKcq1USb+saEnSb3/7W7fX33fffQW+C/jPf/5T3bp1U1RUlNtnv1evXm7HAoCyICgBwH9dc801at++vdvj1xo0aOD2/IcffpD0yz/k/P393R4zZ86UMUYnTpzQyZMnlZeXp8jIyALnLKytJI4fP66cnBy9+OKLBc7du3dvSdJPP/3k9pp69eq5PXc6nZKkn3/+WZL0448/StJFNzOIiIhQ//79tXDhQuXm5mrPnj365JNPNGrUKI/ey69lZWXp+PHjxV6+16xZM3344YcKDw/XyJEj1axZMzVr1kwvvPBCqc5l/zyLU9zP7vjx46U6b2kdP3680Frz58g+/8V+zoU5efKkjDGlOk9J5OXlafHixYqKilK7du106tQpnTp1Sj169FBwcLDb5Xf5x8/fxCOfn59fgff0ww8/KDExscBnv1WrVpIKfvYBwBNs1wQAJWSvstSvX1+S9OKLLxa5U1lERIRrh7y0tLQC/XZb/opTdna2W7v9j9Q6deq4/m//yJEjCz13dHR0Me+moPwNEPK/j1ScMWPG6B//+Ifee+89rV+/Xpdddpnuv//+Up2vMGvXrlVubu5Ft/S+9dZbdeuttyo3N1dffPGFXnzxRY0dO1YREREaMGBAic5VmnszFfezy/9HfFE/u7L+o71evXqF3ncof9OM/M9hWdSpU0c1atTw+nk+/PBD10qWHXYk6bPPPtP+/ft17bXXuvp/+OEHXXHFFa4xOTk5BT7/9evXV5s2bTR16tRCz8u2/gC8gaAEAB7q3LmzLrvsMu3fv7/Y1ZSAgADdfPPNWrVqlWbNmuX6B3VmZqYSExPdxkZERKhWrVras2ePW/t7773n9jwoKEjdunXTrl271KZNGwUEBJT5/XTq1ElhYWFasGCBBgwYUGyQaNeunTp16qSZM2dq3759euSRRxQcHFym8x85ckRPPPGEwsLCNHz48BK9pmbNmurQoYOuvvpqvf766/ryyy81YMCAEq2ilEZKSop2797tdvnd8uXLFRISohtvvFGSXLu/7dmzx+2+QmvWrClwPKfTWeLaunfvrtWrV+v77793CwBLly5VUFCQV7YTDw4OVocOHbRq1So9//zzCgwMlPTLitCyZcvUsGFDtWjRotTHXbRokWrUqKFVq1YpLCzMre+7777Tgw8+qNdee03PP/+867LNlStXuuZUkt5+++0CG6vcddddWrdunZo1a6Y6deqUui4AKAmCEgB4qHbt2nrxxRc1ePBgnThxQvfdd5/Cw8P1448/avfu3frxxx81f/58SdJf/vIX3XnnnerZs6fGjx+v3NxczZw5U8HBwTpx4oTrmA6HQw888IBee+01NWvWTG3bttXnn3+u5cuXFzj/Cy+8oC5duujWW2/Vo48+qqZNmyozM1Nff/21EhMTtXHjxlK/n9mzZ2vYsGHq0aOHfv/73ysiIkJff/21du/erXnz5rmNHzNmjPr37y+Hw6ERI0aU6lz79u1zfa8kPT1dn3zyiRISElSzZk2tXr3atbpVmAULFmjjxo3q06ePGjdurHPnzum1116TJNeNakNCQtSkSRO999576t69u+rWrav69euXaCvrwkRFRek3v/mN4uPj1aBBAy1btkxJSUmaOXOmgoKCJEk33XSTWrZsqSeeeEI5OTmqU6eOVq9eXeg22Nddd51WrVql+fPnq127dqpRo0aR9/CaNGmS6zs5f/7zn1W3bl29/vrrWrt2rZ577rkCAcRT06dPV8+ePdWtWzc98cQTCggI0EsvvaR9+/bpjTfeKNUKnPTLKuh7772nO+64Q3fffXehY/76179q6dKlmj59ulq1aqXf/e53mj17tmrWrKnbb79dKSkpmj17tsLCwlSjxv9/W+DZZ59VUlKSOnXqpNGjR6tly5Y6d+6cDh8+rHXr1mnBggU+vx8WgGrAx5tJAIDPXWwntvzdxN56661C+7ds2WL69Olj6tata/z9/c0VV1xh+vTpU2D8mjVrTJs2bUxAQIBp3LixmTFjRqG7rJ0+fdoMGzbMREREmODgYBMXF2cOHz5c6C5uhw4dMkOGDDFXXHGF8ff3N5dffrnp1KmTmTJlykXrL2qHvXXr1rl2JQsKCjLXXnutmTlzZoH3nZ2dbZxOp7nzzjsLnZfC2DsMBgQEmPDwcNO1a1czbdo0k56eXuA19hxt377d9O3b1zRp0sQ4nU5Tr14907VrV7NmzRq313344YfmhhtuME6n023XtPzj/fjjjxc9lzG/7HrXp08f8/bbb5tWrVqZgIAA07RpUzNnzpwCr//qq69MbGysCQ0NNZdffrl57LHHzNq1awvsenfixAlz3333mcsuu8w4HA63cxb2c967d6+Ji4szYWFhJiAgwLRt27bAz620P+fCfPLJJ+b22283wcHBJjAw0Nxyyy0mMTGx0ONdbNe7uXPnGknm3XffLXLMggULjCTzzjvvGGOMOXfunBk3bpwJDw83tWrVMrfccovZvn27CQsLM48//rjba3/88UczevRoEx0dbfz9/U3dunVNu3btzMSJE82ZM2cu+l4B4GIcxlxkeyEAQLmJj4/X5MmTL7rTW2WUmJio3/zmN1q7dq1rAwnA27Zt26bOnTvr9ddf18CBA31dDoBLCJfeAQBKZf/+/UpNTdX48eN1/fXXu7ZkBsoqKSlJ27dvV7t27RQYGKjdu3drxowZat68ufr16+fr8gBcYghKAIBS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U6dO1e9+9ztJzG0+glI5cTgcbs+NMQXaUDbMsedGjRqlPXv2aOvWrQX6mFfPtGzZUsnJyTp16pTeeecdDR48WFu2bHH1M6+l8+2332rMmDHasGGDatWqVeQ45rX0evXq5frv6667Th07dlSzZs20ZMkS3XLLLZKYV0/k5eWpffv2mjZtmiTphhtuUEpKiubPn69Bgwa5xjG3nlu0aJF69eqlqKgot3bmtPRWrlypZcuWafny5WrVqpWSk5M1duxYRUVFafDgwa5xl/rccumdl9WvX181a9YssHqUnp5eIJXDM/m7MzHHnnnssce0Zs0abdq0SQ0bNnS1M69lExAQoKuuukrt27fX9OnT1bZtW73wwgvMq4d27typ9PR0tWvXTn5+fvLz89OWLVv0t7/9TX5+fq65Y17LLjg4WNddd50OHjzI57UMGjRooGuvvdat7ZprrtGRI0ck8Tu2rFJTU/Xhhx9q2LBhrjbm1HP/+7//q6effloDBgzQddddpwcffFCPP/64pk+fLom5zUdQ8rKAgAC1a9dOSUlJbu1JSUnq1KmTj6qqXqKjoxUZGek2x+fPn9eWLVuY42IYYzRq1CitWrVKGzduVHR0tFs/8+pdxhhlZ2czrx7q3r279u7dq+TkZNejffv2uv/++5WcnKwrr7ySefWS7Oxs/fvf/1aDBg34vJZB586dC9xy4auvvlKTJk0k8Tu2rBISEhQeHq4+ffq42phTz509e1Y1arjHgJo1a7q2B2du/8s3e0hUb/nbgy9atMjs37/fjB071gQHB5vDhw/7urQqIzMz0+zatcvs2rXLSDJz5swxu3btcm2xPmPGDBMWFmZWrVpl9u7da373u99dcltWltajjz5qwsLCzObNm922Wj179qxrDPPqmQkTJpiPP/7YHDp0yOzZs8c888wzpkaNGmbDhg3GGObVW369650xzKunxo8fbzZv3my++eYb89lnn5m77rrLhISEuP6OYl498/nnnxs/Pz8zdepUc/DgQfP666+boKAgs2zZMtcY5tYzubm5pnHjxuapp54q0Mecembw4MHmiiuucG0PvmrVKlO/fn3z5JNPusYwt2wPXm7+/ve/myZNmpiAgABz4403urZgRsls2rTJSCrwGDx4sDHml20rJ02aZCIjI43T6TS33Xab2bt3r2+LruQKm09JJiEhwTWGefXMkCFDXH/eL7/8ctO9e3dXSDKGefUWOygxr57JvxeKv7+/iYqKMv369TMpKSmufubVc4mJiaZ169bG6XSaq6++2rz88stu/cytZz744AMjyRw4cKBAH3PqmYyMDDNmzBjTuHFjU6tWLXPllVeaiRMnmuzsbNcY5tYYhzHG+GQpCwAAAAAqKb6jBAAAAAAWghIAAAAAWAhKAAAAAGAhKAEAAACAhaAEAAAAABaCEgAAAABYCEoAAAAAYCEoAQAAAICFoAQAAAAAFoISAKBK27Ztm2rWrKk777zT16UAAKoRhzHG+LoIAAA8NWzYMNWuXVuvvvqq9u/fr8aNG/u6JABANcCKEgCgysrKytKbb76pRx99VHfddZcWL17s1r9mzRo1b95cgYGB6tatm5YsWSKHw6FTp065xmzbtk233XabAgMD1ahRI40ePVpZWVkV+0YAAJUOQQkAUGWtXLlSLVu2VMuWLfXAAw8oISFB+RdKHD58WPfdd5/uueceJScna/jw4Zo4caLb6/fu3as77rhD/fr10549e7Ry5Upt3bpVo0aN8sXbAQBUIlx6BwCosjp37qzf/va3GjNmjHJyctSgQQO98cYb6tGjh55++mmtXbtWe/fudY3/4x//qKlTp+rkyZO67LLLNGjQIAUGBmrhwoWuMVu3blXXrl2VlZWlWrVq+eJtAQAqAVaUAABV0oEDB/T5559rwIABkiQ/Pz/1799fr732mqv/pptucnvNzTff7PZ8586dWrx4sWrXru163HHHHcrLy9OhQ4cq5o0AAColP18XAACAJxYtWqScnBxdccUVrjZjjPz9/XXy5EkZY+RwONxeY19EkZeXp+HDh2v06NEFjs+mEABwaSMoAQCqnJycHC1dulSzZ89WbGysW9+9996r119/XVdffbXWrVvn1vfFF1+4Pb/xxhuVkpKiq666qtxrBgBULXxHCQBQ5bz77rvq37+/0tPTFRYW5tY3ceJErVu3TqtWrVLLli31+OOPa+jQoUpOTtb48eP13Xff6dSpUwoLC9OePXt0yy236OGHH9bvf/97BQcH69///reSkpL04osv+ujdAQAqA76jBACochYtWqQePXoUCEnSLytKycnJOnnypN5++22tWrVKbdq00fz581273jmdTklSmzZttGXLFh08eFC33nqrbrjhBv3pT39SgwYNKvT9AAAqH1aUAACXjKlTp2rBggX69ttvfV0KAKCS4ztKAIBq66WXXtJNN92kevXq6dNPP9WsWbO4RxIAoEQISgCAauvgwYOaMmWKTpw4ocaNG2v8+PGaMGGCr8sCAFQBXHoHAAAAABY2cwAAAAAAC0EJAAAAACwEJQAAAACwEJQAAAAAwEJQAgAAAAALQQkAAAAALAQlAAAAALAQlAAAAADA8n/uBtE+hdy+BgAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Calculate frequency distribution for the 'observation' column\n", + "observation_counts = ages_population['observation'].value_counts().sort_index()\n", + "\n", + "# Create bar plot for frequency distribution\n", + "plt.figure(figsize=(10, 6))\n", + "plt.bar(observation_counts.index, observation_counts.values, color='orange', alpha=0.7)\n", + "plt.xlabel('Age')\n", + "plt.ylabel('Frequency')\n", + "plt.title('Frequency Distribution of Age')\n", + "plt.grid(axis='y')\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "\"\"\"Based on this observation:\n", + "\n", + "The mean (average) age is likely to fall within the range of 35-40 years, as that is where the data is centered.\n", + "The standard deviation, which measures the amount of variation or dispersion in the data, is likely to be around 10-15 years. This is because most of the data seems to fall within this range on either side of the mean\"\"\"" + ] + }, + { + "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": 27, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(36.56, 12.816499625976762)" + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Calculate the mean and standard deviation of the 'observation' column\n", + "mean_age = ages_population['observation'].mean()\n", + "std_dev_age = ages_population['observation'].std()\n", + "\n", + "mean_age, std_dev_age\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "\"\"\"\n", + "Comparing these values with our earlier estimates:\n", + "\n", + "The mean value does fall within the guessed range of 35-40 years.\n", + "The standard deviation is also within the guessed range of 10-15 years.\n", + "So, our estimates based on the frequency distribution plot were quite accurate.\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": 28, + "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", + "
observation
025.0
131.0
229.0
331.0
429.0
\n", + "
" + ], + "text/plain": [ + " observation\n", + "0 25.0\n", + "1 31.0\n", + "2 29.0\n", + "3 31.0\n", + "4 29.0" + ] + }, + "execution_count": 28, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ages_population2 = pd.read_csv(\"C:\\\\Users\\\\carmo\\\\Desktop\\\\IronHack\\\\Week 3\\\\Day 3\\\\Descriptive-Stats\\\\data\\\\ages_population2.csv\")\n", + "ages_population2.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA1IAAAIhCAYAAABE54vcAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAABNgklEQVR4nO3deVyU5f7/8fcoMAICbgmSqBzXXCs1S8tdzAU9WqlRZi5lx0xNPanHb4V9zTWNjp7UvhFoptmipscyMcsyrFxy7TzMSjEXotJAQRHk+v3hjzmNrDcgM+Dr+XjweDjXfd3X9bnnnmF4ey9jM8YYAQAAAAAKrYKrCwAAAACAsoYgBQAAAAAWEaQAAAAAwCKCFAAAAABYRJACAAAAAIsIUgAAAABgEUEKAAAAACwiSAEAAACARQQpAAAAALCIIAXguoqNjZXNZsv1Z/Lkya4ur1y59rmuVKmSgoKC1KVLF82ePVtJSUk51omMjJTNZrM0T1pamiIjI/XZZ59ZWi+3uerVq6e+fftaGqcgq1atUlRUVK7LbDabIiMjS3S+kvbJJ5+oTZs28vX1lc1m0/r16wtc5+DBg7LZbPL09NSZM2euf5EFyMjIUJMmTTRnzhxHW1Fen4X13XffKTIyUsePHy+B6osvPj5ekZGR+uOPPwrVf+3atXrwwQfVoEEDeXt7q169enrooYd09OhRp34ZGRmqX79+nq9vAKWLIAWgVMTExGjnzp1OP+PGjXN1WeVS9nMdFxenf/3rX7r11ls1d+5c3XLLLdq6datT31GjRmnnzp2Wxk9LS9OMGTMsB6mizFUU+QWpnTt3atSoUde9hqIyxmjQoEHy9PTUhg0btHPnTnXq1KnA9V5//XVJUmZmplasWHG9yyzQq6++qnPnzumpp57KsczK67OwvvvuO82YMcOtgtSMGTMKHaTmzp2rtLQ0TZ8+XZs3b9bMmTP17bff6vbbb9fhw4cd/Tw9PfXcc8/phRde0O+//36dqgdQWB6uLgDAjaF58+Zq06ZNofpmZGTIZrPJw4NfUUVx7XN933336emnn9bdd9+tgQMH6ujRowoMDJQk1a5dW7Vr176u9aSlpcnHx6dU5irInXfe6dL5C3L69GmdPXtWAwYMULdu3Qq1Tnp6ut566y21atVKv/32m9544w1NmTLlOleat8zMTM2fP18jRoyQr69vjuVWXp83io0bN6pmzZpObV27dlW9evX08ssvO4KyJD344IOaOHGili1bpn/84x+lXSqAP+GIFACX+uyzz2Sz2fTmm29q0qRJuvnmm2W32/XDDz9IkrZu3apu3brJ399fPj4+6tChgz755JMc42zatEm33nqr7Ha7QkND9dJLL+U4lez48eOy2WyKjY3NsX5up3wdPXpUERERqlmzpux2u2655Rb961//yrX+1atXa/r06QoODpa/v7+6d++uI0eO5Jhn8+bN6tatmwICAuTj46NbbrlFs2fPliS9+eabstlsuR61eeGFF+Tp6anTp08X+Jzmpk6dOlqwYIHOnz+vZcuWOdpzO91u27Zt6ty5s6pXry5vb2/VqVNH9913n9LS0nT8+HHddNNNkqQZM2Y4TtN69NFHncbbu3ev7r//flWtWlX169fPc65s69atU8uWLVWpUiX95S9/0T//+U+n5dmnhV17xCH7+c8+Ota5c2dt2rRJCQkJTqeRZcttPx86dEj9+/dX1apVValSJd16661avnx5rvMUdj/nZseOHerWrZv8/Pzk4+Oj9u3ba9OmTY7lkZGRjqA5ZcoU2Ww21atXr8Bx169fr99//12jRo3SsGHD9P3332vHjh05+qWnp2vSpEkKCgqSj4+POnbsqD179qhevXqO/ZctMTFRo0ePVu3ateXl5aXQ0FDNmDFDmZmZBdazYcMGnTp1SkOHDi2wb7a8Xp+7d+/WkCFDVK9ePccpbw8++KASEhIcfWJjY/XAAw9Ikrp06eLY59nv87i4OPXv31+1a9dWpUqV1KBBA40ePVq//fabUw2//vqrHn/8cYWEhMhut+umm25Shw4dchwlK+h3UmRkpP7+979LkkJDQx315HcE99oQJUnBwcGqXbu2fv75Z6d2Ly8vDR48WK+99pqMMfk8qwCuN4IUgFJx5coVZWZmOv382bRp03TixAktXbrU8b+zK1euVFhYmPz9/bV8+XK98847qlatmnr27On0h8snn3yi/v37y8/PT2+//bbmz5+vd955RzExMUWu97vvvlPbtm116NAhLViwQP/+97/Vp08fjRs3TjNmzMjR/x//+IcSEhL0+uuv67XXXtPRo0cVHh6uK1euOPpER0erd+/eysrKcmznuHHjdPLkSUnS4MGDFRQUlCOsZWZmatmyZRowYICCg4OLvE29e/dWxYoV9fnnn+fZ5/jx4+rTp4+8vLz0xhtvaPPmzZozZ458fX11+fJl1apVS5s3b5YkjRw50nGa5rPPPus0zsCBA9WgQQO9++67Wrp0ab517du3TxMmTNDTTz+tdevWqX379ho/frxeeukly9v46quvqkOHDgoKCnI6jTQvR44cUfv27XX48GH985//1Nq1a9W0aVM9+uijmjdvXo7+hdnPudm+fbu6du2q5ORkRUdHa/Xq1fLz81N4eLjWrFkj6eqpj2vXrpUkPfXUU9q5c6fWrVtX4DZHR0fLbrfroYce0ogRI2Sz2RQdHZ2j3/DhwxUVFaXhw4frgw8+0H333acBAwbkOP0sMTFRd9xxhz7++GM999xz+uijjzRy5EjNnj1bjz32WIH1bNq0STVr1lTTpk0L7Ptnub0+jx8/rsaNGysqKkoff/yx5s6dqzNnzqht27aOINSnTx/NmjVLkvSvf/3Lsc/79OkjSfrxxx911113acmSJdqyZYuee+45ff3117r77ruVkZHhmGvo0KFav369nnvuOW3ZskWvv/66unfv7nQKXWF+J40aNcpxSuPatWsd9dx+++2Wno+ffvpJCQkJatasWY5lnTt3VkJCgg4dOmRpTAAlzADAdRQTE2Mk5fqTkZFhPv30UyPJdOzY0Wm91NRUU61aNRMeHu7UfuXKFdOqVStzxx13ONratWtngoODzcWLFx1tKSkpplq1aubPv+aOHTtmJJmYmJgcdUoyzz//vONxz549Te3atU1ycrJTv7Fjx5pKlSqZs2fPGmOMo/7evXs79XvnnXeMJLNz505jjDHnz583/v7+5u677zZZWVl5Pl/PP/+88fLyMr/88oujbc2aNUaS2b59e57rGfPf53rXrl159gkMDDS33HKL03x/fo7ee+89I8ns27cvzzF+/fXXHM/XteM999xzeS77s7p16xqbzZZjvh49ehh/f3+TmprqtG3Hjh1z6pf9/H/66aeOtj59+pi6devmWvu1dQ8ZMsTY7XZz4sQJp369evUyPj4+5o8//nCap6D9nJc777zT1KxZ05w/f97RlpmZaZo3b25q167teE1kv0bnz5+f73jZjh8/bipUqGCGDBniaOvUqZPx9fU1KSkpjrbDhw8bSWbKlClO669evdpIMsOGDXO0jR492lSuXNkkJCQ49X3ppZeMJHP48OF8a7rlllvMvffem6O9KK/Pa2VmZpoLFy4YX19f88orrzja33333Ryvg9xkZWWZjIwMk5CQYCSZDz74wLGscuXKZsKECXmua+V30vz583N9vRZWRkaG6dy5s/H398/x2jTGmKNHjxpJZsmSJUUaH0DJ4IgUgFKxYsUK7dq1y+nnz9dA3XfffU794+PjdfbsWQ0bNszpKFZWVpbuvfde7dq1S6mpqUpNTdWuXbs0cOBAVapUybF+9v/2F8WlS5f0ySefaMCAAfLx8XGav3fv3rp06ZK++uorp3X69evn9Lhly5aS5DgFKT4+XikpKRozZky+d8n729/+Jkn6v//7P0fb4sWL1aJFC3Xs2LFI2/NnpoBTgW699VZ5eXnp8ccf1/Lly/XTTz8VaZ5r92d+mjVrplatWjm1RUREKCUlRXv37i3S/IW1bds2devWTSEhIU7tjz76qNLS0nIczSpoP+cmNTVVX3/9te6//35VrlzZ0V6xYkUNHTpUJ0+eLPTpgdeKiYlRVlaWRowY4WgbMWKEUlNTHUe6pKtHxCRp0KBBTuvff//9Oa5F/Pe//60uXbooODjY6bXfq1cvp7Hycvr06VxPVSuMa1+fFy5c0JQpU9SgQQN5eHjIw8NDlStXVmpqqv7zn/8UasykpCQ98cQTCgkJkYeHhzw9PVW3bl1JchrjjjvuUGxsrGbOnKmvvvrK6WiVVPjfScVljNHIkSP1xRdfaMWKFTlem9J/TwU8depUsecDUHRcyQ2gVNxyyy353myiVq1aTo9/+eUXSVf/0MvL2bNnZbPZlJWVpaCgoBzLc2srjN9//12ZmZlatGiRFi1alGufa6+vqF69utNju90uSbp48aKkq9dfSCrwZguBgYEaPHiwli1bpqlTp+rw4cP64osvnK4bKarU1FT9/vvvatGiRZ596tevr61bt2revHl68sknlZqaqr/85S8aN26cxo8fX+i5rt2f+clv313vO5P9/vvvudaafQrltfMXtJ9zc+7cORljLM1TGFlZWYqNjVVwcLBat27tOEWve/fu8vX1VXR0tOMOhdnjX3sTBw8Pjxzb9Msvv2jjxo3y9PTMdd5rX/vXunjxotN/ahRWbq/PiIgIffLJJ3r22WfVtm1b+fv7y2azqXfv3vk+59mysrIUFham06dP69lnn1WLFi3k6+urrKws3XnnnU5jrFmzRjNnztTrr7+uZ599VpUrV9aAAQM0b948BQUFFfp3Um432CgsY4xGjRqllStXavny5erfv3+u/bKf38I8BwCuH4IUALdw7VGaGjVqSJIWLVqU553WAgMDHXf4S0xMzLH82rbsPz7S09Od2q/9I7Zq1aqOowVPPvlkrnOHhobmszU5Zd+gIft6qPyMHz9eb775pj744ANt3rxZVapU0UMPPWRpvtxs2rRJV65cUefOnfPtd8899+iee+7RlStXtHv3bi1atEgTJkxQYGCghgwZUqi5rHw3VX77LvuP/Lz2XUF/1BekevXquX7vUvZNPbJfh8VRtWpVVahQocTn2bp1q+NI2LVhSJK++uorfffdd2ratKlj+S+//KKbb77Z0SczMzPH679GjRpq2bKlXnzxxVznLeg6vRo1aujs2bOWtkXK+fpMTk7Wv//9bz3//POaOnWqo196enqhxz906JD279+v2NhYDRs2zNGefTOba+uOiopSVFSUTpw4oQ0bNmjq1KlKSkrS5s2bC/07qaiyQ1RMTIyio6P18MMP59k3e/tL4vUJoOgIUgDcUocOHVSlShV99913Gjt2bJ79vLy8dMcdd2jt2rWaP3++4w/u8+fPa+PGjU59AwMDValSJR04cMCp/YMPPnB67OPjoy5duujbb79Vy5Yt5eXlVeztad++vQICArR06VINGTIk36DRunVrtW/fXnPnztWhQ4f0+OOPF+t/uSXpxIkTmjx5sgICAjR69OhCrVOxYkW1a9dOTZo00VtvvaW9e/dqyJAhhToKY8Xhw4e1f/9+p9P7Vq1aJT8/P8cF+tl3rztw4IAaN27s6Ldhw4Yc49nt9kLX1q1bN61bt06nT592CggrVqyQj49Pidwu3dfXV+3atdPatWv10ksvydvbW9LVoyUrV65U7dq11ahRI8vjRkdHq0KFClq7dq0CAgKclp08eVJDhw7VG2+8oZdeeslxWuiaNWucbnrw3nvv5bjxS9++ffXhhx+qfv36qlq1quW6mjRpoh9//NHSOrm9Pm02m4wxjtdbttdffz3HzT3yek1mv8+uHaOgI7x16tTR2LFj9cknn+jLL7+UVPjfSfnVkxdjjB577DHFxMRo2bJlGj58eL79s0+5tXpDDwAliyAFwC1VrlxZixYt0rBhw3T27Fndf//9qlmzpn799Vft379fv/76q5YsWSJJ+t///V/de++96tGjhyZNmqQrV65o7ty58vX1dfqfa5vNpocfflhvvPGG6tevr1atWumbb77RqlWrcsz/yiuv6O6779Y999yjv/3tb6pXr57Onz+vH374QRs3btS2bdssb8+CBQs0atQode/eXY899pgCAwP1ww8/aP/+/Vq8eLFT//Hjx2vw4MGy2WwaM2aMpbkOHTrkuH4jKSlJX3zxhWJiYlSxYkWtW7fOcXQsN0uXLtW2bdvUp08f1alTR5cuXdIbb7wh6eopY9LV68/q1q2rDz74QN26dVO1atVUo0aNQt2qOzfBwcHq16+fIiMjVatWLa1cuVJxcXGaO3eufHx8JElt27ZV48aNNXnyZGVmZqpq1apat25drrf5btGihdauXaslS5aodevWqlChQp6nlT7//POOa4Kee+45VatWTW+99ZY2bdqkefPm5QgoRTV79mz16NFDXbp00eTJk+Xl5aVXX31Vhw4d0urVqy0dwZOuHkX94IMP1LNnzzxP/3r55Ze1YsUKzZ49W82aNdODDz6oBQsWqGLFiuratasOHz6sBQsWKCAgQBUq/PeS6RdeeEFxcXFq3769xo0bp8aNG+vSpUs6fvy4PvzwQy1dujTfU1Q7d+6sF154wfH9Ydcq7OvT399fHTt21Pz58x2vr+3btys6OlpVqlRxGrN58+aSpNdee01+fn6qVKmSQkND1aRJE9WvX19Tp06VMUbVqlXTxo0bFRcX57R+cnKyunTpooiICDVp0kR+fn7atWuXNm/erIEDB0qy9jsp+/TEV155RcOGDZOnp6caN24sPz+/XJ+zcePGKTo6WiNGjFCLFi2crsG02+267bbbnPp/9dVXqlixYolcNwmgGFx2mwsAN4SC7tSVfTe0d999N9fl27dvN3369DHVqlUznp6e5uabbzZ9+vTJ0X/Dhg2mZcuWxsvLy9SpU8fMmTMn17vEJScnm1GjRpnAwEDj6+trwsPDzfHjx3O9C92xY8fMiBEjzM0332w8PT3NTTfdZNq3b29mzpxZYP153SHwww8/dNxVzcfHxzRt2tTMnTs3x3anp6cbu92e693P8nLtHRK9vLxMzZo1TadOncysWbNMUlJSjnWufY527txpBgwYYOrWrWvsdrupXr266dSpk9mwYYPTelu3bjW33XabsdvtTnd9yx7v119/LXAuY67e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AAAAlHeWglTDhg115swZffrpp5KkwYMH65///KcCAwOvS3EAAAAA4I4sXSNljHF6/NFHHyk1NbVECwIAAAAAd1ekm01kuzZYAQAAAMCNwFKQstlsOa6B4pooAAAAADcaS9dIGWP06KOPym63S5IuXbqkJ554Isdd+9auXVtyFQIAAACAm7EUpIYNG+b0+OGHHy7RYgAAAACgLLAUpGJiYq5XHXk6deqUpkyZoo8++kgXL15Uo0aNFB0drdatW0u6epRsxowZeu2113Tu3Dm1a9dO//rXv9SsWbNSrxUAAADAjaFIX8hbWs6dO6cOHTqoS5cu+uijj1SzZk39+OOPqlKliqPPvHnztHDhQsXGxqpRo0aaOXOmevTooSNHjsjPz891xQMAAPcVHu7a+TdudO38AIrNrYPU3LlzFRIS4nQkrF69eo5/G2MUFRWl6dOna+DAgZKk5cuXKzAwUKtWrdLo0aNLu2QAAAAANwC3DlIbNmxQz5499cADD2j79u26+eabNWbMGD322GOSpGPHjikxMVFhYWGOdex2uzp16qT4+Pg8g1R6errS09Mdj1NSUiRJGRkZysjIuI5bBKDIPD1dO39BvxtcWZ871ya5d33uXJtEfcXhzrVJBdcHwGUKmwdsxo2/DKpSpUqSpIkTJ+qBBx7QN998owkTJmjZsmV65JFHFB8frw4dOujUqVMKDg52rPf4448rISFBH3/8ca7jRkZGasaMGTnaV61aJR8fn+uzMQAAAADcXlpamiIiIpScnCx/f/88+7n1EamsrCy1adNGs2bNkiTddtttOnz4sJYsWaJHHnnE0e/a77IyxuT7/VbTpk3TxIkTHY9TUlIUEhKisLCwfJ8sAC40eLBr51+zJv/lrqzPnWuT3Ls+d65Nor7icOfapILrA+Ay2WerFcStg1StWrXUtGlTp7ZbbrlF77//viQpKChIkpSYmKhatWo5+iQlJSkwMDDPce12u+O7sP7M09NTnq4+1A8gd64+Daag3w2urM+da5Pcuz53rk2ivuJw59ok159aCCBPhc0DFa5zHcXSoUMHHTlyxKnt+++/V926dSVJoaGhCgoKUlxcnGP55cuXtX37drVv375UawUAAABw43DrI1JPP/202rdvr1mzZmnQoEH65ptv9Nprr+m1116TdPWUvgkTJmjWrFlq2LChGjZsqFmzZsnH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/dQxzrX7YsKECaZOnTrGy8vL3HTTTSYsLMzEx8eX7saVMQXti7S0NBMWFmZuuukm4+npaerUqWOGDRtmTpw44TQO74viK8zvKGOMWbZsmfH29jZ//PFHruPwvii+ESNGmLp16zqes27dujlClDF8VpSm/PYFnxWlK799wWdF2WEzxpjre8wLAAAAAMoXrpECAAAAAIsIUgAAAABgEUEKAAAAACwiSAEAAACARQQpAAAAALCIIAUAAAAAFhGkAAAAAMAighQAAAAAWESQAgAAAACLCFIAgHIvPj5eFStW1L333uvqUgAA5YTNGGNcXQQAANfTqFGjVLlyZb3++uv67rvvVKdOHVeXBAAo4zgiBQAo11JTU/XOO+/ob3/7m/r27avY2Fin5Rs2bFDDhg3l7e2tLl26aPny5bLZbPrjjz8cfeLj49WxY0d5e3srJCRE48aNU2pqauluCADArRCkAADl2po1a9S4cWM1btxYDz/8sGJiYpR9Msbx48d1//33669//av27dun0aNHa/r06U7rHzx4UD179tTAgQN14MABrVmzRjt27NDYsWNdsTkAADfBqX0AgHKtQ4cOGjRokMaPH6/MzEzVqlVLq1evVvfu3TV16lRt2rRJBw8edPT/n//5H7344os6d+6cqlSpokceeUTe3t5atmyZo8+OHTvUqVMnpaamqlKlSq7YLACAi3FECgBQbh05ckTffPONhgwZIkny8PDQ4MGD9cYbbziWt23b1mmdO+64w+nxnj17FBsbq8qVKzt+evbsqaysLB07dqx0NgQA4HY8XF0AAADXS3R0tDIzM3XzzTc72owx8vT01Llz52SMkc1mc1rn2hM1srKyNHr0aI0bNy7H+Ny0AgBuXAQpAEC5lJmZqRUrVmjBggUKCwtzWnbffffprbfeUpMmTfThhx86Ldu9e7fT49tvv12HDx9WgwYNrnvNAICyg2ukAADl0vr16zV48GAlJSUpICDAadn06dP14Ycfau3atWrcuLGefvppjRw5Uvv27dOkSZN08uRJ/fHHHwoICNCBAwd05513avjw4Xrsscfk6+ur//znP4qLi9OiRYtctHUAAFfjGikAQLkUHR2t7t275whR0tUjUvv27dO5c+f03nvvae3atWrZsqWWLFniuGuf3W6XJLVs2VLbt2/X0aNHdc899+i2227Ts88+q1q1apXq9gAA3AtHpAAA+JMXX3xRS5cu1c8//+zqUgAAboxrpAAAN7RXX31Vbdu2VfXq1fXll19q/vz5fEcUAKBABCkAwA3t6NGjmjlzps6ePas6depo0qRJmjZtmqvLAgC4OU7tAwAAAACLuNkEAAAAAFhEkAIAAAAAiwhSAAAAAGARQQoAAAAALCJIAQAAAIBFBCkAAAAAsIggBQAAAAAWEaQAAAAAwKL/BwKW+1OfYgxoAAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Calculate frequency distribution for the 'observation' column\n", + "observation_counts2 = ages_population2['observation'].value_counts().sort_index()\n", + "\n", + "# Create bar plot for frequency distribution\n", + "plt.figure(figsize=(10, 6))\n", + "plt.bar(observation_counts2.index, observation_counts2.values, color='red', alpha=0.7)\n", + "plt.xlabel('Age')\n", + "plt.ylabel('Frequency')\n", + "plt.title('Frequency Distribution of Age (Dataset 2)')\n", + "plt.grid(axis='y')\n", + "\n", + "plt.show()\n" + ] + }, + { + "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", + "In the first dataset (from 'ages_population.csv'), the age values were distributed in a bell-shaped curve (normal distribution) centered around 35-40 years, with a wide range of ages from around 0 to 70.\n", + "\n", + "In contrast, the second dataset (from 'ages_population2.csv') has a more narrow distribution, primarily covering ages from around 20 to 35. The data is still somewhat bell-shaped, but the peak is higher and narrower, indicating a lower spread in the data. The distribution is centered around 27-28 years, which is younger than the center of the distribution in the first dataset.\n", + "\n", + "These differences could suggest different population samples. For example, the second dataset might represent a population sample from a city with a younger demographic, while the first dataset might represent a more diverse or broader population sample.\"\"\"" + ] + }, + { + "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": 30, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(27.155, 2.969813932689186)" + ] + }, + "execution_count": 30, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Calculate the mean and standard deviation of the 'observation' column in the second dataset\n", + "mean_age2 = ages_population2['observation'].mean()\n", + "std_dev_age2 = ages_population2['observation'].std()\n", + "\n", + "mean_age2, std_dev_age2\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "\"\"\"\n", + "Comparing these values with those from the first dataset:\n", + "\n", + "The mean age in the second dataset is lower than in the first dataset (27.16 vs 36.56 years), reflecting the younger age distribution we observed in the histogram.\n", + "The standard deviation in the second dataset is also significantly lower than in the first dataset (2.97 vs 12.82 years), indicating that the ages in the second dataset are more closely clustered around the mean.\n", + "The differences in the mean and standard deviation between the two datasets align with our observations from the histograms. The second dataset appears to represent a younger and less diverse age group compared to the first dataset.\"\"\"" + ] + }, + { + "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": 32, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0oAAAIhCAYAAABwnkrAAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAABL8klEQVR4nO39eXgUZd7+f58NSZokJGwxm0CIrLKqLLLJIoIsZhB0JsioIDLiCAICtwrcSvBmU5TBcQEcMMAgEhdAIghEkSgCI6Ds80XUALLLGggQEnI9f/ikf3RlD53uTni/jqOPw67r01WfurpsOKnqapsxxggAAAAA4FDO0w0AAAAAgLchKAEAAACABUEJAAAAACwISgAAAABgQVACAAAAAAuCEgAAAABYEJQAAAAAwIKgBAAAAAAWBCUAAAAAsCAoASi2+fPny2az5foYM2aMp9srU6xzXaFCBYWHh6tz586aOnWqTp48meM1cXFxstlsRdrOpUuXFBcXp/Xr1xfpdbltq1atWnrggQeKtJ6CLF68WDNnzsx1zGazKS4uzqXbc7WvvvpKLVq0UGBgoGw2m5YvX17ga3bt2iWbzSZfX18dO3as5JssQEZGhho0aKBp06Y5lhXn+CysvXv3Ki4uTgcOHHBB9zdu48aNiouL07lz5wpV/+WXX6pr166KjIyU3W5XaGio7r33Xq1atcqpLiMjQ7Vr187z+AbgfgQlADcsPj5emzZtcnoMHz7c022VSdlznZSUpHfeeUd33HGHXn31Vd1+++368ssvnWoHDx6sTZs2FWn9ly5d0sSJE4sclIqzreLILyht2rRJgwcPLvEeissYo7/85S/y9fXVihUrtGnTJnXs2LHA182dO1eSlJmZqYULF5Z0mwV69913dfbsWT377LM5xopyfBbW3r17NXHiRK8KShMnTix0UDp9+rQaNWqkf/zjH1q7dq3mzJkjX19f9erVS4sWLXLU+fr66uWXX9Yrr7yi06dPl1D3AIrCx9MNACj9GjdurBYtWhSqNiMjQzabTT4+fPwUh3WuH3roIT333HNq3769+vbtq/379yssLEySVL16dVWvXr1E+7l06ZICAgLcsq2CtG7d2qPbL8jRo0d15swZ9enTR126dCnUa9LT0/XBBx+oWbNmOnXqlN5//3298MILJdxp3jIzMzV9+nQNGjRIgYGBOcaL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0ktq0qSJAgMDlZWVpdatWzutIyEhQZMmTdLcuXP10ksvqWLFiurTp49ee+01hYeHF/ozKbcbWBRW3bp1Hf/9pz/9ST169NDQoUMVGxurcuX+v3+3zp7fwswBgJJFUAJQ4qxnWUJCQiT98S+sed2pLCwszHGHvOPHj+cYty7L/stFenq603LrX1KrVKni+Nf+oUOH5rrt6OjofPYmp+wbIGR/Hyk/I0aM0L///W999tlnWr16tSpXrqy//vWvRdpeblauXKlr166pU6dO+dbdc889uueee3Tt2jVt3bpVb731lkaOHKmwsDD169evUNsqym8z5ffeZf8lPq/3rqC/tBekWrVquf7uUPZNM7KPwxtRpUoVlStXzuXb+fLLLx1nsqxhR5I2b96svXv3qmHDho7xEydO6NZbb3XUZGZm5jj+Q0JC1LRpU02ePDnX7Rb0PbmQkBCdOXOmSPsi5Tw+z58/r88//1wTJkzQiy++6KhLT08v9Pp3796tHTt2aP78+RowYIBjefbNYqx9z5w5UzNnztShQ4e0YsUKvfjiizp58qRWr15d6M8kV2rVqpVWr16t33//3Wnd2fvviuMTwI0hKAFwu3bt2qly5crau3evhg0blmedn5+fWrVqpaVLl2r69OmOv1BfuHBBiYmJTrVhYWGqUKGCdu7c6bT8s88+c3oeEBCgzp0768cff1TTpk3l5+d3w/vTtm1bVapUSbNnz1a/fv3yDRLNmzdX27Zt9eqrr2r37t166qmnbuhfqSXp0KFDGjNmjCpVqqQhQ4YU6jXly5fX3XffrQYNGuiDDz7QDz/8oH79+hXqLEpR7NmzRzt27HC6/G7x4sUKCgpyfAE+++5vO3fuVP369R11K1asyLE+u91e6N66dOmiZcuW6ejRo04BYOHChQoICHDJ7cQDAwN19913a+nSpXr99dfl7+8v6Y+zHYsWLVL16tVVr169Iq933rx5KleunJYuXapKlSo5jR0+fFiPPfaY3n//fb3++uuOyzYTEhKcbirwySef5LixygMPPKBVq1apdu3aqlKlSpH7atCggX755ZcivSa349Nms8kY4zjess2dOzfHzTPyOiaz/z+zrqOgM7Q1a9bUsGHD9NVXX+m7776TVPjPpPz6KQpjjJKTk1W5cuUcQTj7ktii3jADgOsRlAC4XcWKFfXWW29pwIABOnPmjB5++GGFhobq999/144dO/T7779r1qxZkqT/+7//U/fu3dW1a1eNHj1a165d06uvvqrAwECnf3m22Wx69NFH9f7776t27dpq1qyZvv/+ey1evDjH9t988021b99e99xzj/7+97+rVq1aunDhgn7++WclJiZq3bp1Rd6fN954Q4MHD9Z9992nv/3tbwoLC9PPP/+sHTt26O2333aqHzFihGJjY2Wz2fTMM88UaVu7d+92fH/i5MmT+vbbbxUfH6/y5ctr2bJljrNbuZk9e7bWrVunXr16qWbNmrpy5Yref/99SX9c0iX98f2vqKgoffbZZ+rSpYuqVq2qkJCQQt3KOjeRkZH605/+pLi4OEVERGjRokVKSkrSq6++qoCAAElSy5YtVb9+fY0ZM0aZmZmqUqWKli1bluttsJs0aaKlS5dq1qxZat68ucqVK5fnZZ8TJkxwfCfn5ZdfVtWqVfXBBx9o5cqVeu2113IEkOKaOnWqunbtqs6dO2vMmDHy8/PTu+++q927d+vDDz8s0hk46Y+zoNnfY+ndu3euNf/4xz+0cOFCTZ06VY0aNdIjjzyiN954Q+XLl9e9996rPXv26I033lClSpWcLut65ZVXlJSUpLZt22r48OGqX7++rly5ogMHDmjVqlWaPXt2vpeQdurUSa+88orj97OsCnt8BgcHq0OHDpo+fbrj+EpOTta8efNUuXJlp3U2btxYkvTee+8pKChIFSpUUHR0tBo0aKDatWvrxRdflDFGVatWVWJiopKSkpxef/78eXXu3Fn9+/dXgwYNFBQUpC1btmj16tXq27evpKJ9JmVfPvjmm29qwIAB8vX1Vf369RUUFJTrnPXu3VvNmjXTHXfcoWrVquno0aOaP3++kpOT9c477+T4HtnmzZtVvnx5l3xvEcAN8uSdJACUbgXd6Sr7bmIff/xxruPJycmmV69epmrVqsbX19fceuutplevXjnqV6xYYZo2bWr8/PxMzZo1zbRp03K9y9r58+fN4MGDTVhYmAkMDDQxMTHmwIEDud7FLSUlxQwaNMjceuutxtfX19xyyy2mbdu2ZtKkSQX2n9cd9latWuW4K1lAQIBp2LChefXVV3Psd3p6urHb7bnePSwv1jsM+vn5mdDQUNOxY0czZcoUc/LkyRyvsc7Rpk2bTJ8+fUxUVJSx2+2mWrVqpmPHjmbFihVOr/vyyy/NnXfeaex2u9Nd07LX9/vvvxe4LWP+uOtdr169zCeffGIaNWpk/Pz8TK1atcyMGTNyvP6nn34y3bp1M8HBweaWW24xzz77rFm5cmWOu52dOXPGPPzww6Zy5crGZrM5bTO393nXrl0mJibGVKpUyfj5+ZlmzZrleN+K+j7n5ttvvzX33nuvCQwMNP7+/qZ169YmMTEx1/UVdNe7mTNnGklm+fLledbMnj3bSDKffvqpMcaYK1eumFGjRpnQ0FBToUIF07p1a7Np0yZTqVIl89xzzzm99vfffzfDhw830dHRxtfX11StWtU0b97cjB8/3ly8eDHf3n7++Wdjs9nMRx995LS8OMfn4cOHzUMPPWSqVKligoKCTPfu3c3u3btNVFSU0536suckOjralC9f3uk92bt3r+natasJCgoyVapUMX/+85/NoUOHnI6FK1eumKeffto0bdrUBAcHG39/f1O/fn0zYcIEx50XsxX2M2ns2LEmMjLSlCtXrsA78r366qumZcuWpkqVKqZ8+fKmWrVq5v777zeff/55rvX33HNPjrvvAfAMmzH8ohmA0icuLk4TJ04slT/KmJiYqD/96U9auXKlevbs6el2UEZt3LhR7dq10wcffKD+/fu7bL0xMTHKzMzUF1984bJ14g+//PKL6tatqzVr1qhr166ebge46XHpHQC4yd69e3Xw4EGNHj1ad9xxh+OWzMCNSkpK0qZNm9S8eXP5+/trx44dmjZtmurWreu4vMxVpk6dqjvvvFNbtmxRy5YtXbrum92kSZPUpUsXQhLgJQhKAOAmzzzzjL777jvdddddWrBgQZG/uwLkJTg4WGvXrtXMmTN14cIFhYSEqEePHpo6dWqxbuedn8aNGys+Pj7XOxqi+DIzM1W7dm2NHTvW060A+P/j0jsAAAAAsChXcAkAAAAA3FwISgAAAABgQVACAAAAAIsyfzOHrKwsHT16VEFBQXxxGgAAALiJGWN04cIFRUZGOv0gd27KfFA6evSoatSo4ek2AAAAAHiJ3377TdWrV8+3pswHpaCgIEl/TEZwcLCHuwEAAADgKampqapRo4YjI+SnzAel7MvtgoODCUoAAAAACvWVHG7mAAAAAAAWBCUAAAAAsCAoAQAAAIAFQQkAAAAALAhKAAAAAGBBUAIAAAAAC4ISAAAAAFgQlAAAAADAgqAE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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "ages_population3 = pd.read_csv(\"C:\\\\Users\\\\carmo\\\\Desktop\\\\IronHack\\\\Week 3\\\\Day 3\\\\Descriptive-Stats\\\\data\\\\ages_population3.csv\")\n", + "\n", + "\n", + "# Calculate frequency distribution for the 'observation' column\n", + "observation_counts3 = ages_population3['observation'].value_counts().sort_index()\n", + "\n", + "# Create bar plot for frequency distribution\n", + "plt.figure(figsize=(10, 6))\n", + "plt.bar(observation_counts3.index, observation_counts3.values, color='red', alpha=0.7)\n", + "plt.xlabel('Age')\n", + "plt.ylabel('Frequency')\n", + "plt.title('Frequency Distribution of Age (Dataset 3)')\n", + "plt.grid(axis='y')\n", + "\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": 33, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(41.989, 16.144705959865934)" + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Calculate the mean and standard deviation of the 'observation' column in the third dataset\n", + "mean_age3 = ages_population3['observation'].mean()\n", + "std_dev_age3 = ages_population3['observation'].std()\n", + "\n", + "mean_age3, std_dev_age3" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'\\nThe frequency distribution of age values for the third dataset shows that the data is not symmetric and has a slightly bimodal distribution, with one peak around 35 years and another around 67 years.\\n\\nThe exact mean (average) age for this dataset is approximately 41.99 years, and the standard deviation is approximately 16.14 years.\\n\\nCompared to the first two datasets, this one has a higher mean age, suggesting that it represents an older population. The larger standard deviation indicates a greater spread in the data, which is consistent with the broader and more varied distribution visible in the histogram. The presence of two peaks in the distribution suggests that there might be two distinct age groups within this population sample.'" + ] + }, + "execution_count": 34, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\"\"\"\n", + "The frequency distribution of age values for the third dataset shows that the data is not symmetric and has a slightly bimodal distribution, with one peak around 35 years and another around 67 years.\n", + "\n", + "The exact mean (average) age for this dataset is approximately 41.99 years, and the standard deviation is approximately 16.14 years.\n", + "\n", + "Compared to the first two datasets, this one has a higher mean age, suggesting that it represents an older population. The larger standard deviation indicates a greater spread in the data, which is consistent with the broader and more varied distribution visible in the histogram. The presence of two peaks in the distribution suggests that there might be two distinct age groups within this population sample.\"\"\"" + ] + }, + { + "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": 36, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(30.0, 40.0, 53.0)" + ] + }, + "execution_count": 36, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "def calculate_quartiles_new(data):\n", + " # Sort the data\n", + " sorted_data = sorted(data)\n", + "\n", + " # Calculate Q2 (median)\n", + " Q2 = calculate_median(sorted_data)\n", + "\n", + " # Calculate indices for Q1 and Q3\n", + " mid_index = len(sorted_data) // 2\n", + " Q1_index = mid_index // 2\n", + " Q3_index = mid_index + Q1_index if len(sorted_data) % 2 == 0 else mid_index + Q1_index + 1\n", + "\n", + " # Calculate Q1 and Q3\n", + " if len(sorted_data) % 2 == 0: # even length\n", + " Q1 = (sorted_data[Q1_index] + sorted_data[Q1_index - 1]) / 2\n", + " Q3 = (sorted_data[Q3_index] + sorted_data[Q3_index - 1]) / 2\n", + " else: # odd length\n", + " Q1 = sorted_data[Q1_index]\n", + " Q3 = sorted_data[Q3_index]\n", + "\n", + " return Q1, Q2, Q3\n", + "\n", + "# Calculate the quartiles of the 'observation' column in the third dataset using the new function\n", + "Q1_3_new, Q2_3_new, Q3_3_new = calculate_quartiles_new(ages_population3['observation'])\n", + "Q1_3_new, Q2_3_new, Q3_3_new\n" + ] + }, + { + "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", + "The difference between the mean (approximately 41.99 years) and the median (40.0 years) is about 2 years.\n", + "\n", + "Comparing the mean and median can provide insights into the shape of the distribution. When the mean and median are close, as they are in this case, it suggests that the data is somewhat symmetric around the mean/median. However, the histogram we plotted earlier showed a slightly bimodal distribution, indicating two groups within the population.\n", + "\n", + "The quartiles provide additional information. Half of the population is under 40 years old (the median), and 75% of the population is under 53 years old (Q3). The difference between Q3 and the maximum value in the dataset is quite large, which accounts for the long tail on the right side of the distribution (ages above 53). This tail is pulling the mean upwards, making it slightly larger than the median.\"\"\"" + ] + }, + { + "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.10.9" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +}