From 31db024158adcd1688b74a7a8d9491308ab2424d Mon Sep 17 00:00:00 2001 From: Amandine Croset Date: Sun, 22 Oct 2023 15:34:22 +0200 Subject: [PATCH 1/6] AmandineCroset --- .DS_Store | Bin 0 -> 6148 bytes your-code/.DS_Store | Bin 0 -> 6148 bytes .../.ipynb_checkpoints/main-checkpoint.ipynb | 1619 +++++++++++++ your-code/main.ipynb | 2141 +++++++++++++---- 4 files changed, 3238 insertions(+), 522 deletions(-) create mode 100644 .DS_Store create mode 100644 your-code/.DS_Store create mode 100644 your-code/.ipynb_checkpoints/main-checkpoint.ipynb diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..d8511abef1e2085dba6f23de4ce99bf3fd4d5397 GIT binary patch literal 6148 zcmeHKy-EW?5dJovnxI7*#qugUg@6xmhRYMA7EE#y0|^&GQrKN@VQK3d_ym@Mh!0?= zFJWQlH@nN_j$G^%kr|l%migJ)`|h~e1z_5Xqy;nq)Tx5C28Rj}zvzn8yk(bYWR3B# z)g7dh=}M#;{wf3V?gAWRh!N)H_jmtL^i9$@?vK+xZS|+y&%>?R<7wHSeCwZH7QPMl z zqzXnJGl%xq!NDHnhyl%3IG4MG~nBVcZcC z##c7}hGJ}Wt{>WPn8=}y%78LZW(SZT!vR4cTHG9gADGl#TL^dMkq&_NmaRR+EQ@?vML literal 0 HcmV?d00001 diff --git a/your-code/.DS_Store b/your-code/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..1f1c2121f55911a5c7154f2404f753f1134393a8 GIT binary patch literal 6148 zcmeHKOHRWu5Pbs`io~X3#nLB0>J35_wrqL;P*Ow@Z4>cXu=80s16SY*NbEQYZ#)Jy zB8!RzLe-39zwvx*=Si_W0A%_&p8#V31)HL%G9YRmbnWHf5mC|{Yt*DFW#PC>Vv!2)9rKT zzs~IzoBRFXk}l4GGvEw31I|EVfOob^acJnhGvEw31K$kj`4HF?%Z$-59Ubga2|(0m zbQ0=XOK48WSZ0id^iaf7iIyt4#1KoTJ>GmMNG?7kul!ZKNLroqhZGJe4ZU{; zoPj\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Rolls
04
12
24
32
42
55
64
74
86
96
\n", + "" + ], + "text/plain": [ + " Rolls\n", + "0 4\n", + "1 2\n", + "2 4\n", + "3 2\n", + "4 2\n", + "5 5\n", + "6 4\n", + "7 4\n", + "8 6\n", + "9 6" + ] + }, + "execution_count": 67, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# your code here\n", + "\n", + "import random\n", + "\n", + "\n", + "def rolling_dice():\n", + " return random.choices(range(1, 7), k=10) #6 angles of the dice, rolling 10 times\n", + "\n", + "dice_rolls = rolling_dice()\n", + "\n", + "dice_df = pd.DataFrame({'Rolls': dice_rolls})\n", + "dice_df.head(10)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 2.- Plot the results sorted by value." + ] + }, + { + "cell_type": "code", + "execution_count": 206, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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AKCIcjpUKlasqD179ug///mPdu/erZycHA0YMEA9e/Z0uLgWAADgdjkdKpLk6+ur/v37q3///q6eBwAAwM7pUFm4cOEt7+/du3e+hwEAALie06EyfPhwh9tXr17V5cuX5e3tLT8/P0IFAAC4jNPv+vntt98cftLS0nT48GE1bdqUi2kBAIBL5eu7fv6qevXqmjJlSq6jLQAAALfDJaEiScWKFdOZM2dctTkAAADnr1FZvny5w23LspSUlKS33npLTZo0cdlgAAAATodK586dHW7bbDaVL19eLVu21PTp0101FwAAgPOhkpOTUxBzAAAA5OKya1QAAABczekjKiNHjszzujNmzHB28wAAAHZOh8r333+v3bt3KysrSzVq1JAkHTlyRMWKFVNUVJR9PZvN5ropAQBAkeR0qHTq1En+/v764IMPVKZMGUl/fghcv3799MADD2jUqFEuHxIAABRNTl+jMn36dMXFxdkjRZLKlCmjSZMm8a4fAADgUk6HSmpqqs6dO5dr+fnz53Xp0iWXDAUAACDlI1S6dOmifv366eOPP9apU6d06tQpffzxxxowYIC6du1aEDMCAIAiyulrVN59912NHj1avXr10tWrV//ciKenBgwYoGnTprl8QAAAUHQ5HSp+fn565513NG3aNB07dkyWZalatWoqUaJEQcwHAACKsHx/4FtSUpKSkpIUHh6uEiVKyLIsV84FAADgfKikpKSoVatWCg8PV/v27ZWUlCRJeuqpp3hrMgAAcCmnQyU2NlZeXl5KTEyUn5+fffnjjz+uVatWuXQ4AABQtDl9jcqaNWu0evVqVapUyWF59erVdeLECZcNBgAA4PQRlfT0dIcjKdckJyfLx8fHJUMBAABI+QiVZs2aaeHChfbbNptNOTk5mjZtmlq0aOHS4QAAQNHm9KmfadOm6cEHH9TOnTv1xx9/aMyYMTpw4IAuXLigLVu2FMSMAACgiHL6iEqtWrX0ww8/6L777lObNm2Unp6url276vvvv1fVqlULYkYAAFBEOXVE5erVq2rbtq3mzJmjiRMnFtRMAAAAkpw8ouLl5aX9+/fLZrMV1DwAAAB2Tp/66d27t+bNm1cQswAAADhw+mLaP/74Q3PnztXatWsVHR2d6zt+ZsyY4bLhAABA0eZ0qOzfv19RUVGSpCNHjjjcxykhAADgSnkOlZ9//llh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WbNu+dyqVKmimTNn5trXhAkT7LcvXryoZ555RkFBQQoICFDLli21d+9e+/179+5VixYt5O/vr4CAADVo0EA7d+685X4BuAahAuCGWrZsqXr16t30dEtaWpqaN2+uM2fOaPny5dq7d6/GjBljP120evVq9erVS8OGDdPBgwc1Z84cLViwQJMnT77pPgcMGKBly5YpLS3NvmzTpk366aef1L9/f+Xk5KhSpUpaunSpDh48qJdeeknjxo3T0qVL8/08LctShw4ddPbsWa1YsUK7du1SVFSUWrVqpQsXLkiSevbsqUqVKikhIUG7du3Sc889Jy8vr3zvE0De8e3JAG4qIiJCP/zwww3v++ijj/Trr78qISFBZcuWlSRVq1bNfv/kyZP13HPPqU+fPpKke+65R6+88orGjBmj8ePH33CbPXr00KhRo7Rs2TL169dPkjR//nzFxMSoVq1akqSJEyfa1w8LC9PWrVu1dOlSdevWLV/PccOGDdq3b5/Onz9vP63173//W59//rk+/vhjPfPMM0pMTNT/+3//TxEREZJ002tpALgeoQLgpizLks1mu+F9e/bs0b333muPlL/atWuXEhISHI6gZGdnKyMjQ5cvX5afn1+ux5QuXVpdu3bV/Pnz1a9fP126dEmffPKJw6mbd999V3PnztWJEyd05coV/fHHH6pfv36+n+OuXbuUlpamwMBAh+VXrlzRsWPHJEkjR47UU089pUWLFql169Z67LHHVLVq1XzvE0DeESoAburQoUMKCwu74X2+vr63fGxOTo4mTpyorl275rqvePHiN33cgAED1KpVKx09elSbNm2SJD3++OOSpKVLlyo2NlbTp09XTEyM/P39NW3aNIfrYv7Kw8NDlmU5LLt69arDnBUqVNDGjRtzPbZ06dKSpAkTJqhHjx76+uuvtXLlSo0fP16LFy9Wly5dbrpfAK5BqAC4ofXr12vfvn2KjY294f2RkZGaO3euLly4cMOjKlFRUTp8+LDD6aC8aNGihe655x4tWLBAGzZsULdu3eTv7y9J+vbbb9W4cWMNGjTIvv61ox43U758eSUlJdlvp6am6pdffnGY8+zZs/L09FSVKlVuup3w8HCFh4crNjZWTzzxhOLj4wkV4A7gYloAyszM1NmzZ3X69Gnt3r1br776qh555BF17NhRvXv3vuFjnnjiCQUHB6tz587asmWLfv75Z33yySfatm2bJOmll17SwoULNWHCBB04cECHDh3SkiVL9MILL9xyFpvNpn79+mn27Nnatm2bBgwYYL+vWrVq2rlzp1avXq0jR47oxRdfVEJCwi2317JlSy1atEjffvut9u/frz59+qhYsWL2+1u3bq2YmBh17txZq1ev1vHjx7V161a98MIL2rlzp65cuaIhQ4Zo48aNOnHihLZs2aKEhATVrFkzr79eALeBUAGgVatWqUKFCqpSpYoefvhhbdiwQW+88Ya++OILhz/q1/P29taaNWsUFBSk9u3bq27dupoyZYp9/YceekhfffWV1q5dq4YNG+r+++/XjBkzVLly5b+dp2/fvrp48aJq1KihJk2a2JcPHDhQXbt21eOPP65GjRopJSXF4ejKjYwdO1bNmjVTx44d1b59e3Xu3Nnh+hKbzaYVK1aoWbNm6t+/v8LDw9W9e3cdP35cd911l4oVK6aUlBT17t1b4eHh6tatm9q1a+dwUS+AgmOz/nryFgAAwBAcUQEAAMYiVAAAgLEIFQAAYCxCBQAAGItQAQAAxiJUAACAsQgVAABgLEIFAAAYi1ABAADGIlQAAICxCBUAAGAsQgUAABjr/wMOgTD9VcbE2gAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# your code here\n", + "sorted_rolls = sorted(dice_rolls)\n", + "\n", + "# Add labels and title\n", + "plt.xlabel('Dice Values')\n", + "plt.ylabel('Frequency of rolls')\n", + "plt.title('Sorted Dice Rolls')\n", + "\n", + "plt.yticks(range(min(sorted_rolls_series), max(sorted_rolls_series) + 1))\n", + "plt.xticks(range(min(sorted_rolls_series), max(sorted_rolls_series) + 1))\n", + "\n", + "plt.hist(sorted_rolls, bins=10, edgecolor='black')\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": 83, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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frz1119/WRcvXrR+/PFHKzQ01CpdurR18OBBZ9vu3btbXl5e1pEjR1y20bZtW8vX19c6d+6cyzZjYmIyHY+M7W3ZssWSZC1btuya9WUlIiLCkpRpCgsLsyzr/47j66+/7rLepk2bLEnWpEmTXOYnJCRYPj4+1rBhwyzLsqyzZ89a3t7eVpcuXVzabdy40ZJkNW3aNNv3lWHt2rWWJGvt2rWWZeXuPGXUP2HCBJe2/fv3t7y9va309HTLsixrw4YNliTrX//61zWPV9OmTa369eu7zHvxxRetgIAA6/z589dcNyIiwvLz88t2+U8//WRJsl588UWX/V15jF566SWrSJEi19zPokWLXI7X1fVLsr7++ussl125r4zPXpkyZaw///zTOT85OdkqVqyY1apVK5f3Vr58+UzbvPrn0LIsy8/Pz4qIiMjU9urznJaWZpUpU8aqU6eOlZaW5mx3/vx5KygoyGrcuHGm/VzvPOPORo8KjGZZ1jWXr169Wmlpadf8q/e7777TmTNnFBER4dK7kJ6erkceeUTx8fHOv1yv5dVXX1WhQoWcl3N27dqlzz77zKVrfM2aNWrZsqXKli3rsm7v3r31xx9/5Oqv1SpVqqho0aJ69dVXNW3aNO3ZsyfH60p/D/CMj493ma6+HPbYY4+5vP7888/lcDjUs2dPl2NVqlQp1atXz9l9v2nTJl28eFHh4eEu6zdu3Fjly5fPVZ0Z3DlPGb0VGerWrauLFy867xiLi4uTpOv2igwaNEg//vijNm7cKElKTk7WBx98oIiICBUuXNit95Phep9hSbr//vt17tw59ejRQ59++ql+//33XO+naNGiatGiRY7bd+3aVd7e3s7X/v7+6tixozZs2JCp5y0v7d27V8ePH9fTTz+tAgX+7yuocOHCeuyxx7R58+ZMl+Gud55xZ2MwLYyVkpKi06dPq06dOtm2+e233yTpmgNsMy5XdOvWLds2Z86ckZ+f3zXrGTRokHr27KnU1FRt3rxZr732mjp16qTt27erePHikqTTp0+rdOnSmdYtU6aMc3lOBQYGav369XrzzTc1cuRInT17VqVLl9azzz6r1157TYUKFbrm+gUKFHAZpJyVq2s9efKkLMtyDl6+WqVKlVzeR6lSpTK1yWpeTrhznjKOewYvLy9Jf995I/39+fDw8LhuTZ06dVKFChX0/vvv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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "sorted_rolls_series = pd.Series(sorted_rolls)\n", + "\n", + "# Calculate the frequency distribution\n", + "frequency_distribution = sorted_rolls_series.value_counts().sort_index()\n", + "\n", + "# Plot the frequency distribution\n", + "plt.bar(frequency_distribution.index, frequency_distribution.values)\n", + "\n", + "\n", + "# Add labels and title\n", + "plt.xlabel('Dice Values')\n", + "plt.ylabel('Frequency')\n", + "plt.title('Dice Rolls Frequency Distribution')\n", + "\n", + "plt.yticks(range(min(sorted_rolls_series), max(sorted_rolls_series) + 1))\n", + "plt.xticks(range(min(sorted_rolls_series), max(sorted_rolls_series) + 1))\n", + "\n", + "plt.show()\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "\"\"\"\n", + "your comments here\n", + "\"\"\"\n", + "#Observation :\n", + "#for frequency distribution we HAVE TO convert the results into a DataFrame ?" + ] + }, + { + "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": 216, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3.9\n" + ] + } + ], + "source": [ + "# your code here\n", + "def calculate_mean(dice_rolls):\n", + " mean = sum(dice_rolls)/len(dice_rolls)\n", + " return mean\n", + "\n", + "mean_dice_rolls = calculate_mean(dice_rolls)\n", + "print(mean_dice_rolls)" + ] + }, + { + "cell_type": "code", + "execution_count": 85, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Mean: 3.9\n" + ] + } + ], + "source": [ + "#Other method\n", + "\n", + "def mean(data):\n", + " if len(data) == 0:\n", + " return 0 # Handle the case where the data list is empty to avoid division by zero\n", + "\n", + " total_sum = 0\n", + " count = 0\n", + "\n", + " for value in data:\n", + " total_sum += value\n", + " count += 1\n", + "\n", + " mean = total_sum / count\n", + "\n", + " return mean\n", + "\n", + "result = calculate_mean(dice_rolls)\n", + "print(\"Mean:\", result)\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": 93, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Rolls\n", + "2 3\n", + "4 4\n", + "5 1\n", + "6 2\n", + "dtype: int64\n", + "Mean is 2.5\n" + ] + } + ], + "source": [ + "# your code here\n", + "frequency_distribution = dice_df.value_counts().sort_index()\n", + "print(frequency_distribution)\n", + "\n", + "mean_frequency_distribution = average(frequency_distribution) \n", + "print(f'Mean is {mean_frequency_distribution}')" + ] + }, + { + "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": 100, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Rolls\n", + "1 2\n", + "3 2\n", + "4 2\n", + "0 4\n", + "2 4\n", + "6 4\n", + "7 4\n", + "5 5\n", + "8 6\n", + "9 6\n", + "[2, 2, 2, 4, 4, 4, 4, 5, 6, 6]\n", + "Median is 4.0\n" + ] + } + ], + "source": [ + "# Method without function\n", + "\n", + "# your code here\n", + "sorted_dice_df = dice_df.sort_values(by='Rolls')\n", + "print(sorted_dice_df)\n", + "\n", + "#Convert values into list to calculate the median\n", + "values_list = sorted_dice_df['Rolls'].to_list()\n", + "print(values_list)\n", + "\n", + "len(values_list)\n", + "\n", + "median = (values_list[4] + values_list[5])/2\n", + "print(f'Median is {median}')" + ] + }, + { + "cell_type": "code", + "execution_count": 153, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Median is 4.0\n" + ] + } + ], + "source": [ + "#With function\n", + "\n", + "def median(lst):\n", + " sortedlst = sorted(lst)\n", + " lstlen = len(lst)\n", + " index = (lstlen - 1) // 2\n", + " \n", + " if (lstlen % 2):\n", + " return sortedlst[index] #if total list values is even \n", + " else:\n", + " return (sortedlst[index] + sortedlst[index + 1])/2.0 #if total list values is odd\n", + "\n", + "#values_list = [2, 2, 2, 4, 4, 4, 4, 5, 6, 6]\n", + "calculate_median = median(values_list)\n", + "print(f'Median is {calculate_median}')" + ] + }, + { + "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": 131, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "the first quartile is 2.5\n", + "the second quartile is 4.0\n", + "the third quartile is 4.75\n", + "the fourth quartile is 6\n" + ] + } + ], + "source": [ + "#Comparing with results given by quantile formula\n", + "\n", + "q1 = np.quantile(values_list, 0.25) \n", + "print(\"the first quartile is\", q1)\n", + "q2 = np.quantile(values_list, 0.50)\n", + "print(\"the second quartile is\",q2)\n", + "q3 = np.quantile(values_list, 0.75)\n", + "print(\"the third quartile is\", q3)\n", + "q4 = np.quantile(values_list, 1)\n", + "print(\"the fourth quartile is\", q4)" + ] + }, + { + "cell_type": "code", + "execution_count": 161, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Q1: 2.00, Q2: 4.0, Q3: 5.00\n" + ] + } + ], + "source": [ + "# Find quartiles \n", + "\n", + "def quartiles(lst):\n", + " sortedlst = sorted(lst)\n", + " lstlen = len(lst)\n", + " \n", + " middle = len(lst)//2\n", + "\n", + "# lower quartile\n", + " q1_lower_quartile = median(lst[:middle])\n", + "\n", + "# median\n", + " q2 = median(lst)\n", + "\n", + "# upper quartile\n", + " q3_upper_quartile = median(lst[middle:])\n", + " \n", + " return q1_lower_quartile, q2, q3_upper_quartile\n", + "\n", + "#fourth quartile\n", + " \n", + "\n", + "q1_lower_quartile, q2, q3_upper_quartile = quartiles(values_list)\n", + "print(f'Q1: {q1_lower_quartile:.2f}, Q2: {q2}, Q3: {q3_upper_quartile:.2f}')" + ] + }, + { + "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": 177, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Unnamed: 0rollvalue
0001
1112
2226
3331
4446
5555
6662
7772
8884
9991
\n", + "
" + ], + "text/plain": [ + " Unnamed: 0 roll value\n", + "0 0 0 1\n", + "1 1 1 2\n", + "2 2 2 6\n", + "3 3 3 1\n", + "4 4 4 6\n", + "5 5 5 5\n", + "6 6 6 2\n", + "7 7 7 2\n", + "8 8 8 4\n", + "9 9 9 1" + ] + }, + "execution_count": 177, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# your code here\n", + "roll_dice_df = pd.read_csv('/Users/amandine/Desktop/Ironhack/03_Week/Descriptive-Stats/data/roll_the_dice_hundred.csv')\n", + "roll_dice_df.head(10)" + ] + }, + { + "cell_type": "code", + "execution_count": 195, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \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
1212125
7272725
3030306
9292926
9090906
4446
2226
9696966
8787876
2323236
5454546
3636366
3535356
8080806
7878786
7575756
3939396
4040406
4545456
6565656
1717176
1111116
2424246
2121216
9999996
\n", + "
" + ], + "text/plain": [ + " Unnamed: 0 roll value\n", + "12 12 12 5\n", + "72 72 72 5\n", + "30 30 30 6\n", + "92 92 92 6\n", + "90 90 90 6\n", + "4 4 4 6\n", + "2 2 2 6\n", + "96 96 96 6\n", + "87 87 87 6\n", + "23 23 23 6\n", + "54 54 54 6\n", + "36 36 36 6\n", + "35 35 35 6\n", + "80 80 80 6\n", + "78 78 78 6\n", + "75 75 75 6\n", + "39 39 39 6\n", + "40 40 40 6\n", + "45 45 45 6\n", + "65 65 65 6\n", + "17 17 17 6\n", + "11 11 11 6\n", + "24 24 24 6\n", + "21 21 21 6\n", + "99 99 99 6" + ] + }, + "execution_count": 195, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sorted_roll_dice_df = roll_dice_df.sort_values(by='value')\n", + "sorted_roll_dice_df.tail(25)" + ] + }, + { + "cell_type": "code", + "execution_count": 220, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjMAAAHFCAYAAAAHcXhbAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAsXUlEQVR4nO3de1iUdf7/8dcoOAIiKQeBBKLEM1ZmB60U8xQe1kNumpmYtN/MbDX12361q59kfqXyq1mXaWUJumW6tWVWlloe2zRPmWVmVCqokAuZKCIq3L8/upxtRBSHcWY+0/NxXfd1NffcM/d7pk2fe9/3zNgsy7IEAABgqFreHgAAAKAmiBkAAGA0YgYAABiNmAEAAEYjZgAAgNGIGQAAYDRiBgAAGI2YAQAARiNmAACA0YgZwEf1799fQUFB+vXXX6vc5t5771VgYKB+/vnnaj+vzWZTRkZGzQe8RGvXrpXNZnMsderUUWRkpG699VY9/vjj2r9/f6XHZGdny2azad++fZe0r2nTpmnp0qWX9Jjz7SslJUWtW7e+pOe5mOXLl1f5/l911VUaPny4W/cH/BEQM4CPSk9P18mTJ7Vo0aLz3n/06FG9++676t27txo1auTh6Vw3bdo0bdy4UWvWrNFrr72mlJQUzZ8/Xy1atNAbb7zhtG2vXr20ceNGxcTEXPI+LjVmXN3XpVq+fLmefPLJ89737rvv6oknnris+wf8UYC3BwBwfqmpqYqNjdX8+fM1atSoSve/+eabKi0tVXp6uhemc11SUpJuueUWx+0//elPGj9+vLp27arhw4erTZs2Sk5OliRFRkYqMjLyss5TWlqqunXremRfF3P99dd7df+AqTgyA/io2rVrKy0tTdu2bdPXX39d6f6srCzFxMQoNTVV//73vzVq1Ci1bNlS9erVU1RUlO644w5t2LDhovvJyMiQzWartL6qUzxLlixR+/btFRISonr16qlHjx768ssvXX6dktSwYUO9/PLLOnPmjJ577rkLzvDll1+qd+/eioqKkt1uV2xsrHr16qUDBw5I+u00WklJiRYsWOA4pZWSkuL0fCtXrtSIESMUGRmp4OBglZWVXfCU1oYNG3TLLbcoKChIV155pZ544gmVl5c77j97Cm3t2rVOj9u3b59sNpuys7MlScOHD9eLL77omPPscnaf5zvNlJubq6FDhzpeb4sWLTRjxgxVVFRU2s///d//aebMmUpMTFS9evXUvn17bdq06RL+TQBmImYAHzZixAjZbDbNnz/faf23336rzZs3Ky0tTbVr19Yvv/wiSZo8ebI+/PBDZWVl6eqrr1ZKSkqlv2BrYtq0abrnnnvUsmVL/eMf/9Df//53HTt2TLfffru+/fbbGj33jTfeqJiYGK1fv77KbUpKStStWzf9/PPPevHFF7Vq1SrNmjVL8fHxOnbsmCRp48aNCgoKUs+ePbVx40Zt3LhRc+bMcXqeESNGKDAwUH//+9/19ttvKzAwsMp9FhQUaPDgwbr33nv13nvvaeDAgZo6darGjBlzya/xiSee0MCBAx1znl2qOrX173//Wx06dNDKlSv11FNPadmyZeratasmTJig0aNHV9r+9+/JG2+8oZKSEvXs2VNHjx695FkBk3CaCfBhTZo0UceOHfX666/r2WefdfylezZuRowYIUlq1qyZ01/Y5eXl6tGjh/bt26cXXnjBcWSiJvLy8jR58mSNHj1aL7zwgmN9t27dlJSUpCeffFJLliyp0T7i4+O1c+fOKu//7rvvVFRUpNdee019+/Z1rL/77rsd/3zLLbeoVq1aioyMdDqd9XtdunTRyy+/XK2ZioqK9N577+lPf/qTJKl79+4qLS3V3Llz9dhjjyk+Pr5azyNJ11xzjeP6pqpm+72ZM2fq4MGD+uKLL3TTTTdJknr06KHy8nK99NJLGjt2rJo2berYPjQ0VB988IFq164tSYqNjdVNN92kjz76SIMHD672nIBpODID+Lj09HQVFhZq2bJlkqQzZ87o9ddf1+23366kpCTHdi+99JLatm2runXrKiAgQIGBgfr000+1e/dut8yxYsUKnTlzRsOGDdOZM2ccS926ddWpUye3HAGyLOuC9zdp0kQNGjTQ3/72N7300ksuHw266667qr1taGioI2TOGjJkiCoqKi54FMkdVq9erZYtWzpC5qzhw4fLsiytXr3aaX2vXr0cISNJbdq0kaTzflIM8CfEDODjBg4cqLCwMGVlZUn67dMwP//8s9OFvzNnztRDDz2km2++Wf/85z+1adMmbdmyRXfeeadKS0vdMsfZj3/feOONCgwMdFqWLFmiwsLCGu8jNzdXsbGxVd4fFhamdevW6brrrtOkSZPUqlUrxcbGavLkyTp9+nS193Mpn1g63yfFoqOjJf121OZyKioqOu+sZ9+jc/cfHh7udNtut0uS2/43APgqTjMBPi4oKEj33HOP5s2bp/z8fM2fP1+hoaH685//7Njm9ddfV0pKiubOnev02LPXkVxI3bp1JUllZWWOv/wkVYqTiIgISdLbb7+thIQEl19PVTZv3qyCgoKLfjorOTlZixcvlmVZ2rlzp7KzszVlyhQFBQXpf/7nf6q1r/Nd8FyV832HT0FBgaT/xMPv38Pfq2nghYeHKz8/v9L6Q4cOSfrPvxPgj44jM4AB0tPTVV5erunTp2v58uUaPHiwgoODHffbbDanEJGknTt3auPGjRd97quuusqx/e+9//77Trd79OihgIAA/fjjj2rXrt15F1f98ssvGjlypAIDA/Xoo49W6zE2m03XXnutnnvuOV1xxRXavn274z673e62oxHHjh1znOI7a9GiRapVq5Y6duwoqer38NzHnZ1Nqt7Rki5duujbb791em2StHDhQtlsNnXu3LnarwPwZxyZAQzQrl07tWnTRrNmzZJlWZWOXvTu3VtPPfWUJk+erE6dOmnPnj2aMmWKEhMTdebMmQs+d8+ePdWwYUOlp6drypQpCggIUHZ2tvLy8py2u+qqqzRlyhQ9/vjj+umnn3TnnXeqQYMG+vnnn7V582aFhIRU+WVwv5eTk6NNmzapoqJCRUVF+uKLL/Taa6+puLhYCxcuVKtWrap87AcffKA5c+aoX79+uvrqq2VZlt555x39+uuv6tatm2O75ORkrV27Vu+//75iYmIUGhqqZs2aXXS28wkPD9dDDz2k3NxcNW3aVMuXL9e8efP00EMPOS7+jY6OVteuXZWZmakGDRooISFBn376qd55551Kz3f2O3SeeeYZpaamqnbt2mrTpo3q1KlTadtHH31UCxcuVK9evTRlyhQlJCToww8/1Jw5c/TQQw85XfwL/KFZAIzw/PPPW5Ksli1bVrqvrKzMmjBhgnXllVdadevWtdq2bWstXbrUSktLsxISEpy2lWRNnjzZad3mzZutDh06WCEhIdaVV15pTZ482Xr11VctSdbevXudtl26dKnVuXNnq379+pbdbrcSEhKsgQMHWp988skF51+zZo0lybEEBARY4eHhVvv27a1JkyZZ+/btq/SYrKwspxm+++4765577rGuueYaKygoyAoLC7NuuukmKzs72+lx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Uszk5ORcdJs6deooLS3NlacHAACoNpe+ZyYrK0tvvfVWpfVvvfWWFixYUOOhAAAAqsulmHn66acVERFRaX1UVJSmTZtW46EAAACqy6WY2b9/vxITEyutT0hIUG5ubo2HAgAAqC6XYiYqKko7d+6stP6rr75SeHh4jYcCAACoLpdiZvDgwfrrX/+qNWvWqLy8XOXl5Vq9erXGjBmjwYMHu3tGAACAKrn0aaapU6dq//796tKliwICfnuKiooKDRs2jGtmAACAR7kUM3Xq1NGSJUv01FNP6auvvlJQUJCSk5OVkJDg7vkAAAAuqEY/Z9C0aVM1bdrUXbMAAABcMpdipry8XNnZ2fr00091+PBhVVRUON2/evVqtwwHAABwMS7FzJgxY5Sdna1evXqpdevWstls7p4LAACgWlyKmcWLF+sf//iHevbs6e55AAAALolLH82uU6eOmjRp4u5ZAAAALplLMTN+/Hg9//zzsizL3fMAAABcEpdOM3322Wdas2aNPvroI7Vq1UqBgYFO97/zzjtuGQ4AAOBiXIqZK664Qv3793f3LAAAAJfMpZjJyspy9xwAAAAucemaGUk6c+aMPvnkE7388ss6duyYJOnQoUM6fvy424YDAAC4GJeOzOzfv1933nmncnNzVVZWpm7duik0NFTPPvusTp48qZdeesndcwIAAJyXS0dmxowZo3bt2unIkSMKCgpyrO/fv78+/fRTtw0HAABwMS5/mulf//qX6tSp47Q+ISFBBw8edMtgAAAA1eHSkZmKigqVl5dXWn/gwAGFhobWeCgAAIDqcilmunXrplmzZjlu22w2HT9+XJMnT+YnDgAAgEe5dJrpueeeU+fOndWyZUudPHlSQ4YMUU5OjiIiIvTmm2+6e0YAAIAquRQzsbGx2rFjh958801t375dFRUVSk9P17333ut0QTAAAMDl5lLMSFJQUJBGjBihESNGuHMe4+Tm5qqwsNDj+42IiFB8fLzH9wsApuDP5z8Ol2Jm4cKFF7x/2LBhLg1jmtzcXDVr3kInS094fN91g4K157vd/AcDAOfBn89/LC7FzJgxY5xunz59WidOnFCdOnUUHBz8h4mZwsJCnSw9ofDe4xUYHuex/Z4uylPRBzNUWFjIfywAcB78+fzH4lLMHDlypNK6nJwcPfTQQ/rv//7vGg9lmsDwONmjm3h7DADA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ZiIiIlS7du1KR2EOHz5c6WjNWRMnTtS4ceMctysqKvTLL78oPDxcNpvNrfMVFxcrLi5OeXl5ql+/vlufG//B++wZvM+ewfvsGbzPnnE532fLsnTs2DHFxsZedFufjpk6derohhtu0KpVq9S/f3/H+lWrVqlv377nfYzdbpfdbndad8UVV1zOMVW/fn3+Y/EA3mfP4H32DN5nz+B99ozL9T6HhYVVazufjhlJGjdunO677z61a9dO7du31yuvvKLc3FyNHDnS26MBAAAf4PMxM2jQIBUVFWnKlCnKz89X69attXz5ciUkJHh7NAAA4AN8PmYkadSoURo1apS3x6jEbrdr8uTJlU5rwb14nz2D99kzeJ89g/fZM3zlfbZZVnU+8wQAAOCbfPpL8wAAAC6GmAEAAEYjZgAAgNGIGQAAYDRixgXr169Xnz59FBsbK5vNpqVLl3p7JL+TmZmpG2+8UaGhoYqKilK/fv0cvz0C95o7d67atGnj+NKr9u3b66OPPvL2WH4tMzNTNptNY8eO9fYoficjI0M2m81piY6O9vZYfungwYMaOnSowsPDFRwcrOuuu07btm3zyizEjAtKSkp07bXXavbs2d4exW+tW7dODz/8sDZt2qRVq1bpzJkz6t69u0pKSrw9mt9p3Lixnn76aW3dulVbt27VHXfcob59+2rXrl3eHs0vbdmyRa+88oratGnj7VH8VqtWrZSfn+9Yvv76a2+P5HeOHDmiW2+9VYGBgfroo4/07bffasaMGZf9G/erYsT3zPia1NRUpaamensMv/bxxx873c7KylJUVJS2bdumjh07emkq/9SnTx+n2//7v/+ruXPnatOmTWrVqpWXpvJPx48f17333qt58+Zp6tSp3h7HbwUEBHA05jJ75plnFBcXp6ysLMe6q666ymvzcGQGRjh69KgkqWHDhl6exL+Vl5dr8eLFKikpUfv27b09jt95+OGH1atXL3Xt2tXbo/i1nJwcxcbGKjExUYMHD9ZPP/3k7ZH8zrJly9SuXTv9+c9/VlRUlK6//nrNmzfPa/MQM/B5lmVp3Lhxuu2229S6dWtvj+OXvv76a9WrV092u10jR47Uu+++q5YtW3p7LL+yePFibd++XZmZmd4exa/dfPPNWrhwoVasWKF58+apoKBAHTp0UFFRkbdH8ys//fST5s6dq6SkJK1YsUIjR47UX//6Vy1cuNAr83CaCT5v9OjR2rlzpz777DNvj+K3mjVrph07dujXX3/VP//5T6WlpWndunUEjZvk5eVpzJgxWrlyperWrevtcfza7y8BSE5OVvv27XXNNddowYIFGjdunBcn8y8VFRVq166dpk2bJkm6/vrrtWvXLs2dO1fDhg3z+DwcmYFPe+SRR7Rs2TKtWbNGjRs39vY4fqtOnTpq0qSJ2rVrp8zMTF177bV6/vnnvT2W39i2bZsOHz6sG264QQEBAQoICNC6dev0wgsvKCAgQOXl5d4e0W+FhIQoOTlZOTk53h7Fr8TExFT6PzstWrRQbm6uV+bhyAx8kmVZeuSRR/Tuu+9q7dq1SkxM9PZIfyiWZamsrMzbY/iNLl26VPpEzf3336/mzZvrb3/7m2rXru2lyfxfWVmZdu/erdtvv93bo/iVW2+9tdLXZXz//fdKSEjwyjzEjAuOHz+uH374wXF779692rFjhxo2bKj4+HgvTuY/Hn74YS1atEjvvfeeQkNDVVBQIEkKCwtTUFCQl6fzL5MmTVJqaqri4uJ07NgxLV68WGvXrq30iTK4LjQ0tNL1XiEhIQoPD+c6MDebMGGC+vTpo/j4eB0+fFhTp05VcXGx0tLSvD2aX3n00UfVoUMHTZs2TXfffbc2b96sV155Ra+88op3BrJwydasWWNJqrSkpaV5ezS/cb73V5KVlZXl7dH8zogRI6yEhASrTp06VmRkpNWlSxdr5cqV3h7L73Xq1MkaM2aMt8fwO4MGDbJiYmKswMBAKzY21howYIC1a9cub4/ll95//32rdevWlt1ut5o3b2698sorXpvFZlmW5Z2MAgAAqDkuAAYAAEYjZgAAgNGIGQAAYDRiBgAAGI2YAQAARiNmAACA0YgZAABgNGIGgJFSUlI0duxYb48BwAcQMwA8rk+fPuratet579u4caNsNpu2b9/u4akAmIqYAeBx6enpWr16tfbv31/pvvnz5+u6665T27ZtvTAZABMRMwA8rnfv3oqKilJ2drbT+hMnTmjJkiXq16+f7rnnHjVu3FjBwcFKTk7Wm2++ecHntNlsWrp0qdO6K664wmkfBw8e1KBBg9SgQQOFh4erb9++2rdvn3teFACvIWYAeFxAQICGDRum7Oxs/f7n4d566y2dOnVKDzzwgG644QZ98MEH+uabb/Rf//Vfuu+++/TFF1+4vM8TJ06oc+fOqlevntavX6/PPvtM9erV05133qlTp06542UB8BJiBoBXjBgxQvv27dPatWsd6+bPn68BAwboyiuv1IQJE3Tdddfp6quv1iOPPKIePXrorbfecnl/ixcvVq1atfTqq68qOTlZLVq0UFZWlnJzc51mAGCeAG8PAOCPqXnz5urQoYPmz5+vzp0768cff9SGDRu0cuVKlZeX6+mnn9aSJUt08OBBlZWVqaysTCEhIS7vb9u2bfrhhx8UGhrqtP7kyZP68ccfa/pyAHgRMQPAa9LT0zV69Gi9+OKLysrKUkJCgrp06aLp06frueee06xZs5ScnKyQkBCNHTv2gqeDbDab0ykrSTp9+rTjnysqKnTDDTfojTfeqPTYyMhI970oAB5HzADwmrvvvltjxozRokWLtGDBAv3lL3+RzWbThg0b1LdvXw0dOlTSbyGSk5OjFi1aVPlckZGRys/Pd9zOycnRiRMnHLfbtm2rJUuWKCoqSvXr1798LwqAx3HNDACvqVevngYNGqRJkybp0KFDGj58uCSpSZMmWrVqlT7//HPt3r1bDz74oAoKCi74XHfccYdmz56t7du3a+vWrRo5cqQCAwMd9997772KiIhQ3759tWHDBu3du1fr1q3TmDFjdODAgcv5MgFcZsQMAK9KT0/XkSNH1LVrV8XHx0uSnnjiCbVt21Y9evRQSkqKoqOj1a9fvws+z4wZMxQXF6eOHTtqyJAhmjBhgoKDgx33BwcHa/369YqPj9eAAQPUokULjRgxQqWlpRypAQxns849yQwAAGAQjswAAACjETMAAMBoxAwAADAaMQMAAIxGzAAAAKMRMwAAwGjEDAAAMBoxAwAAjEbMAAAAoxEzAADAaMQMAAAwGjEDAACM9v8BoOvuc3fyXKsAAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# your code here\n", + "sorted_roll_dice_df = roll_dice_df.sort_values(by='value')\n", + "\n", + "plt.hist(sorted_roll_dice_df['value'], bins=15, edgecolor='black')\n", + "plt.xlabel('Value')\n", + "plt.ylabel('Frequency')\n", + "plt.title('Value Distribution')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "\"\"\"\n", + "your comments here\n", + "\"\"\"\n", + "\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": 218, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3.74\n" + ] + } + ], + "source": [ + "# your code here\n", + "roll_dice_df['value'] = pd.to_numeric(roll_dice_df['value']) #convert str into numerical values\n", + "\n", + "mean_hundred_dice_rolls = calculate_mean(roll_dice_df['value'])\n", + "print(mean_hundred_dice_rolls)" + ] + }, + { + "cell_type": "code", + "execution_count": 221, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3.74\n" + ] + } + ], + "source": [ + "#Check if value with np.mean is the same :\n", + "\n", + "average = np.mean(roll_dice_df['value'])\n", + "print(average)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 3.- Now, calculate the frequency distribution.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 248, + "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": [ + "# your code here\n", + "frequency_distribution = roll_dice_df['value'].value_counts().sort_index()\n", + "print(frequency_distribution)" + ] + }, + { + "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": 249, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0.5, 1.0, 'Dice Rolls Frequency Distribution')" + ] + }, + "execution_count": 249, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjMAAAHFCAYAAAAHcXhbAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA0YklEQVR4nO3deXhU1f3H8c+QkJUkECRbgRBlU0EQQYQoO9SwlFVBQMKiRUGKIHVBfxIqEpZCUSlxT6AtIlREEBGobMrSAgooWEDZJTEKSEKEIMn5/eGTqUMWkiFkcuL79TzzPN57z73nO3cmzodzz51xGGOMAAAALFXJ0wUAAABcDcIMAACwGmEGAABYjTADAACsRpgBAABWI8wAAACrEWYAAIDVCDMAAMBqhBkAAGA1wgzKtZSUFDkcDufDz89PERERat++vRITE5Wenp5vn4SEBDkcjjKt88iRIy51VqpUSdWqVVPHjh21Zs2aqzpmSkqKc13e+Thy5MhV1zx06FCXmn/5eP/996/6+Pify891YGCg6tSpo9/97ndKTk5WdnZ2vn3atWundu3alaifffv2KSEhocTvj8v7ynvv/fnPfy7Rca5k6tSpWrZsWb71GzZskMPh0IYNG0q1P/x6eHu6AKA4kpOT1bBhQ/30009KT0/XJ598ounTp+vPf/6z3n77bXXq1MnZ9oEHHtDdd9/tkTrHjBmjgQMHKicnR//97381efJkde3aVevWrVObNm08UlNR/P39tW7dunzrGzZs6IFqKrZfnuvz58/r+PHjWrVqlR588EHNmjVLH374oWrWrOlsP2/evBL3sW/fPk2ePFnt2rVTnTp1ir2fO325Y+rUqerXr5969erlsr5Zs2baunWrbrrppjKpAxUPYQZWaNSokZo3b+5c7tu3r8aNG6c777xTffr00cGDBxUeHi5JqlmzpsuHQlmqXbu27rjjDklSbGys6tWrp7Zt2+qNN94ol2GmUqVKznqL48cff1RAQMA1rKjiKuhcDxkyRMOGDVP37t3Vr18/bdu2zbmtLD7Y815PT4eI4ODgEr0PgctxmQnWql27tmbNmqXMzEy98sorzvWFXWZauHChWrVqpSpVqqhKlSpq2rSp3njjDZc2//rXv9SxY0cFBwcrICBAsbGx+uijj9yuMS+Affvtty7rv/jiC/Xs2VPVqlWTn5+fmjZtqvnz57vVx2effabu3bsrLCxMvr6+ioqKUrdu3XTixAm365b+dx4//fRT9evXT9WqVdMNN9wgSTLGaN68eWratKn8/f1VrVo19evXT4cOHXI5hjFGM2bMUHR0tPz8/NSsWTOtWrUq32WNwi6fFXb5oTivU179e/fu1X333aeQkBCFh4dr+PDhOnv2rEvb3NxcvfTSS87nU7VqVd1xxx1avny5JGnEiBEKDQ3Vjz/+mO88dejQQTfffHNJTq2LLl266MEHH9S///1vbdq0ybm+oMtMSUlJatKkiapUqaKgoCA1bNhQEydOlPTzObznnnskSe3bt3de0sq7TNmuXTs1atRImzZtUuvWrRUQEKDhw4cX2lfeeXn++edVu3Zt+fn5qXnz5vnO89ChQwscBbr879DhcCgrK0vz58931pbXZ2Gv8/Lly9WqVSsFBAQoKChInTt31tatWwvspzivMyouwgys1rVrV3l5ebl8CBTk2Wef1aBBgxQVFaWUlBS9++67io+P19GjR51t/v73v6tLly4KDg7W/PnztXjxYoWGhuq3v/2t24Hm8OHDkqT69es71+3fv1+tW7fW3r179eKLL2rp0qW66aabNHToUM2YMaNEx8/KylLnzp317bff6q9//avWrl2rOXPmqHbt2srMzCzWMS5duuTyyMnJcdnep08f1a1bV0uWLNHLL78sSRo5cqQeffRRderUScuWLdO8efO0d+9etW7d2iW4TZ48WU888YQ6d+6sZcuW6eGHH9aDDz6o/fv3l+h5/lJJX6e+ffuqfv36euedd/Tkk09q4cKFGjdunEuboUOHauzYsWrRooXefvttLVq0SL/73e+c4Wrs2LE6c+aMFi5c6LLfvn37tH79eo0ePdrt5yNJv/vd7ySpyPfxokWLNGrUKLVt21bvvvuuli1bpnHjxikrK0uS1K1bN02dOlWS9Ne//lVbt27V1q1b1a1bN+cxUlNTNXjwYA0cOFAffPCBRo0aVWRdc+fO1Ycffqg5c+bo73//uypVqqS4uLh8gaI4tm7dKn9/f3Xt2tVZW1GXtxYuXKiePXsqODhYb731lt544w2dOXNG7dq10yeffJKvfXFeZ1RgBijHkpOTjSSzffv2QtuEh4ebG2+80bk8adIk88u39qFDh4yXl5cZNGhQocfIysoyoaGhpkePHi7rc3JyTJMmTcztt99eZJ2HDx82ksz06dPNTz/9ZC5cuGB27dplWrVqZSIjI83hw4edbQcMGGB8fX3NsWPHXI4RFxdnAgICzA8//OByzOTk5HznI+94O3bsMJLMsmXLiqyvIPHx8UZSvkdsbKwx5n/n8dlnn3XZb+vWrUaSmTVrlsv648ePG39/f/P4448bY4w5c+aM8fPzM71793Zpt3nzZiPJtG3bttDnlWf9+vVGklm/fr0xpmSvU179M2bMcGk7atQo4+fnZ3Jzc40xxmzatMlIMk8//XSR56tt27amadOmLusefvhhExwcbDIzM4vcNz4+3gQGBha6/csvvzSSzMMPP+zS3y/P0SOPPGKqVq1aZD9LlixxOV+X1y/JfPTRRwVu+2Vfee+9qKgoc/78eef6jIwMExoaajp16uTy3KKjo/Md8/K/Q2OMCQwMNPHx8fnaXv465+TkmKioKNO4cWOTk5PjbJeZmWnCwsJM69at8/VzpdcZFRsjM7CeMabI7WvXrlVOTk6R/3resmWLTp8+rfj4eJdRitzcXN19993avn2781/ARXniiSdUuXJl56WjL774QitWrHAZhl+3bp06duyoWrVquew7dOhQ/fjjjyX6V2/dunVVrVo1PfHEE3r55Ze1b9++Yu8r/Twpdfv27S6Pyy+99e3b12X5/fffl8Ph0ODBg13OVUREhJo0aeK8VLB161ZduHBBgwYNctm/devWio6OLlGdedx5nfJGPfLccsstunDhgvNOuFWrVknSFUdXxo4dq127dmnz5s2SpIyMDP3tb39TfHy8qlSp4tbzyXOl97Ak3X777frhhx9033336b333tP3339f4n6qVaumDh06FLt9nz595Ofn51wOCgpSjx49tGnTpnwjeKVp//79OnnypO6//35VqvS/j6kqVaqob9++2rZtW75Lfld6nVGxMQEYVsvKytKpU6fUuHHjQtt89913klTkpOC8SyP9+vUrtM3p06cVGBhYZD1jx47V4MGDlZ2drW3btumZZ55Rz549tXv3blWvXl2SdOrUKUVGRubbNyoqyrm9uEJCQrRx40Y9//zzmjhxos6cOaPIyEg9+OCDeuaZZ1S5cuUi969UqZLLxOqCXF7rt99+K2OMc8L15a6//nqX5xEREZGvTUHrisOd1ynvvOfx9fWV9PMdRdLP7w8vL68r1tSzZ0/VqVNHf/3rXxUbG6uUlBRlZWVd9SUmSc7LnXnvgYLcf//9unTpkl577TX17dtXubm5atGihaZMmaLOnTsXq5+C3ndFKey1u3jxos6dO6eQkJASHa+48t47hf2d5Obm6syZMy6T0a/0OqNiI8zAaitXrlROTk6R38dRo0YNSdKJEyfyjYbkue666yRJL730UqF3VRT24f1LNWvWdIaD2NhYRUREaPDgwZo0aZLmzp0r6ef/6aampubb9+TJky61FFfjxo21aNEiGWO0Z88epaSk6E9/+pP8/f315JNPluhYBbl8MvV1110nh8Ohjz/+2PmB8Ut56/I+XNLS0vK1SUtLcxmtyvvX/+Xft3L56ENpvU6/VKNGDeXk5CgtLa3ID/tKlSpp9OjRmjhxombNmqV58+apY8eOatCgQYn6K0jeROMrfa/MsGHDNGzYMGVlZWnTpk2aNGmSunfvrgMHDhRrtKuk379U2Gvn4+PjHI3y8/Mr8Hty3Bk5ypP33ins7yTve5yAPFxmgrWOHTumCRMmKCQkRCNHjiy0XZcuXeTl5aWkpKRC28TGxqpq1arat2+fmjdvXuDDx8enxDUOGjRI7dq102uvveb813fHjh21bt06Z3jJs2DBAgUEBLh9i6rD4VCTJk30l7/8RVWrVtWnn37q1nGupHv37jLG6JtvvinwPOWNkt1xxx3y8/PTP/7xD5f9t2zZ4jLxWpIz2OzZs8dlfd6HfJ5r8TrFxcVJUpHvjzwPPPCAfHx8NGjQIO3fv1+PPPJIifoqyNq1a/X666+rdevWuvPOO4u1T2BgoOLi4vT000/r4sWL2rt3r6TSH41YunSpLly44FzOzMzUihUrdNddd8nLy0vSz69denq6y8TvixcvavXq1fmO5+vrW6zaGjRooN/85jdauHChyyW4rKwsvfPOO847nIA8jMzACl988YVzfkR6ero+/vhjJScny8vLS++++65z9KUgderU0cSJE/Xcc8/p/Pnzzts39+3bp++//16TJ09WlSpV9NJLLyk+Pl6nT59Wv379FBYWpu+++067d+/Wd999V6wPu4JMnz5dLVu21HPPPafXX39dkyZN0vvvv6/27dvr2WefVWhoqP7xj39o5cqVmjFjRomG7t9//33NmzdPvXr10vXXXy9jjJYuXaoffvih2JceSio2Nla///3vNWzYMO3YsUNt2rRRYGCg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hYaGKjQ0VAkJCerbt68iIyN15MgRTZw4Udddd5169+7twaoBAEB54tEws2PHDrVv3965nDfXJT4+XklJSfr888+1YMEC/fDDD4qMjFT79u319ttvKygoyFMlAwCAcsajYaZdu3YyxhS6ffXq1WVYDQAAsJFVc2YAAAAuR5gBAABWI8wAAACrEWYAAIDVCDMAAMBqboWZw4cPl3YdAAAAbnErzNStW1ft27fX3//+d124cKG0awIAACg2t8LM7t27deutt+qxxx5TRESERo4cqf/85z+lXRsAAMAVufWleY0aNdLs2bM1Y8YMrVixQikpKbrzzjtVr149jRgxQvfff79q1KhR2rUCuMbqPLnSI/0emdbNI/0CqBiuagKwt7e3evfurcWLF2v69On6+uuvNWHCBNWsWVNDhgxRampqadUJAABQoKsKMzt27NCoUaMUGRmp2bNna8KECfr666+1bt06ffPNN+rZs2dp1QkAAFAgty4zzZ49W8nJydq/f7+6du2qBQsWqGvXrqpU6edsFBMTo1deeUUNGzYs1WIBAAAu51aYSUpK0vDhwzVs2DBFREQU2KZ27dp64403rqo4AACAK3ErzBw8ePCKbXx8fBQfH+/O4QEAAIrNrTkzycnJWrJkSb71S5Ys0fz586+6KAAAgOJyK8xMmzZN1113Xb71YWFhmjp16lUXBQAAUFxuhZmjR48qJiYm3/ro6GgdO3bsqosCAAAoLrfCTFhYmPbs2ZNv/e7du1W9evWrLgoAAKC43AozAwYM0B/+8AetX79eOTk5ysnJ0bp16zR27FgNGDCgtGsEAAAolFt3M02ZMkVHjx5Vx44d5e398yFyc3M1ZMgQ5swAAIAy5VaY8fHx0dtvv63nnntOu3fvlr+/vxo3bqzo6OjSrg8AAKBIboWZPPXr11f9+vVLqxYAAIAScyvM5OTkKCUlRR999JHS09OVm5vrsn3dunWlUhwAAMCVuBVmxo4dq5SUFHXr1k2NGjWSw+Eo7boAAACKxa0ws2jRIi1evFhdu3Yt7XoAAABKxK1bs318fFS3bt3SrgUAAKDE3Aozjz32mF544QUZY0q7HgAAgBJx6zLTJ598ovXr12vVqlW6+eabVblyZZftS5cuLZXiAAAArsStMFO1alX17t27tGsBAAAoMbfCTHJycmnXAQAA4Ba35sxI0qVLl/Sv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W291BpnL7dy5U9u3b3cZicnJydGFCxf0448/KiAgIN8+VatWVZ8+ffTmm29q2LBhyszM1DvvvONymejll1/W66+/rqNHj+r8+fO6ePGimjZt6vZz3Llzp86dO6fq1au7rD9//ry+/vprSdL48eP1wAMP6G9/+5s6deqke+65RzfccIPbfQIoPsIMgKvy5ZdfKiYmpsBt/v7+Re6bm5uryZMnq0+fPvm2+fn5FbrfiBEj1LFjRx08eFAbN26UJPXv31+StHjxYo0bN06zZs1Sq1atFBQUpJkzZ7rM07lcpUqVZIxxWffTTz+51BkZGakNGzbk27dq1aqSpISEBA0cOFArV67UqlWrNGnSJC1atEi9e/cutF8ApYMwA8Bt69at0+eff65x48YVuP2WW27R66+/rtOnTxc4OtOsWTPt37/f5dJTcbRv317XX3+9UlJStH79et17770KCgqSJH388cdq3bq1Ro0a5WyfN3pSmBo1aig1NdW5nJGRocOHD7vUmZaWJm9vb9WpU6fQ49SvX1/169fXuHHjdN999yk5OZkwA5QBJgADKJbs7GylpaXpm2++0aeffqqpU6eqZ8+e6t69u4YMGVLgPvfdd58iIiLUq1cvbd68WYcOHdI777yjrVu3SpKeffZZLViwQAkJCdq7d6++/PJLvf3223rmmWeKrMXhcGjYsGFKSkrS1q1bNWLECOe2unXraseOHVq9erUOHDig//u//9P27duLPF6HDh30t7/9TR9//LG++OILxcfHy8vLy7m9U6dOatWqlXr16qXVq1fryJEj2rJli5555hnt2LFD58+f1yOPPKINGzbo6NGj2rx5s7Zv364bb7yxuKcXwFUgzAAolg8//FCRkZGqU6eO7r77bq1fv14vvvii3nvvPZcP/l/y8fHRmjVrFBYWpq5du6px48aaNm2as/1vf/tbvf/++1q7dq1atGihO+64Q7Nnz1Z0dPQV6xk6dKjOnj2rBg0aKDY21rn+oYceUp8+fdS/f3+1bNlSp06dchmlKchTTz2lNm3aqHv37uratat69erlMt/F4XDogw8+UJs2bTR8+HDVr19fAwYM0JEjRxQeHi4vLy+dOnVKQ4YMUf369XXvvfcqLi7OZSIygGvHYS6/UAwAAGARRmYAAIDVCDMAAMBqhBkAAGA1wgwAALAaYQYAAFiNMAMAAKxGmAEAAFYjzAAAAKsRZgAAgNUIMwAAwGqEGQAAYDXCDAAAsNr/A1TGoMT9UQ1fAAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# your code here\n", + "#bins = frequency_distribution.index.to_list()\n", + "\n", + "plt.hist(frequency_distribution.index, bins=15, weights=frequency_distribution.values)\n", + "plt.xlabel('Dice Values')\n", + "plt.ylabel('Frequency')\n", + "plt.title('Dice Rolls Frequency Distribution')" + ] + }, + { + "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": 242, + "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", + "
Unnamed: 0rollvalue
0005
1116
2221
\n", + "
" + ], + "text/plain": [ + " Unnamed: 0 roll value\n", + "0 0 0 5\n", + "1 1 1 6\n", + "2 2 2 1" + ] + }, + "execution_count": 242, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# your code here\n", + "roll_the_dice_thousand_df = pd.read_csv('/Users/amandine/Desktop/Ironhack/03_Week/Descriptive-Stats/data/roll_the_dice_thousand.csv')\n", + "roll_the_dice_thousand_df.head(3)" + ] + }, + { + "cell_type": "code", + "execution_count": 244, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1 175\n", + "2 167\n", + "3 175\n", + "4 168\n", + "5 149\n", + "6 166\n", + "Name: value, dtype: int64\n" + ] + } + ], + "source": [ + "frequency_distribution_2 = roll_the_dice_thousand_df['value'].value_counts().sort_index()\n", + "print(frequency_distribution_2)" + ] + }, + { + "cell_type": "code", + "execution_count": 246, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0.5, 1.0, 'Dice Rolls Frequency Distribution')" + ] + }, + "execution_count": 246, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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aWlp2rp1qxo2bKhnnnlGVatW1dixYzVp0iQ98cQTevTRR3X69GklJCQUujzSvHlz3XXXXRo7dqyuXr2qqlWratWqVYWeuimN1+mBBx7Q448/rkmTJunHH39U165d5ebmpq+//lqenp4aMWKEtW+VKlU0YMAAzZs3T6GhoYqNjb3h/eTn51s/Ryc3N1enTp3SunXrtHz5ct19991avnx5iesPHTpUHh4eioyMVFBQkNLT05WYmChfX181b95c0m+fRyVJb7/9try9veXu7q6wsLBCl3hulIuLizp06KDRo0crPz9fU6dOVWZmpiZOnGjt07t3b73yyivq06eP/vKXv+jSpUt64403irynp2HDhtq0aZM++ugjBQUFydvbu8iRsQoVKmjatGnq16+funbtqqeeekq5ubmaPn26zp8/rylTpth1PDApJ94cDThEwVM6BZOrq6vh7+9vtGnTxpg8ebKRkZFRaJ2ingIxDMNYtGiR0bx5c8Pd3d2oXLmy0aRJE5snnQzDMDZv3mx06dLF8PPzMypVqmT86U9/Mrp06WKsWLGixDoLnl6ZPn16kcsfffRRo2LFisaxY8cMwzCM/fv3G7GxsYavr6/h6upqNGrUqFAtN/I01n//+1/jscceM+68807Dw8PD8PX1Ne677z4jOTm5xHoN4/pPCBWcx59++qnI5QsWLDBatGhheHl5GR4eHsadd95pDBgwwNi5c6e1T35+vpGYmGiEhIQYrq6uxr333mt89NFHhZ7+MQzDOHLkiNGxY0fDx8fHqFGjhjFixAhj7dq1RT5ddCOvU3H1F/XkV15envHaa68Z4eHhhqurq+Hr62u0atXK+Oijjwod96ZNmwxJxpQpU4o9d9e69sk3Dw8Po1atWkZsbKyxYMECIzc3t9A6156jhQsXGtHR0UZAQIDh6upqBAcHG7169TL27dtns96sWbOMsLAww8XFxeb906ZNG6NBgwZF1lfc01hTp041Jk6caNSsWdNwdXU1mjRpYqxfv77Q+p988onRuHFjw8PDw7jjjjuMOXPmFPlzuGfPHiMyMtLw9PS0eSLv2qexCqxevdpo0aKF4e7ubnh5eRnt2rUzvvrqK5s+N/M6w5wshnEDt/gDQBn7/YfJ3W7GjBmjefPm6fTp03aPmABwHC5jAYCD7NixQ0eOHNHcuXP11FNPEXSAcoKwAwAO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ADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1p4adLVu2KDY2VsHBwbJYLFq9erV12ZUrV/TCCy+oYcOG8vLyUnBwsAYMGKAffvjBZhtRUVGyWCw2U58+fcr4SAAAQHnl1LCTk5OjRo0aac6cOYWW/frrr9q9e7f+7//+T7t379bKlSt15MgRPfzww4X6Dh06VGlpadbprbfeKovyAQDAbaCiM3ceExOjmJiYIpf5+voqJSXFpm327Nm67777dOrUKdWqVcva7unpqcDAwFKtFQAA3J5uq3t2Lly4IIvFoipVqti0L168WNWrV1eDBg00duxYZWVllbid3NxcZWZm2kwAAMCcnDqyczMuXbqkF198UX379pWPj4+1vV+/fgoLC1NgYKAOHDigcePGae/evYVGhX4vMTFREydOLIuyAQCAk90WYefKlSvq06eP8vPzNXfuXJtlQ4cOtf47PDxcdevWVUREhHbv3q2mTZsWub1x48Zp9OjR1vnMzEyFhISUTvEAAMCpyn3YuXLlinr16qXjx49rw4YNNqM6RWnatKkqVaqko0ePFht23Nzc5ObmVhrlAgCAcqZch52CoHP06FFt3LhR1apVu+46Bw8e1JUrVxQUFFQGFQIAgPLOqWEnOztbx44ds84fP35ce/bskZ+fn4KDg/XII49o9+7d+vjjj5WXl6f09HRJkp+fn1xdXfXtt99q8eLF6ty5s6pXr65Dhw5pzJgxatKkiSIjI511WAAAoBxxatjZuXOnoqOjrfMF99HEx8crISFBa9askSQ1btzYZr2NGzcqKipKrq6u+uKLL/T6668rOztbISEh6tKliyZMmCAXF5cyOw4AAFB+OTXsREVFyTCMYpeXtEySQkJCtHnzZkeXBQAATOS2+pwdAACAm0XYAQAApkbYAQAApkbYAQAApkbYAQAApkbYAQAApkbYAQAApkbYAQAApkbYAQAApkbYAQAApkbYAQAA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devWKScnx6EFXatGjRo281OmTNGdd96pNm3aWNvc3NwUGBhYqnUAAIDbk103KBe4NvyUtsuXL+v999/X4MGDbZ4G27Rpk/z9/VWvXj0NHTpUGRkZJW4nNzdXmZmZNhMAADCnmwo7BffEXNtWVlavXq3z589r4MCB1raYmBgtXrxYGzZs0IwZM5Samqq2bdsqNze32O0kJibK19fXOoWEhJRB9QAAwBlu+jLWwIEDrV/2eenSJT399NOFnsZauXKl4yr8nfnz5ysmJkbBwcHWtt69e1v/HR4eroiICIWGhmrt2rWKi4srcjvjxo3T6NGjrfOZmZkEHgAATOqmwk58fLzNfP/+/R1aTElOnjypzz///LpBKigoSKGhoTp69Gixfdzc3Ph2dgAA/iBuKuz8/omnspaUlCR/f3916dKlxH5nz57V6dOnFRQUVEaVAQCA8uyWblAuK/n5+UpKSlJ8fLwqVvxfPsvOztbYsWO1fft2nThxQps2bVJsbKyqV6+uHj16OLFiAABQXtj1Ccpl7fPPP9epU6c0ePBgm3YXFxft379fixYt0vnz5xUUFKTo6GgtW7ZM3t7eTqoWAACUJ7dF2OnYsWORj7l7eHho/fr1TqgIAADcLm6Ly1gAAAD2IuwAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTK9dhJyEhQRaLxWYKDAy0LjcMQwkJCQoODpaHh4eioqJ08OBBJ1YMAADKm3IddiSpQYMGSktLs0779++3Lps2bZpmzpypOXPmKDU1VYGBgerQoYOysrKcWDEAAChPyn3YqVixogIDA61TjRo1JP02qjNr1iy99NJLiouLU3h4uBYuXKhff/1VS5YscXLVAACgvCj3Yefo0aMKDg5WWFiY+vTpo++++06SdPz4caWnp6tjx47Wvm5ubmrTpo22bdtW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7ixxvwBuHWEHQKlq27atGjVqVOylo+zsbLVp00Y//PCD1qxZo7179+r555+3Xvpav369+vfvrz//+c86dOiQ3nrrLSUnJ+vVV18tdp9DhgzRihUrlJ2dbW3bvHmzjh07psGDBys/P181a9bU8uXLdejQIb3yyisaP368li9fbvdxGoahLl26KD09XZ988ol27dqlpk2bql27dvrll18kSf369VPNmjWVmpqqXbt26cUXX1SlSpXs3ieAG1PR2QUAML/69etr3759RS5bsmSJfvrpJ6WmpsrPz0+SVKdOHevyV199VS+++KLi4+MlSXfccYf+9re/6fnnn9eECROK3Gbfvn01ZswYrVixQoMGDZIkLViwQK1atdI999wjSZo4caK1f1hYmLZt26bly5erV69edh3jxo0btX//fmVkZFgv0f3973/X6tWr9a9//UtPPvmkTp06pb/85S+qX7++JBV7bxEAxyLsACh1hmHIYrEUuWzPnj1q0qSJNehca9euXUpNTbUZycnLy9OlS5f066+/ytPTs9A6VapUUVxcnBYsWKBBgwYpKytLH3zwgc1lqDfffFPvvvuuTp48qYsXL+ry5ctq3Lix3ce4a9cuZWdnq1q1ajbtFy9e1LfffitJGj16tJ544gm99957at++vR599FHdeeeddu8TwI0h7AAodd98843CwsKKXObh4VHiuvn5+Zo4caLi4uIKLXN3dy92vSFDhqhdu3Y6evSoNm/eLEnq3bu3JGn58uUaNWqUZsyYoVatWsnb21vTp0+3uU/oWhUqVJBhGDZtV65csakzKChImzZtKrRulSpVJEkJCQnq27ev1q5dq3Xr1mnChAlaunSpevToUex+Adw6wg6AUrVhwwbt379fo0aNKnL5vffeq3fffVe//PJLkaM7TZs21eHDh20ubd2I6Oho3XHHHUpOTtbGjRvVq1cveXt7S5K+/PJLtW7dWsOGDbP2Lxh9KU6NGjWUlpZmnc/MzNTx48dt6kxPT1fFihVVu3btYrdTr1491atXT6NGjdJjjz2mpKQkwg5QyrhBGYDD5ObmKj09Xd9//712796tyZMnq1u3buratasGDBhQ5DqPPfaYAgMD1b17d3311Vf67rvv9MEHH2j79u2SpFdeeUWLFi1SQkKCDh48qG+++UbLli3Tyy+/XGItFotFgwYN0rx587R9+3YNGTLEuqxOnTrauXOn1q9fryNHjuj//u//lJqaWuL22rZtq/fee09ffvmlDhw4oPj4eLm4uFiXt2/fXq1atVL37t21fv16nThxQtu2bdPLL7+snTt36uLFi3r22We1adMmnTx5Ul999ZVSU1N199133+jpBWAnwg4Ah/n0008VFBSk2rVrq1OnTtq4caPeeOMNffjhhzbB4PdcXV312Wefyd/fX507d1bDhg01ZcoUa/+HHnpIH3/8sVJSUtS8eXO1bNlSM2fOVGho6HXrGThwoC5cuKC77rpLkZGR1vann35acXFx6t27t1q0aKGzZ8/ajPIUZdy4cXrwwQfVtWtXde7cWd27d7e538ZiseiTTz7Rgw8+qMGDB6tevXrq06ePTpw4oYCAALm4uOjs2bMaMGCA6tWrp169eikmJsbmRmkApcNiXHsRGgAAwEQY2QEAAKZG2AEAAKZG2AEAAKZG2AEAAKZG2AEAAKZG2AEAAKZG2AEAAKZG2AEAAKZG2AEAAKZG2AEAAKZG2AEAAKZG2AEAAKb2/wBMiz8K6cobHwAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "#bins = frequency_distribution_2.index.to_list()\n", + "\n", + "plt.hist(frequency_distribution_2.index, bins=15, weights=frequency_distribution_2.values)\n", + "plt.xlabel('Dice Values')\n", + "plt.ylabel('Frequency')\n", + "plt.title('Dice Rolls Frequency Distribution')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "\"\"\"\n", + "your comments here\n", + "\"\"\"\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Challenge 4\n", + "In the `data` folder of this repository you will find three different files with the prefix `ages_population`. These files contain information about a poll answered by a thousand people regarding their age. Each file corresponds to the poll answers in different neighbourhoods of Barcelona.\n", + "\n", + "#### 1.- Read the file `ages_population.csv`. Calculate the frequency distribution and plot it as we did during the lesson. Try to guess the range in which the mean and the standard deviation will be by looking at the plot. " + ] + }, + { + "cell_type": "code", + "execution_count": 250, + "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", + "
observation
068.0
112.0
245.0
338.0
449.0
527.0
639.0
712.0
842.0
933.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\n", + "5 27.0\n", + "6 39.0\n", + "7 12.0\n", + "8 42.0\n", + "9 33.0" + ] + }, + "execution_count": 250, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# your code here\n", + "ages_population_df = pd.read_csv('/Users/amandine/Desktop/Ironhack/03_Week/Descriptive-Stats/data/ages_population.csv')\n", + "ages_population_df.head(10)" + ] + }, + { + "cell_type": "code", + "execution_count": 251, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1.0 2\n", + "2.0 2\n", + "4.0 1\n", + "5.0 2\n", + "6.0 2\n", + " ..\n", + "69.0 1\n", + "70.0 1\n", + "71.0 1\n", + "73.0 1\n", + "82.0 1\n", + "Name: observation, Length: 72, dtype: int64\n" + ] + } + ], + "source": [ + "frequency_distribution_3 = ages_population_df['observation'].value_counts().sort_index()\n", + "print(frequency_distribution_3)" + ] + }, + { + "cell_type": "code", + "execution_count": 263, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0.5, 1.0, 'Ages population')" + ] + }, + "execution_count": 263, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.hist(frequency_distribution_3.index, bins=200, weights=frequency_distribution_3.values)\n", + "plt.xlabel('Ages')\n", + "plt.ylabel('Frequency')\n", + "plt.title('Ages population')" + ] + }, + { + "cell_type": "code", + "execution_count": 264, + "metadata": {}, + "outputs": [], + "source": [ + "#Mean is generally around the most frequent values, so ages around 40,45\n", + "#Data are pretty sparse, so we can expect the standard deviation to be pretty high -> 1,4" + ] + }, + { + "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": 265, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The average is 13.88888888888889, and the standard deviation is 11.183514101315424\n" + ] + } + ], + "source": [ + "# your code here\n", + "average = np.mean(frequency_distribution_3)\n", + "std_ages = np.std(frequency_distribution_3)\n", + "\n", + "print(f\"The average is {average}, and the standard deviation is {std_ages}\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "plt.figure(figsize=(10, 6))\n", + "plt.bar(df['Age'], df['Count'])\n", + "plt.xlabel('Age')\n", + "plt.ylabel('Count')\n", + "plt.title('Age Population Distribution')\n", + "plt.show()" + ] + }, + { + "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": "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..38d8d2c 100644 --- a/your-code/main.ipynb +++ b/your-code/main.ipynb @@ -1,522 +1,1619 @@ -{ - "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": 9, + "metadata": {}, + "outputs": [], + "source": [ + "# Libraries\n", + "import pandas as pd\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Challenge 1\n", + "#### 1.- Define a function that simulates rolling a dice 10 times. Save the information in a dataframe.\n", + "**Hint**: you can use the *choices* function from module *random* to help you with the simulation." + ] + }, + { + "cell_type": "code", + "execution_count": 67, + "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", + "
Rolls
04
12
24
32
42
55
64
74
86
96
\n", + "
" + ], + "text/plain": [ + " Rolls\n", + "0 4\n", + "1 2\n", + "2 4\n", + "3 2\n", + "4 2\n", + "5 5\n", + "6 4\n", + "7 4\n", + "8 6\n", + "9 6" + ] + }, + "execution_count": 67, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# your code here\n", + "\n", + "import random\n", + "\n", + "\n", + "def rolling_dice():\n", + " return random.choices(range(1, 7), k=10) #6 angles of the dice, rolling 10 times\n", + "\n", + "dice_rolls = rolling_dice()\n", + "\n", + "dice_df = pd.DataFrame({'Rolls': dice_rolls})\n", + "dice_df.head(10)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 2.- Plot the results sorted by value." + ] + }, + { + "cell_type": "code", + "execution_count": 206, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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AKCIcjpUKlasqD179ug///mPdu/erZycHA0YMEA9e/Z0uLgWAADgdjkdKpLk6+ur/v37q3///q6eBwAAwM7pUFm4cOEt7+/du3e+hwEAALie06EyfPhwh9tXr17V5cuX5e3tLT8/P0IFAAC4jNPv+vntt98cftLS0nT48GE1bdqUi2kBAIBL5eu7fv6qevXqmjJlSq6jLQAAALfDJaEiScWKFdOZM2dctTkAAADnr1FZvny5w23LspSUlKS33npLTZo0cdlgAAAATodK586dHW7bbDaVL19eLVu21PTp0101FwAAgPOhkpOTUxBzAAAA5OKya1QAAABczekjKiNHjszzujNmzHB28wAAAHZOh8r333+v3bt3KysrSzVq1JAkHTlyRMWKFVNUVJR9PZvN5ropAQBAkeR0qHTq1En+/v764IMPVKZMGUl/fghcv3799MADD2jUqFEuHxIAABRNTl+jMn36dMXFxdkjRZLKlCmjSZMm8a4fAADgUk6HSmpqqs6dO5dr+fnz53Xp0iWXDAUAACDlI1S6dOmifv366eOPP9apU6d06tQpffzxxxowYIC6du1aEDMCAIAiyulrVN59912NHj1avXr10tWrV//ciKenBgwYoGnTprl8QAAAUHQ5HSp+fn565513NG3aNB07dkyWZalatWoqUaJEQcwHAACKsHx/4FtSUpKSkpIUHh6uEiVKyLIsV84FAADgfKikpKSoVatWCg8PV/v27ZWUlCRJeuqpp3hrMgAAcCmnQyU2NlZeXl5KTEyUn5+fffnjjz+uVatWuXQ4AABQtDl9jcqaNWu0evVqVapUyWF59erVdeLECZcNBgAA4PQRlfT0dIcjKdckJyfLx8fHJUMBAABI+QiVZs2aaeHChfbbNptNOTk5mjZtmlq0aOHS4QAAQNHm9KmfadOm6cEHH9TOnTv1xx9/aMyYMTpw4IAuXLigLVu2FMSMAACgiHL6iEqtWrX0ww8/6L777lObNm2Unp6url276vvvv1fVqlULYkYAAFBEOXVE5erVq2rbtq3mzJmjiRMnFtRMAAAAkpw8ouLl5aX9+/fLZrMV1DwAAAB2Tp/66d27t+bNm1cQswAAADhw+mLaP/74Q3PnztXatWsVHR2d6zt+ZsyY4bLhAABA0eZ0qOzfv19RUVGSpCNHjjjcxykhAADgSnkOlZ9//llh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WbNu+dyqVKmimTNn5trXhAkT7LcvXryoZ555RkFBQQoICFDLli21d+9e+/179+5VixYt5O/vr4CAADVo0EA7d+685X4BuAahAuCGWrZsqXr16t30dEtaWpqaN2+uM2fOaPny5dq7d6/GjBljP120evVq9erVS8OGDdPBgwc1Z84cLViwQJMnT77pPgcMGKBly5YpLS3NvmzTpk366aef1L9/f+Xk5KhSpUpaunSpDh48qJdeeknjxo3T0qVL8/08LctShw4ddPbsWa1YsUK7du1SVFSUWrVqpQsXLkiSevbsqUqVKikhIUG7du3Sc889Jy8vr3zvE0De8e3JAG4qIiJCP/zwww3v++ijj/Trr78qISFBZcuWlSRVq1bNfv/kyZP13HPPqU+fPpKke+65R6+88orGjBmj8ePH33CbPXr00KhRo7Rs2TL169dPkjR//nzFxMSoVq1akqSJEyfa1w8LC9PWrVu1dOlSdevWLV/PccOGDdq3b5/Onz9vP63173//W59//rk+/vhjPfPMM0pMTNT/+3//TxEREZJ002tpALgeoQLgpizLks1mu+F9e/bs0b333muPlL/atWuXEhISHI6gZGdnKyMjQ5cvX5afn1+ux5QuXVpdu3bV/Pnz1a9fP126dEmffPKJw6mbd999V3PnztWJEyd05coV/fHHH6pfv36+n+OuXbuUlpamwMBAh+VXrlzRsWPHJEkjR47UU089pUWLFql169Z67LHHVLVq1XzvE0DeESoAburQoUMKCwu74X2+vr63fGxOTo4mTpyorl275rqvePHiN33cgAED1KpVKx09elSbNm2SJD3++OOSpKVLlyo2NlbTp09XTEyM/P39NW3aNIfrYv7Kw8NDlmU5LLt69arDnBUqVNDGjRtzPbZ06dKSpAkTJqhHjx76+uuvtXLlSo0fP16LFy9Wly5dbrpfAK5BqAC4ofXr12vfvn2KjY294f2RkZGaO3euLly4cMOjKlFRUTp8+LDD6aC8aNGihe655x4tWLBAGzZsULdu3eTv7y9J+vbbb9W4cWMNGjTIvv61ox43U758eSUlJdlvp6am6pdffnGY8+zZs/L09FSVKlVuup3w8HCFh4crNjZWTzzxhOLj4wkV4A7gYloAyszM1NmzZ3X69Gnt3r1br776qh555BF17NhRvXv3vuFjnnjiCQUHB6tz587asmWLfv75Z33yySfatm2bJOmll17SwoULNWHCBB04cECHDh3SkiVL9MILL9xyFpvNpn79+mn27Nnatm2bBgwYYL+vWrVq2rlzp1avXq0jR47oxRdfVEJCwi2317JlSy1atEjffvut9u/frz59+qhYsWL2+1u3bq2YmBh17txZq1ev1vHjx7V161a98MIL2rlzp65cuaIhQ4Zo48aNOnHihLZs2aKEhATVrFkzr79eALeBUAGgVatWqUKFCqpSpYoefvhhbdiwQW+88Ya++OILhz/q1/P29taaNWsUFBSk9u3bq27dupoyZYp9/YceekhfffWV1q5dq4YNG+r+++/XjBkzVLly5b+dp2/fvrp48aJq1KihJk2a2JcPHDhQXbt21eOPP65GjRopJSXF4ejKjYwdO1bNmjVTx44d1b59e3Xu3Nnh+hKbzaYVK1aoWbNm6t+/v8LDw9W9e3cdP35cd911l4oVK6aUlBT17t1b4eHh6tatm9q1a+dwUS+AgmOz/nryFgAAwBAcUQEAAMYiVAAAgLEIFQAAYCxCBQAAGItQAQAAxiJUAACAsQgVAABgLEIFAAAYi1ABAADGIlQAAICxCBUAAGAsQgUAABjr/wMOgTD9VcbE2gAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# your code here\n", + "sorted_rolls = sorted(dice_rolls)\n", + "\n", + "# Add labels and title\n", + "plt.xlabel('Dice Values')\n", + "plt.ylabel('Frequency of rolls')\n", + "plt.title('Sorted Dice Rolls')\n", + "\n", + "plt.yticks(range(min(sorted_rolls_series), max(sorted_rolls_series) + 1))\n", + "plt.xticks(range(min(sorted_rolls_series), max(sorted_rolls_series) + 1))\n", + "\n", + "plt.hist(sorted_rolls, bins=10, edgecolor='black')\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": 83, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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frz1119/WRcvXrR+/PFHKzQ01CpdurR18OBBZ9vu3btbXl5e1pEjR1y20bZtW8vX19c6d+6cyzZjYmIyHY+M7W3ZssWSZC1btuya9WUlIiLCkpRpCgsLsyzr/47j66+/7rLepk2bLEnWpEmTXOYnJCRYPj4+1rBhwyzLsqyzZ89a3t7eVpcuXVzabdy40ZJkNW3aNNv3lWHt2rWWJGvt2rWWZeXuPGXUP2HCBJe2/fv3t7y9va309HTLsixrw4YNliTrX//61zWPV9OmTa369eu7zHvxxRetgIAA6/z589dcNyIiwvLz88t2+U8//WRJsl588UWX/V15jF566SWrSJEi19zPokWLXI7X1fVLsr7++ussl125r4zPXpkyZaw///zTOT85OdkqVqyY1apVK5f3Vr58+UzbvPrn0LIsy8/Pz4qIiMjU9urznJaWZpUpU8aqU6eOlZaW5mx3/vx5KygoyGrcuHGm/VzvPOPORo8KjGZZ1jWXr169Wmlpadf8q/e7777TmTNnFBER4dK7kJ6erkceeUTx8fHOv1yv5dVXX1WhQoWcl3N27dqlzz77zKVrfM2aNWrZsqXKli3rsm7v3r31xx9/5Oqv1SpVqqho0aJ69dVXNW3aNO3ZsyfH60p/D/CMj493ma6+HPbYY4+5vP7888/lcDjUs2dPl2NVqlQp1atXz9l9v2nTJl28eFHh4eEu6zdu3Fjly5fPVZ0Z3DlPGb0VGerWrauLFy867xiLi4uTpOv2igwaNEg//vijNm7cKElKTk7WBx98oIiICBUuXNit95Phep9hSbr//vt17tw59ejRQ59++ql+//33XO+naNGiatGiRY7bd+3aVd7e3s7X/v7+6tixozZs2JCp5y0v7d27V8ePH9fTTz+tAgX+7yuocOHCeuyxx7R58+ZMl+Gud55xZ2MwLYyVkpKi06dPq06dOtm2+e233yTpmgNsMy5XdOvWLds2Z86ckZ+f3zXrGTRokHr27KnU1FRt3rxZr732mjp16qTt27erePHikqTTp0+rdOnSmdYtU6aMc3lOBQYGav369XrzzTc1cuRInT17VqVLl9azzz6r1157TYUKFbrm+gUKFHAZpJyVq2s9efKkLMtyDl6+WqVKlVzeR6lSpTK1yWpeTrhznjKOewYvLy9Jf995I/39+fDw8LhuTZ06dVKFChX0/vvv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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "sorted_rolls_series = pd.Series(sorted_rolls)\n", + "\n", + "# Calculate the frequency distribution\n", + "frequency_distribution = sorted_rolls_series.value_counts().sort_index()\n", + "\n", + "# Plot the frequency distribution\n", + "plt.bar(frequency_distribution.index, frequency_distribution.values)\n", + "\n", + "\n", + "# Add labels and title\n", + "plt.xlabel('Dice Values')\n", + "plt.ylabel('Frequency')\n", + "plt.title('Dice Rolls Frequency Distribution')\n", + "\n", + "plt.yticks(range(min(sorted_rolls_series), max(sorted_rolls_series) + 1))\n", + "plt.xticks(range(min(sorted_rolls_series), max(sorted_rolls_series) + 1))\n", + "\n", + "plt.show()\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "\"\"\"\n", + "your comments here\n", + "\"\"\"\n", + "#Observation :\n", + "#for frequency distribution we HAVE TO convert the results into a DataFrame ?" + ] + }, + { + "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": 216, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3.9\n" + ] + } + ], + "source": [ + "# your code here\n", + "def calculate_mean(dice_rolls):\n", + " mean = sum(dice_rolls)/len(dice_rolls)\n", + " return mean\n", + "\n", + "mean_dice_rolls = calculate_mean(dice_rolls)\n", + "print(mean_dice_rolls)" + ] + }, + { + "cell_type": "code", + "execution_count": 85, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Mean: 3.9\n" + ] + } + ], + "source": [ + "#Other method\n", + "\n", + "def mean(data):\n", + " if len(data) == 0:\n", + " return 0 # Handle the case where the data list is empty to avoid division by zero\n", + "\n", + " total_sum = 0\n", + " count = 0\n", + "\n", + " for value in data:\n", + " total_sum += value\n", + " count += 1\n", + "\n", + " mean = total_sum / count\n", + "\n", + " return mean\n", + "\n", + "result = calculate_mean(dice_rolls)\n", + "print(\"Mean:\", result)\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": 93, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Rolls\n", + "2 3\n", + "4 4\n", + "5 1\n", + "6 2\n", + "dtype: int64\n", + "Mean is 2.5\n" + ] + } + ], + "source": [ + "# your code here\n", + "frequency_distribution = dice_df.value_counts().sort_index()\n", + "print(frequency_distribution)\n", + "\n", + "mean_frequency_distribution = average(frequency_distribution) \n", + "print(f'Mean is {mean_frequency_distribution}')" + ] + }, + { + "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": 100, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Rolls\n", + "1 2\n", + "3 2\n", + "4 2\n", + "0 4\n", + "2 4\n", + "6 4\n", + "7 4\n", + "5 5\n", + "8 6\n", + "9 6\n", + "[2, 2, 2, 4, 4, 4, 4, 5, 6, 6]\n", + "Median is 4.0\n" + ] + } + ], + "source": [ + "# Method without function\n", + "\n", + "# your code here\n", + "sorted_dice_df = dice_df.sort_values(by='Rolls')\n", + "print(sorted_dice_df)\n", + "\n", + "#Convert values into list to calculate the median\n", + "values_list = sorted_dice_df['Rolls'].to_list()\n", + "print(values_list)\n", + "\n", + "len(values_list)\n", + "\n", + "median = (values_list[4] + values_list[5])/2\n", + "print(f'Median is {median}')" + ] + }, + { + "cell_type": "code", + "execution_count": 153, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Median is 4.0\n" + ] + } + ], + "source": [ + "#With function\n", + "\n", + "def median(lst):\n", + " sortedlst = sorted(lst)\n", + " lstlen = len(lst)\n", + " index = (lstlen - 1) // 2\n", + " \n", + " if (lstlen % 2):\n", + " return sortedlst[index] #if total list values is even \n", + " else:\n", + " return (sortedlst[index] + sortedlst[index + 1])/2.0 #if total list values is odd\n", + "\n", + "#values_list = [2, 2, 2, 4, 4, 4, 4, 5, 6, 6]\n", + "calculate_median = median(values_list)\n", + "print(f'Median is {calculate_median}')" + ] + }, + { + "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": 131, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "the first quartile is 2.5\n", + "the second quartile is 4.0\n", + "the third quartile is 4.75\n", + "the fourth quartile is 6\n" + ] + } + ], + "source": [ + "#Comparing with results given by quantile formula\n", + "\n", + "q1 = np.quantile(values_list, 0.25) \n", + "print(\"the first quartile is\", q1)\n", + "q2 = np.quantile(values_list, 0.50)\n", + "print(\"the second quartile is\",q2)\n", + "q3 = np.quantile(values_list, 0.75)\n", + "print(\"the third quartile is\", q3)\n", + "q4 = np.quantile(values_list, 1)\n", + "print(\"the fourth quartile is\", q4)" + ] + }, + { + "cell_type": "code", + "execution_count": 161, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Q1: 2.00, Q2: 4.0, Q3: 5.00\n" + ] + } + ], + "source": [ + "# Find quartiles \n", + "\n", + "def quartiles(lst):\n", + " sortedlst = sorted(lst)\n", + " lstlen = len(lst)\n", + " \n", + " middle = len(lst)//2\n", + "\n", + "# lower quartile\n", + " q1_lower_quartile = median(lst[:middle])\n", + "\n", + "# median\n", + " q2 = median(lst)\n", + "\n", + "# upper quartile\n", + " q3_upper_quartile = median(lst[middle:])\n", + " \n", + " return q1_lower_quartile, q2, q3_upper_quartile\n", + "\n", + "#fourth quartile\n", + " \n", + "\n", + "q1_lower_quartile, q2, q3_upper_quartile = quartiles(values_list)\n", + "print(f'Q1: {q1_lower_quartile:.2f}, Q2: {q2}, Q3: {q3_upper_quartile:.2f}')" + ] + }, + { + "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": 177, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Unnamed: 0rollvalue
0001
1112
2226
3331
4446
5555
6662
7772
8884
9991
\n", + "
" + ], + "text/plain": [ + " Unnamed: 0 roll value\n", + "0 0 0 1\n", + "1 1 1 2\n", + "2 2 2 6\n", + "3 3 3 1\n", + "4 4 4 6\n", + "5 5 5 5\n", + "6 6 6 2\n", + "7 7 7 2\n", + "8 8 8 4\n", + "9 9 9 1" + ] + }, + "execution_count": 177, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# your code here\n", + "roll_dice_df = pd.read_csv('/Users/amandine/Desktop/Ironhack/03_Week/Descriptive-Stats/data/roll_the_dice_hundred.csv')\n", + "roll_dice_df.head(10)" + ] + }, + { + "cell_type": "code", + "execution_count": 195, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \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
1212125
7272725
3030306
9292926
9090906
4446
2226
9696966
8787876
2323236
5454546
3636366
3535356
8080806
7878786
7575756
3939396
4040406
4545456
6565656
1717176
1111116
2424246
2121216
9999996
\n", + "
" + ], + "text/plain": [ + " Unnamed: 0 roll value\n", + "12 12 12 5\n", + "72 72 72 5\n", + "30 30 30 6\n", + "92 92 92 6\n", + "90 90 90 6\n", + "4 4 4 6\n", + "2 2 2 6\n", + "96 96 96 6\n", + "87 87 87 6\n", + "23 23 23 6\n", + "54 54 54 6\n", + "36 36 36 6\n", + "35 35 35 6\n", + "80 80 80 6\n", + "78 78 78 6\n", + "75 75 75 6\n", + "39 39 39 6\n", + "40 40 40 6\n", + "45 45 45 6\n", + "65 65 65 6\n", + "17 17 17 6\n", + "11 11 11 6\n", + "24 24 24 6\n", + "21 21 21 6\n", + "99 99 99 6" + ] + }, + "execution_count": 195, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sorted_roll_dice_df = roll_dice_df.sort_values(by='value')\n", + "sorted_roll_dice_df.tail(25)" + ] + }, + { + "cell_type": "code", + "execution_count": 220, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjMAAAHFCAYAAAAHcXhbAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAsXUlEQVR4nO3de1iUdf7/8dcoOAIiKQeBBKLEM1ZmB60U8xQe1kNumpmYtN/MbDX12361q59kfqXyq1mXaWUJumW6tWVWlloe2zRPmWVmVCqokAuZKCIq3L8/upxtRBSHcWY+0/NxXfd1NffcM/d7pk2fe9/3zNgsy7IEAABgqFreHgAAAKAmiBkAAGA0YgYAABiNmAEAAEYjZgAAgNGIGQAAYDRiBgAAGI2YAQAARiNmAACA0YgZwEf1799fQUFB+vXXX6vc5t5771VgYKB+/vnnaj+vzWZTRkZGzQe8RGvXrpXNZnMsderUUWRkpG699VY9/vjj2r9/f6XHZGdny2azad++fZe0r2nTpmnp0qWX9Jjz7SslJUWtW7e+pOe5mOXLl1f5/l911VUaPny4W/cH/BEQM4CPSk9P18mTJ7Vo0aLz3n/06FG9++676t27txo1auTh6Vw3bdo0bdy4UWvWrNFrr72mlJQUzZ8/Xy1atNAbb7zhtG2vXr20ceNGxcTEXPI+LjVmXN3XpVq+fLmefPLJ89737rvv6oknnris+wf8UYC3BwBwfqmpqYqNjdX8+fM1atSoSve/+eabKi0tVXp6uhemc11SUpJuueUWx+0//elPGj9+vLp27arhw4erTZs2Sk5OliRFRkYqMjLyss5TWlqqunXremRfF3P99dd7df+AqTgyA/io2rVrKy0tTdu2bdPXX39d6f6srCzFxMQoNTVV//73vzVq1Ci1bNlS9erVU1RUlO644w5t2LDhovvJyMiQzWartL6qUzxLlixR+/btFRISonr16qlHjx768ssvXX6dktSwYUO9/PLLOnPmjJ577rkLzvDll1+qd+/eioqKkt1uV2xsrHr16qUDBw5I+u00WklJiRYsWOA4pZWSkuL0fCtXrtSIESMUGRmp4OBglZWVXfCU1oYNG3TLLbcoKChIV155pZ544gmVl5c77j97Cm3t2rVOj9u3b59sNpuys7MlScOHD9eLL77omPPscnaf5zvNlJubq6FDhzpeb4sWLTRjxgxVVFRU2s///d//aebMmUpMTFS9evXUvn17bdq06RL+TQBmImYAHzZixAjZbDbNnz/faf23336rzZs3Ky0tTbVr19Yvv/wiSZo8ebI+/PBDZWVl6eqrr1ZKSkqlv2BrYtq0abrnnnvUsmVL/eMf/9Df//53HTt2TLfffru+/fbbGj33jTfeqJiYGK1fv77KbUpKStStWzf9/PPPevHFF7Vq1SrNmjVL8fHxOnbsmCRp48aNCgoKUs+ePbVx40Zt3LhRc+bMcXqeESNGKDAwUH//+9/19ttvKzAwsMp9FhQUaPDgwbr33nv13nvvaeDAgZo6darGjBlzya/xiSee0MCBAx1znl2qOrX173//Wx06dNDKlSv11FNPadmyZeratasmTJig0aNHV9r+9+/JG2+8oZKSEvXs2VNHjx695FkBk3CaCfBhTZo0UceOHfX666/r2WefdfylezZuRowYIUlq1qyZ01/Y5eXl6tGjh/bt26cXXnjBcWSiJvLy8jR58mSNHj1aL7zwgmN9t27dlJSUpCeffFJLliyp0T7i4+O1c+fOKu//7rvvVFRUpNdee019+/Z1rL/77rsd/3zLLbeoVq1aioyMdDqd9XtdunTRyy+/XK2ZioqK9N577+lPf/qTJKl79+4qLS3V3Llz9dhjjyk+Pr5azyNJ11xzjeP6pqpm+72ZM2fq4MGD+uKLL3TTTTdJknr06KHy8nK99NJLGjt2rJo2berYPjQ0VB988IFq164tSYqNjdVNN92kjz76SIMHD672nIBpODID+Lj09HQVFhZq2bJlkqQzZ87o9ddf1+23366kpCTHdi+99JLatm2runXrKiAgQIGBgfr000+1e/dut8yxYsUKnTlzRsOGDdOZM2ccS926ddWpUye3HAGyLOuC9zdp0kQNGjTQ3/72N7300ksuHw266667qr1taGioI2TOGjJkiCoqKi54FMkdVq9erZYtWzpC5qzhw4fLsiytXr3aaX2vXr0cISNJbdq0kaTzflIM8CfEDODjBg4cqLCwMGVlZUn67dMwP//8s9OFvzNnztRDDz2km2++Wf/85z+1adMmbdmyRXfeeadKS0vdMsfZj3/feOONCgwMdFqWLFmiwsLCGu8jNzdXsbGxVd4fFhamdevW6brrrtOkSZPUqlUrxcbGavLkyTp9+nS193Mpn1g63yfFoqOjJf121OZyKioqOu+sZ9+jc/cfHh7udNtut0uS2/43APgqTjMBPi4oKEj33HOP5s2bp/z8fM2fP1+hoaH685//7Njm9ddfV0pKiubOnev02LPXkVxI3bp1JUllZWWOv/wkVYqTiIgISdLbb7+thIQEl19PVTZv3qyCgoKLfjorOTlZixcvlmVZ2rlzp7KzszVlyhQFBQXpf/7nf6q1r/Nd8FyV832HT0FBgaT/xMPv38Pfq2nghYeHKz8/v9L6Q4cOSfrPvxPgj44jM4AB0tPTVV5erunTp2v58uUaPHiwgoODHffbbDanEJGknTt3auPGjRd97quuusqx/e+9//77Trd79OihgIAA/fjjj2rXrt15F1f98ssvGjlypAIDA/Xoo49W6zE2m03XXnutnnvuOV1xxRXavn274z673e62oxHHjh1znOI7a9GiRapVq5Y6duwoqer38NzHnZ1Nqt7Rki5duujbb791em2StHDhQtlsNnXu3LnarwPwZxyZAQzQrl07tWnTRrNmzZJlWZWOXvTu3VtPPfWUJk+erE6dOmnPnj2aMmWKEhMTdebMmQs+d8+ePdWwYUOlp6drypQpCggIUHZ2tvLy8py2u+qqqzRlyhQ9/vjj+umnn3TnnXeqQYMG+vnnn7V582aFhIRU+WVwv5eTk6NNmzapoqJCRUVF+uKLL/Taa6+puLhYCxcuVKtWrap87AcffKA5c+aoX79+uvrqq2VZlt555x39+uuv6tatm2O75ORkrV27Vu+//75iYmIUGhqqZs2aXXS28wkPD9dDDz2k3NxcNW3aVMuXL9e8efP00EMPOS7+jY6OVteuXZWZmakGDRooISFBn376qd55551Kz3f2O3SeeeYZpaamqnbt2mrTpo3q1KlTadtHH31UCxcuVK9evTRlyhQlJCToww8/1Jw5c/TQQw85XfwL/KFZAIzw/PPPW5Ksli1bVrqvrKzMmjBhgnXllVdadevWtdq2bWstXbrUSktLsxISEpy2lWRNnjzZad3mzZutDh06WCEhIdaVV15pTZ482Xr11VctSdbevXudtl26dKnVuXNnq379+pbdbrcSEhKsgQMHWp988skF51+zZo0lybEEBARY4eHhVvv27a1JkyZZ+/btq/SYrKwspxm+++4765577rGuueYaKygoyAoLC7NuuukmKzs72+lx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Uszk5ORcdJs6deooLS3NlacHAACoNpe+ZyYrK0tvvfVWpfVvvfWWFixYUOOhAAAAqsulmHn66acVERFRaX1UVJSmTZtW46EAAACqy6WY2b9/vxITEyutT0hIUG5ubo2HAgAAqC6XYiYqKko7d+6stP6rr75SeHh4jYcCAACoLpdiZvDgwfrrX/+qNWvWqLy8XOXl5Vq9erXGjBmjwYMHu3tGAACAKrn0aaapU6dq//796tKliwICfnuKiooKDRs2jGtmAACAR7kUM3Xq1NGSJUv01FNP6auvvlJQUJCSk5OVkJDg7vkAAAAuqEY/Z9C0aVM1bdrUXbMAAABcMpdipry8XNnZ2fr00091+PBhVVRUON2/evVqtwwHAABwMS7FzJgxY5Sdna1evXqpdevWstls7p4LAACgWlyKmcWLF+sf//iHevbs6e55AAAALolLH82uU6eOmjRp4u5ZAAAALplLMTN+/Hg9//zzsizL3fMAAABcEpdOM3322Wdas2aNPvroI7Vq1UqBgYFO97/zzjtuGQ4AAOBiXIqZK664Qv3793f3LAAAAJfMpZjJyspy9xwAAAAucemaGUk6c+aMPvnkE7388ss6duyYJOnQoUM6fvy424YDAAC4GJeOzOzfv1933nmncnNzVVZWpm7duik0NFTPPvusTp48qZdeesndcwIAAJyXS0dmxowZo3bt2unIkSMKCgpyrO/fv78+/fRTtw0HAABwMS5/mulf//qX6tSp47Q+ISFBBw8edMtgAAAA1eHSkZmKigqVl5dXWn/gwAGFhobWeCgAAIDqcilmunXrplmzZjlu22w2HT9+XJMnT+YnDgAAgEe5dJrpueeeU+fOndWyZUudPHlSQ4YMUU5OjiIiIvTmm2+6e0YAAIAquRQzsbGx2rFjh958801t375dFRUVSk9P17333ut0QTAAAMDl5lLMSFJQUJBGjBihESNGuHMe4+Tm5qqwsNDj+42IiFB8fLzH9wsApuDP5z8Ol2Jm4cKFF7x/2LBhLg1jmtzcXDVr3kInS094fN91g4K157vd/AcDAOfBn89/LC7FzJgxY5xunz59WidOnFCdOnUUHBz8h4mZwsJCnSw9ofDe4xUYHuex/Z4uylPRBzNUWFjIfywAcB78+fzH4lLMHDlypNK6nJwcPfTQQ/rv//7vGg9lmsDwONmjm3h7DADA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ZiIiIlS7du1KR2EOHz5c6WjNWRMnTtS4ceMctysqKvTLL78oPDxcNpvNrfMVFxcrLi5OeXl5ql+/vlufG//B++wZvM+ewfvsGbzPnnE532fLsnTs2DHFxsZedFufjpk6derohhtu0KpVq9S/f3/H+lWrVqlv377nfYzdbpfdbndad8UVV1zOMVW/fn3+Y/EA3mfP4H32DN5nz+B99ozL9T6HhYVVazufjhlJGjdunO677z61a9dO7du31yuvvKLc3FyNHDnS26MBAAAf4PMxM2jQIBUVFWnKlCnKz89X69attXz5ciUkJHh7NAAA4AN8PmYkadSoURo1apS3x6jEbrdr8uTJlU5rwb14nz2D99kzeJ89g/fZM3zlfbZZVnU+8wQAAOCbfPpL8wAAAC6GmAEAAEYjZgAAgNGIGQAAYDRixgXr169Xnz59FBsbK5vNpqVLl3p7JL+TmZmpG2+8UaGhoYqKilK/fv0cvz0C95o7d67atGnj+NKr9u3b66OPPvL2WH4tMzNTNptNY8eO9fYoficjI0M2m81piY6O9vZYfungwYMaOnSowsPDFRwcrOuuu07btm3zyizEjAtKSkp07bXXavbs2d4exW+tW7dODz/8sDZt2qRVq1bpzJkz6t69u0pKSrw9mt9p3Lixnn76aW3dulVbt27VHXfcob59+2rXrl3eHs0vbdmyRa+88oratGnj7VH8VqtWrZSfn+9Yvv76a2+P5HeOHDmiW2+9VYGBgfroo4/07bffasaMGZf9G/erYsT3zPia1NRUpaamensMv/bxxx873c7KylJUVJS2bdumjh07emkq/9SnTx+n2//7v/+ruXPnatOmTWrVqpWXpvJPx48f17333qt58+Zp6tSp3h7HbwUEBHA05jJ75plnFBcXp6ysLMe6q666ymvzcGQGRjh69KgkqWHDhl6exL+Vl5dr8eLFKikpUfv27b09jt95+OGH1atXL3Xt2tXbo/i1nJwcxcbGKjExUYMHD9ZPP/3k7ZH8zrJly9SuXTv9+c9/VlRUlK6//nrNmzfPa/MQM/B5lmVp3Lhxuu2229S6dWtvj+OXvv76a9WrV092u10jR47Uu+++q5YtW3p7LL+yePFibd++XZmZmd4exa/dfPPNWrhwoVasWKF58+apoKBAHTp0UFFRkbdH8ys//fST5s6dq6SkJK1YsUIjR47UX//6Vy1cuNAr83CaCT5v9OjR2rlzpz777DNvj+K3mjVrph07dujXX3/VP//5T6WlpWndunUEjZvk5eVpzJgxWrlyperWrevtcfza7y8BSE5OVvv27XXNNddowYIFGjdunBcn8y8VFRVq166dpk2bJkm6/vrrtWvXLs2dO1fDhg3z+DwcmYFPe+SRR7Rs2TKtWbNGjRs39vY4fqtOnTpq0qSJ2rVrp8zMTF177bV6/vnnvT2W39i2bZsOHz6sG264QQEBAQoICNC6dev0wgsvKCAgQOXl5d4e0W+FhIQoOTlZOTk53h7Fr8TExFT6PzstWrRQbm6uV+bhyAx8kmVZeuSRR/Tuu+9q7dq1SkxM9PZIfyiWZamsrMzbY/iNLl26VPpEzf3336/mzZvrb3/7m2rXru2lyfxfWVmZdu/erdtvv93bo/iVW2+9tdLXZXz//fdKSEjwyjzEjAuOHz+uH374wXF779692rFjhxo2bKj4+HgvTuY/Hn74YS1atEjvvfeeQkNDVVBQIEkKCwtTUFCQl6fzL5MmTVJqaqri4uJ07NgxLV68WGvXrq30iTK4LjQ0tNL1XiEhIQoPD+c6MDebMGGC+vTpo/j4eB0+fFhTp05VcXGx0tLSvD2aX3n00UfVoUMHTZs2TXfffbc2b96sV155Ra+88op3BrJwydasWWNJqrSkpaV5ezS/cb73V5KVlZXl7dH8zogRI6yEhASrTp06VmRkpNWlSxdr5cqV3h7L73Xq1MkaM2aMt8fwO4MGDbJiYmKswMBAKzY21howYIC1a9cub4/ll95//32rdevWlt1ut5o3b2698sorXpvFZlmW5Z2MAgAAqDkuAAYAAEYjZgAAgNGIGQAAYDRiBgAAGI2YAQAARiNmAACA0YgZAABgNGIGgJFSUlI0duxYb48BwAcQMwA8rk+fPuratet579u4caNsNpu2b9/u4akAmIqYAeBx6enpWr16tfbv31/pvvnz5+u6665T27ZtvTAZABMRMwA8rnfv3oqKilJ2drbT+hMnTmjJkiXq16+f7rnnHjVu3FjBwcFKTk7Wm2++ecHntNlsWrp0qdO6K664wmkfBw8e1KBBg9SgQQOFh4erb9++2rdvn3teFACvIWYAeFxAQICGDRum7Oxs/f7n4d566y2dOnVKDzzwgG644QZ98MEH+uabb/Rf//Vfuu+++/TFF1+4vM8TJ06oc+fOqlevntavX6/PPvtM9erV05133qlTp06542UB8BJiBoBXjBgxQvv27dPatWsd6+bPn68BAwboyiuv1IQJE3Tdddfp6quv1iOPPKIePXrorbfecnl/ixcvVq1atfTqq68qOTlZLVq0UFZWlnJzc51mAGCeAG8PAOCPqXnz5urQoYPmz5+vzp0768cff9SGDRu0cuVKlZeX6+mnn9aSJUt08OBBlZWVqaysTCEhIS7vb9u2bfrhhx8UGhrqtP7kyZP68ccfa/pyAHgRMQPAa9LT0zV69Gi9+OKLysrKUkJCgrp06aLp06frueee06xZs5ScnKyQkBCNHTv2gqeDbDab0ykrSTp9+rTjnysqKnTDDTfojTfeqPTYyMhI970oAB5HzADwmrvvvltjxozRokWLtGDBAv3lL3+RzWbThg0b1LdvXw0dOlTSbyGSk5OjFi1aVPlckZGRys/Pd9zOycnRiRMnHLfbtm2rJUuWKCoqSvXr1798LwqAx3HNDACvqVevngYNGqRJkybp0KFDGj58uCSpSZMmWrVqlT7//HPt3r1bDz74oAoKCi74XHfccYdmz56t7du3a+vWrRo5cqQCAwMd9997772KiIhQ3759tWHDBu3du1fr1q3TmDFjdODAgcv5MgFcZsQMAK9KT0/XkSNH1LVrV8XHx0uSnnjiCbVt21Y9evRQSkqKoqOj1a9fvws+z4wZMxQXF6eOHTtqyJAhmjBhgoKDgx33BwcHa/369YqPj9eAAQPUokULjRgxQqWlpRypAQxns849yQwAAGAQjswAAACjETMAAMBoxAwAADAaMQMAAIxGzAAAAKMRMwAAwGjEDAAAMBoxAwAAjEbMAAAAoxEzAADAaMQMAAAwGjEDAACM9v8BoOvuc3fyXKsAAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# your code here\n", + "sorted_roll_dice_df = roll_dice_df.sort_values(by='value')\n", + "\n", + "plt.hist(sorted_roll_dice_df['value'], bins=15, edgecolor='black')\n", + "plt.xlabel('Value')\n", + "plt.ylabel('Frequency')\n", + "plt.title('Value Distribution')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "\"\"\"\n", + "your comments here\n", + "\"\"\"\n", + "\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": 218, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3.74\n" + ] + } + ], + "source": [ + "# your code here\n", + "roll_dice_df['value'] = pd.to_numeric(roll_dice_df['value']) #convert str into numerical values\n", + "\n", + "mean_hundred_dice_rolls = calculate_mean(roll_dice_df['value'])\n", + "print(mean_hundred_dice_rolls)" + ] + }, + { + "cell_type": "code", + "execution_count": 221, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3.74\n" + ] + } + ], + "source": [ + "#Check if value with np.mean is the same :\n", + "\n", + "average = np.mean(roll_dice_df['value'])\n", + "print(average)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 3.- Now, calculate the frequency distribution.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 248, + "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": [ + "# your code here\n", + "frequency_distribution = roll_dice_df['value'].value_counts().sort_index()\n", + "print(frequency_distribution)" + ] + }, + { + "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": 249, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0.5, 1.0, 'Dice Rolls Frequency Distribution')" + ] + }, + "execution_count": 249, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjMAAAHFCAYAAAAHcXhbAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA0YklEQVR4nO3deXhU1f3H8c+QkJUkECRbgRBlU0EQQYQoO9SwlFVBQMKiRUGKIHVBfxIqEpZCUSlxT6AtIlREEBGobMrSAgooWEDZJTEKSEKEIMn5/eGTqUMWkiFkcuL79TzzPN57z73nO3cmzodzz51xGGOMAAAALFXJ0wUAAABcDcIMAACwGmEGAABYjTADAACsRpgBAABWI8wAAACrEWYAAIDVCDMAAMBqhBkAAGA1wgzKtZSUFDkcDufDz89PERERat++vRITE5Wenp5vn4SEBDkcjjKt88iRIy51VqpUSdWqVVPHjh21Zs2aqzpmSkqKc13e+Thy5MhV1zx06FCXmn/5eP/996/6+Pify891YGCg6tSpo9/97ndKTk5WdnZ2vn3atWundu3alaifffv2KSEhocTvj8v7ynvv/fnPfy7Rca5k6tSpWrZsWb71GzZskMPh0IYNG0q1P/x6eHu6AKA4kpOT1bBhQ/30009KT0/XJ598ounTp+vPf/6z3n77bXXq1MnZ9oEHHtDdd9/tkTrHjBmjgQMHKicnR//97381efJkde3aVevWrVObNm08UlNR/P39tW7dunzrGzZs6IFqKrZfnuvz58/r+PHjWrVqlR588EHNmjVLH374oWrWrOlsP2/evBL3sW/fPk2ePFnt2rVTnTp1ir2fO325Y+rUqerXr5969erlsr5Zs2baunWrbrrppjKpAxUPYQZWaNSokZo3b+5c7tu3r8aNG6c777xTffr00cGDBxUeHi5JqlmzpsuHQlmqXbu27rjjDklSbGys6tWrp7Zt2+qNN94ol2GmUqVKznqL48cff1RAQMA1rKjiKuhcDxkyRMOGDVP37t3Vr18/bdu2zbmtLD7Y815PT4eI4ODgEr0PgctxmQnWql27tmbNmqXMzEy98sorzvWFXWZauHChWrVqpSpVqqhKlSpq2rSp3njjDZc2//rXv9SxY0cFBwcrICBAsbGx+uijj9yuMS+Affvtty7rv/jiC/Xs2VPVqlWTn5+fmjZtqvnz57vVx2effabu3bsrLCxMvr6+ioqKUrdu3XTixAm365b+dx4//fRT9evXT9WqVdMNN9wgSTLGaN68eWratKn8/f1VrVo19evXT4cOHXI5hjFGM2bMUHR0tPz8/NSsWTOtWrUq32WNwi6fFXb5oTivU179e/fu1X333aeQkBCFh4dr+PDhOnv2rEvb3NxcvfTSS87nU7VqVd1xxx1avny5JGnEiBEKDQ3Vjz/+mO88dejQQTfffHNJTq2LLl266MEHH9S///1vbdq0ybm+oMtMSUlJatKkiapUqaKgoCA1bNhQEydOlPTzObznnnskSe3bt3de0sq7TNmuXTs1atRImzZtUuvWrRUQEKDhw4cX2lfeeXn++edVu3Zt+fn5qXnz5vnO89ChQwscBbr879DhcCgrK0vz58931pbXZ2Gv8/Lly9WqVSsFBAQoKChInTt31tatWwvspzivMyouwgys1rVrV3l5ebl8CBTk2Wef1aBBgxQVFaWUlBS9++67io+P19GjR51t/v73v6tLly4KDg7W/PnztXjxYoWGhuq3v/2t24Hm8OHDkqT69es71+3fv1+tW7fW3r179eKLL2rp0qW66aabNHToUM2YMaNEx8/KylLnzp317bff6q9//avWrl2rOXPmqHbt2srMzCzWMS5duuTyyMnJcdnep08f1a1bV0uWLNHLL78sSRo5cqQeffRRderUScuWLdO8efO0d+9etW7d2iW4TZ48WU888YQ6d+6sZcuW6eGHH9aDDz6o/fv3l+h5/lJJX6e+ffuqfv36euedd/Tkk09q4cKFGjdunEuboUOHauzYsWrRooXefvttLVq0SL/73e+c4Wrs2LE6c+aMFi5c6LLfvn37tH79eo0ePdrt5yNJv/vd7ySpyPfxokWLNGrUKLVt21bvvvuuli1bpnHjxikrK0uS1K1bN02dOlWS9Ne//lVbt27V1q1b1a1bN+cxUlNTNXjwYA0cOFAffPCBRo0aVWRdc+fO1Ycffqg5c+bo73//uypVqqS4uLh8gaI4tm7dKn9/f3Xt2tVZW1GXtxYuXKiePXsqODhYb731lt544w2dOXNG7dq10yeffJKvfXFeZ1RgBijHkpOTjSSzffv2QtuEh4ebG2+80bk8adIk88u39qFDh4yXl5cZNGhQocfIysoyoaGhpkePHi7rc3JyTJMmTcztt99eZJ2HDx82ksz06dPNTz/9ZC5cuGB27dplWrVqZSIjI83hw4edbQcMGGB8fX3NsWPHXI4RFxdnAgICzA8//OByzOTk5HznI+94O3bsMJLMsmXLiqyvIPHx8UZSvkdsbKwx5n/n8dlnn3XZb+vWrUaSmTVrlsv648ePG39/f/P4448bY4w5c+aM8fPzM71793Zpt3nzZiPJtG3bttDnlWf9+vVGklm/fr0xpmSvU179M2bMcGk7atQo4+fnZ3Jzc40xxmzatMlIMk8//XSR56tt27amadOmLusefvhhExwcbDIzM4vcNz4+3gQGBha6/csvvzSSzMMPP+zS3y/P0SOPPGKqVq1aZD9LlixxOV+X1y/JfPTRRwVu+2Vfee+9qKgoc/78eef6jIwMExoaajp16uTy3KKjo/Md8/K/Q2OMCQwMNPHx8fnaXv465+TkmKioKNO4cWOTk5PjbJeZmWnCwsJM69at8/VzpdcZFRsjM7CeMabI7WvXrlVOTk6R/3resmWLTp8+rfj4eJdRitzcXN19993avn2781/ARXniiSdUuXJl56WjL774QitWrHAZhl+3bp06duyoWrVquew7dOhQ/fjjjyX6V2/dunVVrVo1PfHEE3r55Ze1b9++Yu8r/Twpdfv27S6Pyy+99e3b12X5/fffl8Ph0ODBg13OVUREhJo0aeK8VLB161ZduHBBgwYNctm/devWio6OLlGdedx5nfJGPfLccsstunDhgvNOuFWrVknSFUdXxo4dq127dmnz5s2SpIyMDP3tb39TfHy8qlSp4tbzyXOl97Ak3X777frhhx9033336b333tP3339f4n6qVaumDh06FLt9nz595Ofn51wOCgpSjx49tGnTpnwjeKVp//79OnnypO6//35VqvS/j6kqVaqob9++2rZtW75Lfld6nVGxMQEYVsvKytKpU6fUuHHjQtt89913klTkpOC8SyP9+vUrtM3p06cVGBhYZD1jx47V4MGDlZ2drW3btumZZ55Rz549tXv3blWvXl2SdOrUKUVGRubbNyoqyrm9uEJCQrRx40Y9//zzmjhxos6cOaPIyEg9+OCDeuaZZ1S5cuUi969UqZLLxOqCXF7rt99+K2OMc8L15a6//nqX5xEREZGvTUHrisOd1ynvvOfx9fWV9PMdRdLP7w8vL68r1tSzZ0/VqVNHf/3rXxUbG6uUlBRlZWVd9SUmSc7LnXnvgYLcf//9unTpkl577TX17dtXubm5atGihaZMmaLOnTsXq5+C3ndFKey1u3jxos6dO6eQkJASHa+48t47hf2d5Obm6syZMy6T0a/0OqNiI8zAaitXrlROTk6R38dRo0YNSdKJEyfyjYbkue666yRJL730UqF3VRT24f1LNWvWdIaD2NhYRUREaPDgwZo0aZLmzp0r6ef/6aampubb9+TJky61FFfjxo21aNEiGWO0Z88epaSk6E9/+pP8/f315JNPluhYBbl8MvV1110nh8Ohjz/+2PmB8Ut56/I+XNLS0vK1SUtLcxmtyvvX/+Xft3L56ENpvU6/VKNGDeXk5CgtLa3ID/tKlSpp9OjRmjhxombNmqV58+apY8eOatCgQYn6K0jeROMrfa/MsGHDNGzYMGVlZWnTpk2aNGmSunfvrgMHDhRrtKuk379U2Gvn4+PjHI3y8/Mr8Hty3Bk5ypP33ins7yTve5yAPFxmgrWOHTumCRMmKCQkRCNHjiy0XZcuXeTl5aWkpKRC28TGxqpq1arat2+fmjdvXuDDx8enxDUOGjRI7dq102uvveb813fHjh21bt06Z3jJs2DBAgUEBLh9i6rD4VCTJk30l7/8RVWrVtWnn37q1nGupHv37jLG6JtvvinwPOWNkt1xxx3y8/PTP/7xD5f9t2zZ4jLxWpIz2OzZs8dlfd6HfJ5r8TrFxcVJUpHvjzwPPPCAfHx8NGjQIO3fv1+PPPJIifoqyNq1a/X666+rdevWuvPOO4u1T2BgoOLi4vT000/r4sWL2rt3r6TSH41YunSpLly44FzOzMzUihUrdNddd8nLy0vSz69denq6y8TvixcvavXq1fmO5+vrW6zaGjRooN/85jdauHChyyW4rKwsvfPOO847nIA8jMzACl988YVzfkR6ero+/vhjJScny8vLS++++65z9KUgderU0cSJE/Xcc8/p/Pnzzts39+3bp++//16TJ09WlSpV9NJLLyk+Pl6nT59Wv379FBYWpu+++067d+/Wd999V6wPu4JMnz5dLVu21HPPPafXX39dkyZN0vvvv6/27dvr2WefVWhoqP7xj39o5cqVmjFjRomG7t9//33NmzdPvXr10vXXXy9jjJYuXaoffvih2JceSio2Nla///3vNWzYMO3YsUNt2rRRYGCg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hYaGKjQ0VAkJCerbt68iIyN15MgRTZw4Udddd5169+7twaoBAEB54tEws2PHDrVv3965nDfXJT4+XklJSfr888+1YMEC/fDDD4qMjFT79u319ttvKygoyFMlAwCAcsajYaZdu3YyxhS6ffXq1WVYDQAAsJFVc2YAAAAuR5gBAABWI8wAAACrEWYAAIDVCDMAAMBqboWZw4cPl3YdAAAAbnErzNStW1ft27fX3//+d124cKG0awIAACg2t8LM7t27deutt+qxxx5TRESERo4cqf/85z+lXRsAAMAVufWleY0aNdLs2bM1Y8YMrVixQikpKbrzzjtVr149jRgxQvfff79q1KhR2rUCuMbqPLnSI/0emdbNI/0CqBiuagKwt7e3evfurcWLF2v69On6+uuvNWHCBNWsWVNDhgxRampqadUJAABQoKsKMzt27NCoUaMUGRmp2bNna8KECfr666+1bt06ffPNN+rZs2dp1QkAAFAgty4zzZ49W8nJydq/f7+6du2qBQsWqGvXrqpU6edsFBMTo1deeUUNGzYs1WIBAAAu51aYSUpK0vDhwzVs2DBFREQU2KZ27dp64403rqo4AACAK3ErzBw8ePCKbXx8fBQfH+/O4QEAAIrNrTkzycnJWrJkSb71S5Ys0fz586+6KAAAgOJyK8xMmzZN1113Xb71YWFhmjp16lUXBQAAUFxuhZmjR48qJiYm3/ro6GgdO3bsqosCAAAoLrfCTFhYmPbs2ZNv/e7du1W9evWrLgoAAKC43AozAwYM0B/+8AetX79eOTk5ysnJ0bp16zR27FgNGDCgtGsEAAAolFt3M02ZMkVHjx5Vx44d5e398yFyc3M1ZMgQ5swAAIAy5VaY8fHx0dtvv63nnntOu3fvlr+/vxo3bqzo6OjSrg8AAKBIboWZPPXr11f9+vVLqxYAAIAScyvM5OTkKCUlRR999JHS09OVm5vrsn3dunWlUhwAAMCVuBVmxo4dq5SUFHXr1k2NGjWSw+Eo7boAAACKxa0ws2jRIi1evFhdu3Yt7XoAAABKxK1bs318fFS3bt3SrgUAAKDE3Aozjz32mF544QUZY0q7HgAAgBJx6zLTJ598ovXr12vVqlW6+eabVblyZZftS5cuLZXiAAAArsStMFO1alX17t27tGsBAAAoMbfCTHJycmnXAQAA4Ba35sxI0qVLl/Sv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W291BpnL7dy5U9u3b3cZicnJydGFCxf0448/KiAgIN8+VatWVZ8+ffTmm29q2LBhyszM1DvvvONymejll1/W66+/rqNHj+r8+fO6ePGimjZt6vZz3Llzp86dO6fq1au7rD9//ry+/vprSdL48eP1wAMP6G9/+5s6deqke+65RzfccIPbfQIoPsIMgKvy5ZdfKiYmpsBt/v7+Re6bm5uryZMnq0+fPvm2+fn5FbrfiBEj1LFjRx08eFAbN26UJPXv31+StHjxYo0bN06zZs1Sq1atFBQUpJkzZ7rM07lcpUqVZIxxWffTTz+51BkZGakNGzbk27dq1aqSpISEBA0cOFArV67UqlWrNGnSJC1atEi9e/cutF8ApYMwA8Bt69at0+eff65x48YVuP2WW27R66+/rtOnTxc4OtOsWTPt37/f5dJTcbRv317XX3+9UlJStH79et17770KCgqSJH388cdq3bq1Ro0a5WyfN3pSmBo1aig1NdW5nJGRocOHD7vUmZaWJm9vb9WpU6fQ49SvX1/169fXuHHjdN999yk5OZkwA5QBJgADKJbs7GylpaXpm2++0aeffqqpU6eqZ8+e6t69u4YMGVLgPvfdd58iIiLUq1cvbd68WYcOHdI777yjrVu3SpKeffZZLViwQAkJCdq7d6++/PJLvf3223rmmWeKrMXhcGjYsGFKSkrS1q1bNWLECOe2unXraseOHVq9erUOHDig//u//9P27duLPF6HDh30t7/9TR9//LG++OILxcfHy8vLy7m9U6dOatWqlXr16qXVq1fryJEj2rJli5555hnt2LFD58+f1yOPPKINGzbo6NGj2rx5s7Zv364bb7yxuKcXwFUgzAAolg8//FCRkZGqU6eO7r77bq1fv14vvvii3nvvPZcP/l/y8fHRmjVrFBYWpq5du6px48aaNm2as/1vf/tbvf/++1q7dq1atGihO+64Q7Nnz1Z0dPQV6xk6dKjOnj2rBg0aKDY21rn+oYceUp8+fdS/f3+1bNlSp06dchmlKchTTz2lNm3aqHv37uratat69erlMt/F4XDogw8+UJs2bTR8+HDVr19fAwYM0JEjRxQeHi4vLy+dOnVKQ4YMUf369XXvvfcqLi7OZSIygGvHYS6/UAwAAGARRmYAAIDVCDMAAMBqhBkAAGA1wgwAALAaYQYAAFiNMAMAAKxGmAEAAFYjzAAAAKsRZgAAgNUIMwAAwGqEGQAAYDXCDAAAsNr/A1TGoMT9UQ1fAAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# your code here\n", + "#bins = frequency_distribution.index.to_list()\n", + "\n", + "plt.hist(frequency_distribution.index, bins=15, weights=frequency_distribution.values)\n", + "plt.xlabel('Dice Values')\n", + "plt.ylabel('Frequency')\n", + "plt.title('Dice Rolls Frequency Distribution')" + ] + }, + { + "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": 242, + "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", + "
Unnamed: 0rollvalue
0005
1116
2221
\n", + "
" + ], + "text/plain": [ + " Unnamed: 0 roll value\n", + "0 0 0 5\n", + "1 1 1 6\n", + "2 2 2 1" + ] + }, + "execution_count": 242, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# your code here\n", + "roll_the_dice_thousand_df = pd.read_csv('/Users/amandine/Desktop/Ironhack/03_Week/Descriptive-Stats/data/roll_the_dice_thousand.csv')\n", + "roll_the_dice_thousand_df.head(3)" + ] + }, + { + "cell_type": "code", + "execution_count": 244, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1 175\n", + "2 167\n", + "3 175\n", + "4 168\n", + "5 149\n", + "6 166\n", + "Name: value, dtype: int64\n" + ] + } + ], + "source": [ + "frequency_distribution_2 = roll_the_dice_thousand_df['value'].value_counts().sort_index()\n", + "print(frequency_distribution_2)" + ] + }, + { + "cell_type": "code", + "execution_count": 246, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0.5, 1.0, 'Dice Rolls Frequency Distribution')" + ] + }, + "execution_count": 246, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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aWlp2rp1qxo2bKhnnnlGVatW1dixYzVp0iQ98cQTevTRR3X69GklJCQUujzSvHlz3XXXXRo7dqyuXr2qqlWratWqVYWeuimN1+mBBx7Q448/rkmTJunHH39U165d5ebmpq+//lqenp4aMWKEtW+VKlU0YMAAzZs3T6GhoYqNjb3h/eTn51s/Ryc3N1enTp3SunXrtHz5ct19991avnx5iesPHTpUHh4eioyMVFBQkNLT05WYmChfX181b95c0m+fRyVJb7/9try9veXu7q6wsLBCl3hulIuLizp06KDRo0crPz9fU6dOVWZmpiZOnGjt07t3b73yyivq06eP/vKXv+jSpUt64403irynp2HDhtq0aZM++ugjBQUFydvbu8iRsQoVKmjatGnq16+funbtqqeeekq5ubmaPn26zp8/rylTpth1PDApJ94cDThEwVM6BZOrq6vh7+9vtGnTxpg8ebKRkZFRaJ2ingIxDMNYtGiR0bx5c8Pd3d2oXLmy0aRJE5snnQzDMDZv3mx06dLF8PPzMypVqmT86U9/Mrp06WKsWLGixDoLnl6ZPn16kcsfffRRo2LFisaxY8cMwzCM/fv3G7GxsYavr6/h6upqNGrUqFAtN/I01n//+1/jscceM+68807Dw8PD8PX1Ne677z4jOTm5xHoN4/pPCBWcx59++qnI5QsWLDBatGhheHl5GR4eHsadd95pDBgwwNi5c6e1T35+vpGYmGiEhIQYrq6uxr333mt89NFHhZ7+MQzDOHLkiNGxY0fDx8fHqFGjhjFixAhj7dq1RT5ddCOvU3H1F/XkV15envHaa68Z4eHhhqurq+Hr62u0atXK+Oijjwod96ZNmwxJxpQpU4o9d9e69sk3Dw8Po1atWkZsbKyxYMECIzc3t9A6156jhQsXGtHR0UZAQIDh6upqBAcHG7169TL27dtns96sWbOMsLAww8XFxeb906ZNG6NBgwZF1lfc01hTp041Jk6caNSsWdNwdXU1mjRpYqxfv77Q+p988onRuHFjw8PDw7jjjjuMOXPmFPlzuGfPHiMyMtLw9PS0eSLv2qexCqxevdpo0aKF4e7ubnh5eRnt2rUzvvrqK5s+N/M6w5wshnEDt/gDQBn7/YfJ3W7GjBmjefPm6fTp03aPmABwHC5jAYCD7NixQ0eOHNHcuXP11FNPEXSAcoKwAwAO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ADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1p4adLVu2KDY2VsHBwbJYLFq9erV12ZUrV/TCCy+oYcOG8vLyUnBwsAYMGKAffvjBZhtRUVGyWCw2U58+fcr4SAAAQHnl1LCTk5OjRo0aac6cOYWW/frrr9q9e7f+7//+T7t379bKlSt15MgRPfzww4X6Dh06VGlpadbprbfeKovyAQDAbaCiM3ceExOjmJiYIpf5+voqJSXFpm327Nm67777dOrUKdWqVcva7unpqcDAwFKtFQAA3J5uq3t2Lly4IIvFoipVqti0L168WNWrV1eDBg00duxYZWVllbid3NxcZWZm2kwAAMCcnDqyczMuXbqkF198UX379pWPj4+1vV+/fgoLC1NgYKAOHDigcePGae/evYVGhX4vMTFREydOLIuyAQCAk90WYefKlSvq06eP8vPzNXfuXJtlQ4cOtf47PDxcdevWVUREhHbv3q2mTZsWub1x48Zp9OjR1vnMzEyFhISUTvEAAMCpyn3YuXLlinr16qXjx49rw4YNNqM6RWnatKkqVaqko0ePFht23Nzc5ObmVhrlAgCAcqZch52CoHP06FFt3LhR1apVu+46Bw8e1JUrVxQUFFQGFQIAgPLOqWEnOztbx44ds84fP35ce/bskZ+fn4KDg/XII49o9+7d+vjjj5WXl6f09HRJkp+fn1xdXfXtt99q8eLF6ty5s6pXr65Dhw5pzJgxatKkiSIjI511WAAAoBxxatjZuXOnoqOjrfMF99HEx8crISFBa9askSQ1btzYZr2NGzcqKipKrq6u+uKLL/T6668rOztbISEh6tKliyZMmCAXF5cyOw4AAFB+OTXsREVFyTCMYpeXtEySQkJCtHnzZkeXBQAATOS2+pwdAACAm0XYAQAApkbYAQAApkbYAQAApkbYAQAApkbYAQAApkbYAQAApkbYAQAApkbYAQAApkbYAQAApkbYAQAApkbYAQAApkbYAQAApkbYAQAApkbYAQAApkbYAQAApkbYAQAApkbYAQAApkbYAQAApkbYAQAApkbYAQAApkbYAQAApkbYAQAApkbYAQAApkbYAQAApkbYAQAApkbYAQAApmZX2Dl+/Lij6wAAACgVdoWdOnXqKDo6Wu+//74uXbrk6JoAAAAcxq6ws3fvXjVp0kRjxoxRYGCgnnrqKf3nP/9xdG0AAAC3zK6wEx4erpkzZ+r7779XUlKS0tPTdf/996tBgwaaOXOmfvrpJ0fXCQAAYJdbukG5YsWK6tGjh5YvX66pU6fq22+/1dixY1WzZk0NGDBAaWlpjqoTAADALrcUdnbu3Klhw4YpKChIM2fO1NixY/Xtt99qw4YN+v7779WtWzdH1QkAAGCXivasNHPmTCUlJenw4cPq3LmzFi1apM6dO6tChd+yU1hYmN566y3Vr1/focUCAADcLLvCzrx58zR48GANGjRIgYGBRfapVauW5s+ff0vFAQAA3Cq7ws7Ro0ev28fV1VXx8fH2bB4AAMBh7LpnJykpSStWrCjUvmLFCi1cuPCWiwIAAHAUu8LOlClTVL169ULt/v7+mjx58i0XBQAA4Ch2hZ2TJ08qLCysUHtoaKhOnTp1y0UBAAA4il1hx9/fX/v27SvUvnfvXlWrVu2Gt7NlyxbFxsYqODhYFotFq1evtlluGIYSEhIUHBwsDw8PRUVF6eDBgzZ9cnNzNWLECFWvXl1eXl56+OGHdebMGXsOCwAAmJBdYadPnz7685//rI0bNyovL095eXnasGGDRo4cqT59+tzwdnJyctSoUSPNmTOnyOXTpk3TzJkzNWfOHKWmpiowMFAdOnRQVlaWtc9zzz2nVatWaenSpdq6dauys7PVtWtX5eXl2XNoAADAZOx6GmvSpEk6efKk2rVrp4oVf9tEfn6+BgwYcFP37MTExCgmJqbIZYZhaNasWXrppZcUFxcnSVq4cKECAgK0ZMkSPfXUU7pw4YLmz5+v9957T+3bt5ckvf/++woJCdHnn3+uhx56yJ7DAwAAJmLXyI6rq6uWLVum//73v1q8eLFWrlypb7/9VgsWLJCrq6tDCjt+/LjS09PVsWNHa5ubm5vatGmjbdu2SZJ27dqlK1eu2PQJDg5WeHi4tQ8AAPhjs2tkp0C9evVUr149R9ViIz09XZIUEBBg0x4QEKCTJ09a+7i6uqpq1aqF+hSsX5Tc3Fzl5uZa5zMzMx1VNgAAKGfsCjt5eXlKTk7WF198oYyMDOXn59ss37Bhg0OKkySLxWIzbxhGobZrXa9PYmKiJk6c6JD6AABA+WbXZayRI0dq5MiRysvLU3h4uBo1amQzOULB11BcO0KTkZFhHe0JDAzU5cuXde7cuWL7FGXcuHG6cOGCdTp9+rRDagYAAOWPXSM7S5cu1fLly9W5c2dH12MVFhamwMBApaSkqEmTJpKky5cva/PmzZo6daokqVmzZqpUqZJSUlLUq1cvSVJaWpoOHDigadOmFbttNzc3ubm5lVrtAACg/LAr7Li6uqpOnTq3vPPs7GwdO3bMOn/8+HHt2bNHfn5+qlWrlp577jlNnjxZdevWVd26dTV58mR5enqqb9++kiRfX18NGTJEY8aMUbVq1eTn56exY8eqYcOG1qezAADAH5tdYWfMmDF6/fXXNWfOnOveP1OSnTt3Kjo62jo/evRoSVJ8fLySk5P1/PPP6+LFixo2bJjOnTunFi1a6LPPPpO3t7d1nddee00VK1ZUr169dPHiRbVr107JyclycXGxuy4AAGAedoWdrVu3auPGjVq3bp0aNGigSpUq2SxfuXLlDW0nKipKhmEUu9xisSghIUEJCQnF9nF3d9fs2bM1e/bsG9onAAD4Y7Er7FSpUkU9evRwdC0AAAAOZ1fYSUpKcnQdAAAApcKuR88l6erVq/r888/11ltvWb+r6ocfflB2drbDigMAALhVdo3snDx5Up06ddKpU6eUm5urDh06yNvbW9OmTdOlS5f05ptvOrpOAAAAu9j9oYIRERE6d+6cPDw8rO09evTQF1984bDiAAAAbpXdT2N99dVXhb70MzQ0VN9//71DCgMAAHAEu0Z28vPzlZeXV6j9zJkzNp+BAwAA4Gx2hZ0OHTpo1qxZ1nmLxaLs7GxNmDChVL9CAgAA4GbZdRnrtddeU3R0tO655x5dunRJffv21dGjR1W9enX985//dHSNAAAAdrMr7AQHB2vPnj365z//qd27dys/P19DhgxRv379bG5YBgAAcDa7wo4keXh4aPDgwRo8eLAj6wEAAHAou8LOokWLSlw+YMAAu4oBAABwNLvCzsiRI23mr1y5ol9//VWurq7y9PQk7AAAgHLDrqexzp07ZzNlZ2fr8OHDuv/++7lBGQAAlCt2fzfWterWraspU6YUGvUBAABwJoeFHUlycXHRDz/84MhNAgAA3BK77tlZs2aNzbxhGEpLS9OcOXMUGRnpkMIAAAAcwa6w0717d5t5i8WiGjVqqG3btpoxY4Yj6gIAAHAIu8JOfn6+o+sAAAAoFQ69ZwcAAKC8sWtkZ/To0Tfcd+bMmfbsAgAAwCHsCjtff/21du/eratXr+quu+6SJB05ckQuLi5q2rSptZ/FYnFMlQAAAHayK+zExsbK29tbCxcuVNWqVSX99kGDgwYN0gMPPKAxY8Y4tEgAAAB72XXPzowZM5SYmGgNOpJUtWpVTZo0iaexAABAuWJX2MnMzNSPP/5YqD0jI0NZWVm3XBQAAICj2BV2evTooUGDBulf//qXzpw5ozNnzuhf//qXhgwZori4OEfXCAAAYDe77tl58803NXbsWPXv319Xrlz5bUMVK2rIkCGaPn26QwsEAAC4FXaFHU9PT82dO1fTp0/Xt99+K8MwVKdOHXl5eTm6PgAAgFtySx8qmJaWprS0NNWrV09eXl4yDMNRdQEAADiEXWHn7NmzateunerVq6fOnTsrLS1NkvTEE0/w2DkAAChX7Ao7o0aNUqVKlXTq1Cl5enpa23v37q1PP/3UYcUBAADcKrvu2fnss8+0fv161axZ06a9bt26OnnypEMKAwAAcAS7RnZycnJsRnQK/Pzzz3Jzc7vlogAAABzFrrDz4IMPatGiRdZ5i8Wi/Px8TZ8+XdHR0Q4rDgAA4FbZdRlr+vTpioqK0s6dO3X58mU9//zzOnjwoH755Rd99dVXjq4RAADAbnaN7Nxzzz3at2+f7rvvPnXo0EE5OTmKi4vT119/rTvvvNPRNQIAANjtpkd2rly5oo4dO+qtt97SxIkTS6MmAAAAh7npkZ1KlSrpwIEDslgspVEPAACAQ9l1GWvAgAGaP3++o2sBAABwOLtuUL58+bLeffddpaSkKCIiotB3Ys2cOdMhxQEAANyqmxrZ+e6775Sfn68DBw6oadOm8vHx0ZEjR/T1119bpz179ji0wNq1a8tisRSahg8fLkkaOHBgoWUtW7Z0aA0AAOD2dVMjO3Xr1lVaWpo2btwo6bevh3jjjTcUEBBQKsVJUmpqqvLy8qzzBw4cUIcOHfToo49a2zp16qSkpCTrvKura6nVAwAAbi83FXau/VbzdevWKScnx6EFXatGjRo281OmTNGdd96pNm3aWNvc3NwUGBhYqnUAAIDbk103KBe4NvyUtsuXL+v999/X4MGDbZ4G27Rpk/z9/VWvXj0NHTpUGRkZJW4nNzdXmZmZNhMAADCnmwo7BffEXNtWVlavXq3z589r4MCB1raYmBgtXrxYGzZs0IwZM5Samqq2bdsqNze32O0kJibK19fXOoWEhJRB9QAAwBlu+jLWwIEDrV/2eenSJT399NOFnsZauXKl4yr8nfnz5ysmJkbBwcHWtt69e1v/HR4eroiICIWGhmrt2rWKi4srcjvjxo3T6NGjrfOZmZkEHgAATOqmwk58fLzNfP/+/R1aTElOnjypzz///LpBKigoSKGhoTp69Gixfdzc3Ph2dgAA/iBuKuz8/omnspaUlCR/f3916dKlxH5nz57V6dOnFRQUVEaVAQCA8uyWblAuK/n5+UpKSlJ8fLwqVvxfPsvOztbYsWO1fft2nThxQps2bVJsbKyqV6+uHj16OLFiAABQXtj1Ccpl7fPPP9epU6c0ePBgm3YXFxft379fixYt0vnz5xUUFKTo6GgtW7ZM3t7eTqoWAACUJ7dF2OnYsWORj7l7eHho/fr1TqgIAADcLm6Ly1gAAAD2IuwAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTK9dhJyEhQRaLxWYKDAy0LjcMQwkJCQoODpaHh4eioqJ08OBBJ1YMAADKm3IddiSpQYMGSktLs0779++3Lps2bZpmzpypOXPmKDU1VYGBgerQoYOysrKcWDEAAChPyn3YqVixogIDA61TjRo1JP02qjNr1iy99NJLiouLU3h4uBYuXKhff/1VS5YscXLVAACgvCj3Yefo0aMKDg5WWFiY+vTpo++++06SdPz4caWnp6tjx47Wvm5ubmrTpo22bdtW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7ixxvwBuHWEHQKlq27atGjVqVOylo+zsbLVp00Y//PCD1qxZo7179+r555+3Xvpav369+vfvrz//+c86dOiQ3nrrLSUnJ+vVV18tdp9DhgzRihUrlJ2dbW3bvHmzjh07psGDBys/P181a9bU8uXLdejQIb3yyisaP368li9fbvdxGoahLl26KD09XZ988ol27dqlpk2bql27dvrll18kSf369VPNmjWVmpqqXbt26cUXX1SlSpXs3ieAG1PR2QUAML/69etr3759RS5bsmSJfvrpJ6WmpsrPz0+SVKdOHevyV199VS+++KLi4+MlSXfccYf+9re/6fnnn9eECROK3Gbfvn01ZswYrVixQoMGDZIkLViwQK1atdI999wjSZo4caK1f1hYmLZt26bly5erV69edh3jxo0btX//fmVkZFgv0f3973/X6tWr9a9//UtPPvmkTp06pb/85S+qX7++JBV7bxEAxyLsACh1hmHIYrEUuWzPnj1q0qSJNehca9euXUpNTbUZycnLy9OlS5f066+/ytPTs9A6VapUUVxcnBYsWKBBgwYpKytLH3zwgc1lqDfffFPvvvuuTp48qYsXL+ry5ctq3Lix3ce4a9cuZWdnq1q1ajbtFy9e1LfffitJGj16tJ544gm99957at++vR599FHdeeeddu8TwI0h7AAodd98843CwsKKXObh4VHiuvn5+Zo4caLi4uIKLXN3dy92vSFDhqhdu3Y6evSoNm/eLEnq3bu3JGn58uUaNWqUZsyYoVatWsnb21vTp0+3uU/oWhUqVJBhGDZtV65csakzKChImzZtKrRulSpVJEkJCQnq27ev1q5dq3Xr1mnChAlaunSpevToUex+Adw6wg6AUrVhwwbt379fo0aNKnL5vffeq3fffVe//PJLkaM7TZs21eHDh20ubd2I6Oho3XHHHUpOTtbGjRvVq1cveXt7S5K+/PJLtW7dWsOGDbP2Lxh9KU6NGjWUlpZmnc/MzNTx48dt6kxPT1fFihVVu3btYrdTr1491atXT6NGjdJjjz2mpKQkwg5QyrhBGYDD5ObmKj09Xd9//712796tyZMnq1u3buratasGDBhQ5DqPPfaYAgMD1b17d3311Vf67rvv9MEHH2j79u2SpFdeeUWLFi1SQkKCDh48qG+++UbLli3Tyy+/XGItFotFgwYN0rx587R9+3YNGTLEuqxOnTrauXOn1q9fryNHjuj//u//lJqaWuL22rZtq/fee09ffvmlDhw4oPj4eLm4uFiXt2/fXq1atVL37t21fv16nThxQtu2bdPLL7+snTt36uLFi3r22We1adMmnTx5Ul999ZVSU1N199133+jpBWAnwg4Ah/n0008VFBSk2rVrq1OnTtq4caPeeOMNffjhhzbB4PdcXV312Wefyd/fX507d1bDhg01ZcoUa/+HHnpIH3/8sVJSUtS8eXO1bNlSM2fOVGho6HXrGThwoC5cuKC77rpLkZGR1vann35acXFx6t27t1q0aKGzZ8/ajPIUZdy4cXrwwQfVtWtXde7cWd27d7e538ZiseiTTz7Rgw8+qMGDB6tevXrq06ePTpw4oYCAALm4uOjs2bMaMGCA6tWrp169eikmJsbmRmkApcNiXHsRGgAAwEQY2QEAAKZG2AEAAKZG2AEAAKZG2AEAAKZG2AEAAKZG2AEAAKZG2AEAAKZG2AEAAKZG2AEAAKZG2AEAAKZG2AEAAKZG2AEAAKb2/wBMiz8K6cobHwAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "#bins = frequency_distribution_2.index.to_list()\n", + "\n", + "plt.hist(frequency_distribution_2.index, bins=15, weights=frequency_distribution_2.values)\n", + "plt.xlabel('Dice Values')\n", + "plt.ylabel('Frequency')\n", + "plt.title('Dice Rolls Frequency Distribution')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "\"\"\"\n", + "your comments here\n", + "\"\"\"\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Challenge 4\n", + "In the `data` folder of this repository you will find three different files with the prefix `ages_population`. These files contain information about a poll answered by a thousand people regarding their age. Each file corresponds to the poll answers in different neighbourhoods of Barcelona.\n", + "\n", + "#### 1.- Read the file `ages_population.csv`. Calculate the frequency distribution and plot it as we did during the lesson. Try to guess the range in which the mean and the standard deviation will be by looking at the plot. " + ] + }, + { + "cell_type": "code", + "execution_count": 250, + "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", + "
observation
068.0
112.0
245.0
338.0
449.0
527.0
639.0
712.0
842.0
933.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\n", + "5 27.0\n", + "6 39.0\n", + "7 12.0\n", + "8 42.0\n", + "9 33.0" + ] + }, + "execution_count": 250, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# your code here\n", + "ages_population_df = pd.read_csv('/Users/amandine/Desktop/Ironhack/03_Week/Descriptive-Stats/data/ages_population.csv')\n", + "ages_population_df.head(10)" + ] + }, + { + "cell_type": "code", + "execution_count": 251, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1.0 2\n", + "2.0 2\n", + "4.0 1\n", + "5.0 2\n", + "6.0 2\n", + " ..\n", + "69.0 1\n", + "70.0 1\n", + "71.0 1\n", + "73.0 1\n", + "82.0 1\n", + "Name: observation, Length: 72, dtype: int64\n" + ] + } + ], + "source": [ + "frequency_distribution_3 = ages_population_df['observation'].value_counts().sort_index()\n", + "print(frequency_distribution_3)" + ] + }, + { + "cell_type": "code", + "execution_count": 263, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0.5, 1.0, 'Ages population')" + ] + }, + "execution_count": 263, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.hist(frequency_distribution_3.index, bins=200, weights=frequency_distribution_3.values)\n", + "plt.xlabel('Ages')\n", + "plt.ylabel('Frequency')\n", + "plt.title('Ages population')" + ] + }, + { + "cell_type": "code", + "execution_count": 264, + "metadata": {}, + "outputs": [], + "source": [ + "#Mean is generally around the most frequent values, so ages around 40,45\n", + "#Data are pretty sparse, so we can expect the standard deviation to be pretty high -> 1,4" + ] + }, + { + "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": 265, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The average is 13.88888888888889, and the standard deviation is 11.183514101315424\n" + ] + } + ], + "source": [ + "# your code here\n", + "average = np.mean(frequency_distribution_3)\n", + "std_ages = np.std(frequency_distribution_3)\n", + "\n", + "print(f\"The average is {average}, and the standard deviation is {std_ages}\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "plt.figure(figsize=(10, 6))\n", + "plt.bar(df['Age'], df['Count'])\n", + "plt.xlabel('Age')\n", + "plt.ylabel('Count')\n", + "plt.title('Age Population Distribution')\n", + "plt.show()" + ] + }, + { + "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": "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 +} From 3bb4bf4b3a5a4e574f3950c6def3f9f9f5821bb3 Mon Sep 17 00:00:00 2001 From: Amandine Croset Date: Thu, 26 Oct 2023 18:29:32 +0200 Subject: [PATCH 2/6] Finir challenge 3 --- .DS_Store | Bin 6148 -> 6148 bytes your-code/.DS_Store | Bin 6148 -> 6148 bytes .../.ipynb_checkpoints/main-checkpoint.ipynb | 619 +++++++----------- your-code/main.ipynb | 619 +++++++----------- 4 files changed, 438 insertions(+), 800 deletions(-) diff --git a/.DS_Store b/.DS_Store index d8511abef1e2085dba6f23de4ce99bf3fd4d5397..0a47ec662c00ab4cd6f91505c06cb9ad090d3156 100644 GIT binary patch delta 57 zcmZoMXffCz&&=v&3X8W-c~fY3`oX(#c-TDlldVvnmsd!{&v|X)F^9*fz6s H{N)D#uH6q= delta 57 zcmV-90LK4>FoZC$9|Hpc%Ak`>0~nJ!0}2Mr2VIXea+68}BnAcFY1kHWlXL?m0s-K& Pp#x?Fk#GjH2MGNS1&0zx diff --git a/your-code/.DS_Store b/your-code/.DS_Store index 1f1c2121f55911a5c7154f2404f753f1134393a8..8976db08ff53f83c1ac1d4c7d063a5ed8d306bca 100644 GIT binary patch delta 70 zcmZoMXffE}$jHpZk~z77QEPG@BNyA>O%025N+;Jbnjx54`~?|?!O8i#1q>j-B(Ry0 PiH&Vy1K(zLj=%f>CW94b delta 70 zcmZoMXffE}$jHoa({FMEqt@g+MlQB%i?$@O6-};VG(#}8_zN-&gOl@f3mCxQ!DdD# PHnxcke4E)h{_+C=I!G22 diff --git a/your-code/.ipynb_checkpoints/main-checkpoint.ipynb b/your-code/.ipynb_checkpoints/main-checkpoint.ipynb index 38d8d2c..cd918be 100644 --- a/your-code/.ipynb_checkpoints/main-checkpoint.ipynb +++ b/your-code/.ipynb_checkpoints/main-checkpoint.ipynb @@ -11,7 +11,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -32,7 +32,7 @@ }, { "cell_type": "code", - "execution_count": 67, + "execution_count": 85, "metadata": {}, "outputs": [ { @@ -56,29 +56,29 @@ " \n", " \n", " \n", - " Rolls\n", + " Number\n", " \n", " \n", " \n", " \n", " 0\n", - " 4\n", + " 5\n", " \n", " \n", " 1\n", - " 2\n", + " 5\n", " \n", " \n", " 2\n", - " 4\n", + " 3\n", " \n", " \n", " 3\n", - " 2\n", + " 4\n", " \n", " \n", " 4\n", - " 2\n", + " 6\n", " \n", " \n", " 5\n", @@ -86,15 +86,15 @@ " \n", " \n", " 6\n", - " 4\n", + " 5\n", " \n", " \n", " 7\n", - " 4\n", + " 2\n", " \n", " \n", " 8\n", - " 6\n", + " 5\n", " \n", " \n", " 9\n", @@ -105,20 +105,20 @@ "" ], "text/plain": [ - " Rolls\n", - "0 4\n", - "1 2\n", - "2 4\n", - "3 2\n", - "4 2\n", - "5 5\n", - "6 4\n", - "7 4\n", - "8 6\n", - "9 6" + " Number\n", + "0 5\n", + "1 5\n", + "2 3\n", + "3 4\n", + "4 6\n", + "5 5\n", + "6 5\n", + "7 2\n", + "8 5\n", + "9 6" ] }, - "execution_count": 67, + "execution_count": 85, "metadata": {}, "output_type": "execute_result" } @@ -134,7 +134,7 @@ "\n", "dice_rolls = rolling_dice()\n", "\n", - "dice_df = pd.DataFrame({'Rolls': dice_rolls})\n", + "dice_df = pd.DataFrame({'Number': dice_rolls})\n", "dice_df.head(10)\n" ] }, @@ -147,12 +147,29 @@ }, { "cell_type": "code", - "execution_count": 206, + "execution_count": 91, "metadata": {}, "outputs": [ { "data": { - "image/png": "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AKCIcjpUKlasqD179ug///mPdu/erZycHA0YMEA9e/Z0uLgWAADgdjkdKpLk6+ur/v37q3///q6eBwAAwM7pUFm4cOEt7+/du3e+hwEAALie06EyfPhwh9tXr17V5cuX5e3tLT8/P0IFAAC4jNPv+vntt98cftLS0nT48GE1bdqUi2kBAIBL5eu7fv6qevXqmjJlSq6jLQAAALfDJaEiScWKFdOZM2dctTkAAADnr1FZvny5w23LspSUlKS33npLTZo0cdlgAAAATodK586dHW7bbDaVL19eLVu21PTp0101FwAAgPOhkpOTUxBzAAAA5OKya1QAAABczekjKiNHjszzujNmzHB28wAAAHZOh8r333+v3bt3KysrSzVq1JAkHTlyRMWKFVNUVJR9PZvN5ropAQBAkeR0qHTq1En+/v764IMPVKZMGUl/fghcv3799MADD2jUqFEuHxIAABRNTl+jMn36dMXFxdkjRZLKlCmjSZMm8a4fAADgUk6HSmpqqs6dO5dr+fnz53Xp0iWXDAUAACDlI1S6dOmifv366eOPP9apU6d06tQpffzxxxowYIC6du1aEDMCAIAiyulrVN59912NHj1avXr10tWrV//ciKenBgwYoGnTprl8QAAAUHQ5HSp+fn565513NG3aNB07dkyWZalatWoqUaJEQcwHAACKsHx/4FtSUpKSkpIUHh6uEiVKyLIsV84FAADgfKikpKSoVatWCg8PV/v27ZWUlCRJeuqpp3hrMgAAcCmnQyU2NlZeXl5KTEyUn5+fffnjjz+uVatWuXQ4AABQtDl9jcqaNWu0evVqVapUyWF59erVdeLECZcNBgAA4PQRlfT0dIcjKdckJyfLx8fHJUMBAABI+QiVZs2aaeHChfbbNptNOTk5mjZtmlq0aOHS4QAAQNHm9KmfadOm6cEHH9TOnTv1xx9/aMyYMTpw4IAuXLigLVu2FMSMAACgiHL6iEqtWrX0ww8/6L777lObNm2Unp6url276vvvv1fVqlULYkYAAFBEOXVE5erVq2rbtq3mzJmjiRMnFtRMAAAAkpw8ouLl5aX9+/fLZrMV1DwAAAB2Tp/66d27t+bNm1cQswAAADhw+mLaP/74Q3PnztXatWsVHR2d6zt+ZsyY4bLhAABA0eZ0qOzfv19RUVGSpCNHjjjcxykhAADgSnkOlZ9//llh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WbNu+dyqVKmimTNn5trXhAkT7LcvXryoZ555RkFBQQoICFDLli21d+9e+/179+5VixYt5O/vr4CAADVo0EA7d+685X4BuAahAuCGWrZsqXr16t30dEtaWpqaN2+uM2fOaPny5dq7d6/GjBljP120evVq9erVS8OGDdPBgwc1Z84cLViwQJMnT77pPgcMGKBly5YpLS3NvmzTpk366aef1L9/f+Xk5KhSpUpaunSpDh48qJdeeknjxo3T0qVL8/08LctShw4ddPbsWa1YsUK7du1SVFSUWrVqpQsXLkiSevbsqUqVKikhIUG7du3Sc889Jy8vr3zvE0De8e3JAG4qIiJCP/zwww3v++ijj/Trr78qISFBZcuWlSRVq1bNfv/kyZP13HPPqU+fPpKke+65R6+88orGjBmj8ePH33CbPXr00KhRo7Rs2TL169dPkjR//nzFxMSoVq1akqSJEyfa1w8LC9PWrVu1dOlSdevWLV/PccOGDdq3b5/Onz9vP63173//W59//rk+/vhjPfPMM0pMTNT/+3//TxEREZJ002tpALgeoQLgpizLks1mu+F9e/bs0b333muPlL/atWuXEhISHI6gZGdnKyMjQ5cvX5afn1+ux5QuXVpdu3bV/Pnz1a9fP126dEmffPKJw6mbd999V3PnztWJEyd05coV/fHHH6pfv36+n+OuXbuUlpamwMBAh+VXrlzRsWPHJEkjR47UU089pUWLFql169Z67LHHVLVq1XzvE0DeESoAburQoUMKCwu74X2+vr63fGxOTo4mTpyorl275rqvePHiN33cgAED1KpVKx09elSbNm2SJD3++OOSpKVLlyo2NlbTp09XTEyM/P39NW3aNIfrYv7Kw8NDlmU5LLt69arDnBUqVNDGjRtzPbZ06dKSpAkTJqhHjx76+uuvtXLlSo0fP16LFy9Wly5dbrpfAK5BqAC4ofXr12vfvn2KjY294f2RkZGaO3euLly4cMOjKlFRUTp8+LDD6aC8aNGihe655x4tWLBAGzZsULdu3eTv7y9J+vbbb9W4cWMNGjTIvv61ox43U758eSUlJdlvp6am6pdffnGY8+zZs/L09FSVKlVuup3w8HCFh4crNjZWTzzxhOLj4wkV4A7gYloAyszM1NmzZ3X69Gnt3r1br776qh555BF17NhRvXv3vuFjnnjiCQUHB6tz587asmWLfv75Z33yySfatm2bJOmll17SwoULNWHCBB04cECHDh3SkiVL9MILL9xyFpvNpn79+mn27Nnatm2bBgwYYL+vWrVq2rlzp1avXq0jR47oxRdfVEJCwi2317JlSy1atEjffvut9u/frz59+qhYsWL2+1u3bq2YmBh17txZq1ev1vHjx7V161a98MIL2rlzp65cuaIhQ4Zo48aNOnHihLZs2aKEhATVrFkzr79eALeBUAGgVatWqUKFCqpSpYoefvhhbdiwQW+88Ya++OILhz/q1/P29taaNWsUFBSk9u3bq27dupoyZYp9/YceekhfffWV1q5dq4YNG+r+++/XjBkzVLly5b+dp2/fvrp48aJq1KihJk2a2JcPHDhQXbt21eOPP65GjRopJSXF4ejKjYwdO1bNmjVTx44d1b59e3Xu3Nnh+hKbzaYVK1aoWbNm6t+/v8LDw9W9e3cdP35cd911l4oVK6aUlBT17t1b4eHh6tatm9q1a+dwUS+AgmOz/nryFgAAwBAcUQEAAMYiVAAAgLEIFQAAYCxCBQAAGItQAQAAxiJUAACAsQgVAABgLEIFAAAYi1ABAADGIlQAAICxCBUAAGAsQgUAABjr/wMOgTD9VcbE2gAAAABJRU5ErkJggg==\n", + "text/plain": [ + "{'whiskers': [,\n", + " ],\n", + " 'caps': [,\n", + " ],\n", + " 'boxes': [],\n", + " 'medians': [],\n", + " 'fliers': [],\n", + " 'means': []}" + ] + }, + "execution_count": 91, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", "text/plain": [ "
" ] @@ -163,18 +180,9 @@ ], "source": [ "# your code here\n", - "sorted_rolls = sorted(dice_rolls)\n", + "sorted_rolls = dice_df['Number'].sort_values()\n", "\n", - "# Add labels and title\n", - "plt.xlabel('Dice Values')\n", - "plt.ylabel('Frequency of rolls')\n", - "plt.title('Sorted Dice Rolls')\n", - "\n", - "plt.yticks(range(min(sorted_rolls_series), max(sorted_rolls_series) + 1))\n", - "plt.xticks(range(min(sorted_rolls_series), max(sorted_rolls_series) + 1))\n", - "\n", - "plt.hist(sorted_rolls, bins=10, edgecolor='black')\n", - "plt.show()" + "plt.boxplot(sorted_rolls)" ] }, { @@ -186,12 +194,52 @@ }, { "cell_type": "code", - "execution_count": 83, + "execution_count": 92, "metadata": {}, "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Dice number Frequency\n", + "0 2 1\n", + "1 3 1\n", + "2 4 1\n", + "3 5 5\n", + "4 6 2\n" + ] + } + ], + "source": [ + "#https://stackoverflow.com/questions/41551658/how-to-create-a-frequency-distribution-table-on-given-data-with-python-in-jupyte\n", + "\n", + "#Calculate the freq dist and sort by dice number (index)\n", + "frequency_distribution = pd.Series(sorted_rolls).value_counts().sort_index().reset_index()\n", + "#Why do we need to reset ?\n", + "\n", + "frequency_distribution.columns = ['Dice number', 'Frequency']\n", + "\n", + "print(frequency_distribution)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 136, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 136, + "metadata": {}, + "output_type": "execute_result" + }, { "data": { - "image/png": "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frz1119/WRcvXrR+/PFHKzQ01CpdurR18OBBZ9vu3btbXl5e1pEjR1y20bZtW8vX19c6d+6cyzZjYmIyHY+M7W3ZssWSZC1btuya9WUlIiLCkpRpCgsLsyzr/47j66+/7rLepk2bLEnWpEmTXOYnJCRYPj4+1rBhwyzLsqyzZ89a3t7eVpcuXVzabdy40ZJkNW3aNNv3lWHt2rWWJGvt2rWWZeXuPGXUP2HCBJe2/fv3t7y9va309HTLsixrw4YNliTrX//61zWPV9OmTa369eu7zHvxxRetgIAA6/z589dcNyIiwvLz88t2+U8//WRJsl588UWX/V15jF566SWrSJEi19zPokWLXI7X1fVLsr7++ussl125r4zPXpkyZaw///zTOT85OdkqVqyY1apVK5f3Vr58+UzbvPrn0LIsy8/Pz4qIiMjU9urznJaWZpUpU8aqU6eOlZaW5mx3/vx5KygoyGrcuHGm/VzvPOPORo8KjGZZ1jWXr169Wmlpadf8q/e7777TmTNnFBER4dK7kJ6erkceeUTx8fHOv1yv5dVXX1WhQoWcl3N27dqlzz77zKVrfM2aNWrZsqXKli3rsm7v3r31xx9/5Oqv1SpVqqho0aJ69dVXNW3aNO3ZsyfH60p/D/CMj493ma6+HPbYY4+5vP7888/lcDjUs2dPl2NVqlQp1atXz9l9v2nTJl28eFHh4eEu6zdu3Fjly5fPVZ0Z3DlPGb0VGerWrauLFy867xiLi4uTpOv2igwaNEg//vijNm7cKElKTk7WBx98oIiICBUuXNit95Phep9hSbr//vt17tw59ejRQ59++ql+//33XO+naNGiatGiRY7bd+3aVd7e3s7X/v7+6tixozZs2JCp5y0v7d27V8ePH9fTTz+tAgX+7yuocOHCeuyxx7R58+ZMl+Gud55xZ2MwLYyVkpKi06dPq06dOtm2+e233yTpmgNsMy5XdOvWLds2Z86ckZ+f3zXrGTRokHr27KnU1FRt3rxZr732mjp16qTt27erePHikqTTp0+rdOnSmdYtU6aMc3lOBQYGav369XrzzTc1cuRInT17VqVLl9azzz6r1157TYUKFbrm+gUKFHAZpJyVq2s9efKkLMtyDl6+WqVKlVzeR6lSpTK1yWpeTrhznjKOewYvLy9Jf995I/39+fDw8LhuTZ06dVKFChX0/vvv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\n", + "image/png": "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F3eXAickJCTIYrE4/FSsWNHdZcEJv/32m3r27KmyZcvK399fjRs31rZt29xSC0HlOuvWrdPAgQO1efNmrVy5UlevXtXjjz+ujIwMd5eGQqpSpYrGjh2rrVu3auvWrXr00UfVqVMn/fjjj+4uDU7asmWLPvzwQzVq1MjdpeAO1K9fXydOnLD/7Nq1y90loZDOnTun5s2by9vbW8uWLdOePXs0adIklS5d2i31FOuP0He15cuXO0zPnj1boaGh2rZtm1q2bOmmquCMjh07Oky/+eabmjZtmjZv3qz69eu7qSo469KlS+rRo4dmzJihMWPGuLsc3AEvLy9GUYqpcePGKTw8XLNnz7bPq1atmtvqYUTlFi5cuCBJCgkJcXMluBO5ublasGCBMjIyFBMT4+5y4ISBAweqffv2euyxx9xdCu7Q/v37FRYWpsjISD333HM6cOCAu0tCIX311VeKjo7WM888o9DQUDVp0kQzZsxwWz0ElZswDENDhw7VI488ogYNGri7HDhh165dCggIkNVq1YsvvqjFixerXr167i4LhbRgwQJt375dSUlJ7i4Fd+ihhx7S3LlztWLFCs2YMUMnT55Us2bNlJaW5u7SUAgHDhzQtGnTVKtWLa1YsUIvvviiBg8erLlz57qlHj6Z9iYGDhyopUuX6rvvvivyb2iGa125ckVHjhzR+fPn9e9//1szZ87UunXrCCvFwNGjRxUdHa1vv/1WUVFRkqTWrVurcePGevvtt91bHO5YRkaGatSooVdffVVDhw51dzm4DR8fH0VHR2vjxo32eYMHD9aWLVu0adOm370eRlQKMGjQIH311VdKTk4mpBRDPj4+qlmzpqKjo5WUlKSoqChNmTLF3WWhELZt26bU1FTdf//98vLykpeXl9atW6d33nlHXl5eys3NdXeJuAOlSpVSw4YNtX//fneXgkKoVKlSvj/s6tatqyNHjrilHm6mvY5hGBo0aJAWL16stWvXKjIy0t0lwQUMw1B2dra7y0AhxMbG5ns6pG/fvrrvvvv02muvydPT002V4W5kZ2dr7969atGihbtLQSE0b94830dz/Pzzz4qIiHBLPQSV6wwcOFDz5s3TkiVLFBgYqJMnT0qSgoOD5efn5+bqUBgjRozQE088ofDwcF28eFELFizQ2rVr8z3RBXMKDAzMd09YqVKlVLZsWe4VK0aG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Xss3CnOnrly5on79+umNN97Q4cOHNWrUKL388svy8PBQYGCghg8frldeeUU2m02PPPKI0tPTtXHjRgUEBKh3795O7att27b67rvv9Je//MU+77333tOmTZu0c+dOhYeHa9myZerRo4e+//57+fj4SLoWnqxWq2JiYlzyOwP3Oh5PBu4By5cvV6VKlVStWjW1a9dOycnJeuedd7RkyRKH+0Wu5+Pjo2+//VahoaGKj49Xw4YNNXbsWPv6bdu21TfffKOVK1fqgQce0MMPP6zJkycrIiLirmqdNGmSwsPD1bJlS3Xv3l3Dhw+/6f0uzoqNjVWtWrXUsmVLPfvss+rYsaMSEhLsy0ePHq2RI0cqKSlJdevWVdu2bfX111/f9PLYrQwYMED/+c9/dOHCBUnSTz/9pL/+9a96//33FR4eLulacDl//rzDh8LNnz9fPXr0cNnvDNzrLMaNF4sBAIXy7LPPqkmTJnr99dcLtf7p06d13333aevWrXcUjoCSiBEVALhDEyZMUEBAQKHXP3jwoN5//31CCuAERlQAAIBpMaICAABMi6ACAABMi6ACAABMi6ACAABMi6ACAABMi6ACAABMi6ACAABMi6ACAABMi6ACAABM6/8DwgXJesyA1dgAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] @@ -201,24 +249,14 @@ } ], "source": [ - "sorted_rolls_series = pd.Series(sorted_rolls)\n", - "\n", - "# Calculate the frequency distribution\n", - "frequency_distribution = sorted_rolls_series.value_counts().sort_index()\n", - "\n", - "# Plot the frequency distribution\n", - "plt.bar(frequency_distribution.index, frequency_distribution.values)\n", - "\n", + "plt.xlabel('Dice number (x)')\n", + "plt.ylabel('Frequency (y)')\n", + "plt.title('Frequency distribution - Dice Rolls ')\n", "\n", - "# Add labels and title\n", - "plt.xlabel('Dice Values')\n", - "plt.ylabel('Frequency')\n", - "plt.title('Dice Rolls Frequency Distribution')\n", - "\n", - "plt.yticks(range(min(sorted_rolls_series), max(sorted_rolls_series) + 1))\n", - "plt.xticks(range(min(sorted_rolls_series), max(sorted_rolls_series) + 1))\n", + "plt.yticks(range(min(sorted_rolls), max(sorted_rolls) + 1))\n", + "plt.xticks(range(min(sorted_rolls), max(sorted_rolls) + 1))\n", "\n", - "plt.show()\n" + "sorted_rolls.hist(bins=6, edgecolor='black')" ] }, { @@ -227,11 +265,13 @@ "metadata": {}, "outputs": [], "source": [ - "\"\"\"\n", - "your comments here\n", - "\"\"\"\n", - "#Observation :\n", - "#for frequency distribution we HAVE TO convert the results into a DataFrame ?" + "# What is the relation between this plot and the plot above? \n", + "\n", + "# We can see that the median is the same on both graphs (5)\n", + "# Negatively skewed\n", + "# Also they show the same percentiles (develop here)\n", + "\n", + "#Frequency distribution graph is \"easier to read\" and should be used for data presentation to the stakeholders." ] }, { @@ -246,37 +286,36 @@ }, { "cell_type": "code", - "execution_count": 216, + "execution_count": 95, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "3.9\n" + "4.6\n" ] } ], "source": [ "# your code here\n", - "def calculate_mean(dice_rolls):\n", - " mean = sum(dice_rolls)/len(dice_rolls)\n", + "def calculate_mean(data):\n", + " mean = sum(data)/len(data)\n", " return mean\n", "\n", - "mean_dice_rolls = calculate_mean(dice_rolls)\n", - "print(mean_dice_rolls)" + "print(calculate_mean(dice_rolls))" ] }, { "cell_type": "code", - "execution_count": 85, + "execution_count": 96, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Mean: 3.9\n" + "4.6\n" ] } ], @@ -284,22 +323,19 @@ "#Other method\n", "\n", "def mean(data):\n", - " if len(data) == 0:\n", - " return 0 # Handle the case where the data list is empty to avoid division by zero\n", - "\n", + " \n", " total_sum = 0\n", - " count = 0\n", - "\n", + " len_data = 0\n", + " \n", " for value in data:\n", " total_sum += value\n", - " count += 1\n", + " len_data += 1\n", "\n", - " mean = total_sum / count\n", + " mean = total_sum / len_data\n", "\n", " return mean\n", "\n", - "result = calculate_mean(dice_rolls)\n", - "print(\"Mean:\", result)\n" + "print(mean(dice_rolls))" ] }, { @@ -311,30 +347,34 @@ }, { "cell_type": "code", - "execution_count": 93, + "execution_count": 97, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Rolls\n", - "2 3\n", - "4 4\n", - "5 1\n", - "6 2\n", - "dtype: int64\n", - "Mean is 2.5\n" + " Dice number Frequency\n", + "0 2 1\n", + "1 3 1\n", + "2 4 1\n", + "3 5 5\n", + "4 6 2\n", + "Mean is 2.0\n" ] } ], "source": [ "# your code here\n", - "frequency_distribution = dice_df.value_counts().sort_index()\n", + "frequency_distribution = dice_df.value_counts().sort_index().reset_index() #chaining method\n", + "frequency_distribution.columns = ['Dice number', 'Frequency']\n", "print(frequency_distribution)\n", "\n", - "mean_frequency_distribution = average(frequency_distribution) \n", - "print(f'Mean is {mean_frequency_distribution}')" + "#Calculate mean by calling function\n", + "mean_frequency_distribution = mean(frequency_distribution['Frequency']) \n", + "print(f'Mean is {mean_frequency_distribution}')\n", + "\n", + "# Why the result is not the same as when we calculate the mean ?" ] }, { @@ -347,26 +387,16 @@ }, { "cell_type": "code", - "execution_count": 100, + "execution_count": 98, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - " Rolls\n", - "1 2\n", - "3 2\n", - "4 2\n", - "0 4\n", - "2 4\n", - "6 4\n", - "7 4\n", - "5 5\n", - "8 6\n", - "9 6\n", - "[2, 2, 2, 4, 4, 4, 4, 5, 6, 6]\n", - "Median is 4.0\n" + "[2, 3, 4, 5, 5, 5, 5, 5, 6, 6]\n", + "10\n", + "Median is 5.0\n" ] } ], @@ -374,14 +404,13 @@ "# Method without function\n", "\n", "# your code here\n", - "sorted_dice_df = dice_df.sort_values(by='Rolls')\n", - "print(sorted_dice_df)\n", "\n", "#Convert values into list to calculate the median\n", - "values_list = sorted_dice_df['Rolls'].to_list()\n", + "values_list = sorted_rolls.to_list()\n", "print(values_list)\n", "\n", - "len(values_list)\n", + "print(len(values_list)) #Median = value in the middle \n", + "#If even number, we take the two elements in the list divided by 2\n", "\n", "median = (values_list[4] + values_list[5])/2\n", "print(f'Median is {median}')" @@ -389,14 +418,14 @@ }, { "cell_type": "code", - "execution_count": 153, + "execution_count": 99, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Median is 4.0\n" + "Median is 5.0\n" ] } ], @@ -427,16 +456,16 @@ }, { "cell_type": "code", - "execution_count": 131, + "execution_count": 100, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "the first quartile is 2.5\n", - "the second quartile is 4.0\n", - "the third quartile is 4.75\n", + "the first quartile is 4.25\n", + "the second quartile is 5.0\n", + "the third quartile is 5.0\n", "the fourth quartile is 6\n" ] } @@ -456,14 +485,14 @@ }, { "cell_type": "code", - "execution_count": 161, + "execution_count": 101, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Q1: 2.00, Q2: 4.0, Q3: 5.00\n" + "Q1: 4.00, Q2: 5.0, Q3: 5.00, Q4: 6.00\n" ] } ], @@ -487,11 +516,12 @@ " \n", " return q1_lower_quartile, q2, q3_upper_quartile\n", "\n", - "#fourth quartile\n", + "#fourth quartile =max value\n", + " q4 = max(lst)\n", " \n", "\n", "q1_lower_quartile, q2, q3_upper_quartile = quartiles(values_list)\n", - "print(f'Q1: {q1_lower_quartile:.2f}, Q2: {q2}, Q3: {q3_upper_quartile:.2f}')" + "print(f'Q1: {q1_lower_quartile:.2f}, Q2: {q2}, Q3: {q3_upper_quartile:.2f}, Q4: {q4:.2f}')" ] }, { @@ -505,7 +535,7 @@ }, { "cell_type": "code", - "execution_count": 177, + "execution_count": 138, "metadata": {}, "outputs": [ { @@ -613,7 +643,7 @@ "9 9 9 1" ] }, - "execution_count": 177, + "execution_count": 138, "metadata": {}, "output_type": "execute_result" } @@ -626,237 +656,29 @@ }, { "cell_type": "code", - "execution_count": 195, + "execution_count": 84, "metadata": {}, "outputs": [ { "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \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
1212125
7272725
3030306
9292926
9090906
4446
2226
9696966
8787876
2323236
5454546
3636366
3535356
8080806
7878786
7575756
3939396
4040406
4545456
6565656
1717176
1111116
2424246
2121216
9999996
\n", - "
" - ], "text/plain": [ - " Unnamed: 0 roll value\n", - "12 12 12 5\n", - "72 72 72 5\n", - "30 30 30 6\n", - "92 92 92 6\n", - "90 90 90 6\n", - "4 4 4 6\n", - "2 2 2 6\n", - "96 96 96 6\n", - "87 87 87 6\n", - "23 23 23 6\n", - "54 54 54 6\n", - "36 36 36 6\n", - "35 35 35 6\n", - "80 80 80 6\n", - "78 78 78 6\n", - "75 75 75 6\n", - "39 39 39 6\n", - "40 40 40 6\n", - "45 45 45 6\n", - "65 65 65 6\n", - "17 17 17 6\n", - "11 11 11 6\n", - "24 24 24 6\n", - "21 21 21 6\n", - "99 99 99 6" + "{'whiskers': [,\n", + " ],\n", + " 'caps': [,\n", + " ],\n", + " 'boxes': [],\n", + " 'medians': [],\n", + " 'fliers': [],\n", + " 'means': []}" ] }, - "execution_count": 195, + "execution_count": 84, "metadata": {}, "output_type": "execute_result" - } - ], - "source": [ - "sorted_roll_dice_df = roll_dice_df.sort_values(by='value')\n", - "sorted_roll_dice_df.tail(25)" - ] - }, - { - "cell_type": "code", - "execution_count": 220, - "metadata": {}, - "outputs": [ + }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjMAAAHFCAYAAAAHcXhbAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAsXUlEQVR4nO3de1iUdf7/8dcoOAIiKQeBBKLEM1ZmB60U8xQe1kNumpmYtN/MbDX12361q59kfqXyq1mXaWUJumW6tWVWlloe2zRPmWVmVCqokAuZKCIq3L8/upxtRBSHcWY+0/NxXfd1NffcM/d7pk2fe9/3zNgsy7IEAABgqFreHgAAAKAmiBkAAGA0YgYAABiNmAEAAEYjZgAAgNGIGQAAYDRiBgAAGI2YAQAARiNmAACA0YgZwEf1799fQUFB+vXXX6vc5t5771VgYKB+/vnnaj+vzWZTRkZGzQe8RGvXrpXNZnMsderUUWRkpG699VY9/vjj2r9/f6XHZGdny2azad++fZe0r2nTpmnp0qWX9Jjz7SslJUWtW7e+pOe5mOXLl1f5/l911VUaPny4W/cH/BEQM4CPSk9P18mTJ7Vo0aLz3n/06FG9++676t27txo1auTh6Vw3bdo0bdy4UWvWrNFrr72mlJQUzZ8/Xy1atNAbb7zhtG2vXr20ceNGxcTEXPI+LjVmXN3XpVq+fLmefPLJ89737rvv6oknnris+wf8UYC3BwBwfqmpqYqNjdX8+fM1atSoSve/+eabKi0tVXp6uhemc11SUpJuueUWx+0//elPGj9+vLp27arhw4erTZs2Sk5OliRFRkYqMjLyss5TWlqqunXremRfF3P99dd7df+AqTgyA/io2rVrKy0tTdu2bdPXX39d6f6srCzFxMQoNTVV//73vzVq1Ci1bNlS9erVU1RUlO644w5t2LDhovvJyMiQzWartL6qUzxLlixR+/btFRISonr16qlHjx768ssvXX6dktSwYUO9/PLLOnPmjJ577rkLzvDll1+qd+/eioqKkt1uV2xsrHr16qUDBw5I+u00WklJiRYsWOA4pZWSkuL0fCtXrtSIESMUGRmp4OBglZWVXfCU1oYNG3TLLbcoKChIV155pZ544gmVl5c77j97Cm3t2rVOj9u3b59sNpuys7MlScOHD9eLL77omPPscnaf5zvNlJubq6FDhzpeb4sWLTRjxgxVVFRU2s///d//aebMmUpMTFS9evXUvn17bdq06RL+TQBmImYAHzZixAjZbDbNnz/faf23336rzZs3Ky0tTbVr19Yvv/wiSZo8ebI+/PBDZWVl6eqrr1ZKSkqlv2BrYtq0abrnnnvUsmVL/eMf/9Df//53HTt2TLfffru+/fbbGj33jTfeqJiYGK1fv77KbUpKStStWzf9/PPPevHFF7Vq1SrNmjVL8fHxOnbsmCRp48aNCgoKUs+ePbVx40Zt3LhRc+bMcXqeESNGKDAwUH//+9/19ttvKzAwsMp9FhQUaPDgwbr33nv13nvvaeDAgZo6darGjBlzya/xiSee0MCBAx1znl2qOrX173//Wx06dNDKlSv11FNPadmyZeratasmTJig0aNHV9r+9+/JG2+8oZKSEvXs2VNHjx695FkBk3CaCfBhTZo0UceOHfX666/r2WefdfylezZuRowYIUlq1qyZ01/Y5eXl6tGjh/bt26cXXnjBcWSiJvLy8jR58mSNHj1aL7zwgmN9t27dlJSUpCeffFJLliyp0T7i4+O1c+fOKu//7rvvVFRUpNdee019+/Z1rL/77rsd/3zLLbeoVq1aioyMdDqd9XtdunTRyy+/XK2ZioqK9N577+lPf/qTJKl79+4qLS3V3Llz9dhjjyk+Pr5azyNJ11xzjeP6pqpm+72ZM2fq4MGD+uKLL3TTTTdJknr06KHy8nK99NJLGjt2rJo2berYPjQ0VB988IFq164tSYqNjdVNN92kjz76SIMHD672nIBpODID+Lj09HQVFhZq2bJlkqQzZ87o9ddf1+23366kpCTHdi+99JLatm2runXrKiAgQIGBgfr000+1e/dut8yxYsUKnTlzRsOGDdOZM2ccS926ddWpUye3HAGyLOuC9zdp0kQNGjTQ3/72N7300ksuHw266667qr1taGioI2TOGjJkiCoqKi54FMkdVq9erZYtWzpC5qzhw4fLsiytXr3aaX2vXr0cISNJbdq0kaTzflIM8CfEDODjBg4cqLCwMGVlZUn67dMwP//8s9OFvzNnztRDDz2km2++Wf/85z+1adMmbdmyRXfeeadKS0vdMsfZj3/feOONCgwMdFqWLFmiwsLCGu8jNzdXsbGxVd4fFhamdevW6brrrtOkSZPUqlUrxcbGavLkyTp9+nS193Mpn1g63yfFoqOjJf121OZyKioqOu+sZ9+jc/cfHh7udNtut0uS2/43APgqTjMBPi4oKEj33HOP5s2bp/z8fM2fP1+hoaH685//7Njm9ddfV0pKiubOnev02LPXkVxI3bp1JUllZWWOv/wkVYqTiIgISdLbb7+thIQEl19PVTZv3qyCgoKLfjorOTlZixcvlmVZ2rlzp7KzszVlyhQFBQXpf/7nf6q1r/Nd8FyV832HT0FBgaT/xMPv38Pfq2nghYeHKz8/v9L6Q4cOSfrPvxPgj44jM4AB0tPTVV5erunTp2v58uUaPHiwgoODHffbbDanEJGknTt3auPGjRd97quuusqx/e+9//77Trd79OihgIAA/fjjj2rXrt15F1f98ssvGjlypAIDA/Xoo49W6zE2m03XXnutnnvuOV1xxRXavn274z673e62oxHHjh1znOI7a9GiRapVq5Y6duwoqer38NzHnZ1Nqt7Rki5duujbb791em2StHDhQtlsNnXu3LnarwPwZxyZAQzQrl07tWnTRrNmzZJlWZWOXvTu3VtPPfWUJk+erE6dOmnPnj2aMmWKEhMTdebMmQs+d8+ePdWwYUOlp6drypQpCggIUHZ2tvLy8py2u+qqqzRlyhQ9/vjj+umnn3TnnXeqQYMG+vnnn7V582aFhIRU+WVwv5eTk6NNmzapoqJCRUVF+uKLL/Taa6+puLhYCxcuVKtWrap87AcffKA5c+aoX79+uvrqq2VZlt555x39+uuv6tatm2O75ORkrV27Vu+//75iYmIUGhqqZs2aXXS28wkPD9dDDz2k3NxcNW3aVMuXL9e8efP00EMPOS7+jY6OVteuXZWZmakGDRooISFBn376qd55551Kz3f2O3SeeeYZpaamqnbt2mrTpo3q1KlTadtHH31UCxcuVK9evTRlyhQlJCToww8/1Jw5c/TQQw85XfwL/KFZAIzw/PPPW5Ksli1bVrqvrKzMmjBhgnXllVdadevWtdq2bWstXbrUSktLsxISEpy2lWRNnjzZad3mzZutDh06WCEhIdaVV15pTZ482Xr11VctSdbevXudtl26dKnVuXNnq379+pbdbrcSEhKsgQMHWp988skF51+zZo0lybEEBARY4eHhVvv27a1JkyZZ+/btq/SYrKwspxm+++4765577rGuueYaKygoyAoLC7NuuukmKzs72+lx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Uszk5ORcdJs6deooLS3NlacHAACoNpe+ZyYrK0tvvfVWpfVvvfWWFixYUOOhAAAAqsulmHn66acVERFRaX1UVJSmTZtW46EAAACqy6WY2b9/vxITEyutT0hIUG5ubo2HAgAAqC6XYiYqKko7d+6stP6rr75SeHh4jYcCAACoLpdiZvDgwfrrX/+qNWvWqLy8XOXl5Vq9erXGjBmjwYMHu3tGAACAKrn0aaapU6dq//796tKliwICfnuKiooKDRs2jGtmAACAR7kUM3Xq1NGSJUv01FNP6auvvlJQUJCSk5OVkJDg7vkAAAAuqEY/Z9C0aVM1bdrUXbMAAABcMpdipry8XNnZ2fr00091+PBhVVRUON2/evVqtwwHAABwMS7FzJgxY5Sdna1evXqpdevWstls7p4LAACgWlyKmcWLF+sf//iHevbs6e55AAAALolLH82uU6eOmjRp4u5ZAAAALplLMTN+/Hg9//zzsizL3fMAAABcEpdOM3322Wdas2aNPvroI7Vq1UqBgYFO97/zzjtuGQ4AAOBiXIqZK664Qv3793f3LAAAAJfMpZjJyspy9xwAAAAucemaGUk6c+aMPvnkE7388ss6duyYJOnQoUM6fvy424YDAAC4GJeOzOzfv1933nmncnNzVVZWpm7duik0NFTPPvusTp48qZdeesndcwIAAJyXS0dmxowZo3bt2unIkSMKCgpyrO/fv78+/fRTtw0HAABwMS5/mulf//qX6tSp47Q+ISFBBw8edMtgAAAA1eHSkZmKigqVl5dXWn/gwAGFhobWeCgAAIDqcilmunXrplmzZjlu22w2HT9+XJMnT+YnDgAAgEe5dJrpueeeU+fOndWyZUudPHlSQ4YMUU5OjiIiIvTmm2+6e0YAAIAquRQzsbGx2rFjh958801t375dFRUVSk9P17333ut0QTAAAMDl5lLMSFJQUJBGjBihESNGuHMe4+Tm5qqwsNDj+42IiFB8fLzH9wsApuDP5z8Ol2Jm4cKFF7x/2LBhLg1jmtzcXDVr3kInS094fN91g4K157vd/AcDAOfBn89/LC7FzJgxY5xunz59WidOnFCdOnUUHBz8h4mZwsJCnSw9ofDe4xUYHuex/Z4uylPRBzNUWFjIfywAcB78+fzH4lLMHDlypNK6nJwcPfTQQ/rv//7vGg9lmsDwONmjm3h7DADA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ZiIiIlS7du1KR2EOHz5c6WjNWRMnTtS4ceMctysqKvTLL78oPDxcNpvNrfMVFxcrLi5OeXl5ql+/vlufG//B++wZvM+ewfvsGbzPnnE532fLsnTs2DHFxsZedFufjpk6derohhtu0KpVq9S/f3/H+lWrVqlv377nfYzdbpfdbndad8UVV1zOMVW/fn3+Y/EA3mfP4H32DN5nz+B99ozL9T6HhYVVazufjhlJGjdunO677z61a9dO7du31yuvvKLc3FyNHDnS26MBAAAf4PMxM2jQIBUVFWnKlCnKz89X69attXz5ciUkJHh7NAAA4AN8PmYkadSoURo1apS3x6jEbrdr8uTJlU5rwb14nz2D99kzeJ89g/fZM3zlfbZZVnU+8wQAAOCbfPpL8wAAAC6GmAEAAEYjZgAAgNGIGQAAYDRixgXr169Xnz59FBsbK5vNpqVLl3p7JL+TmZmpG2+8UaGhoYqKilK/fv0cvz0C95o7d67atGnj+NKr9u3b66OPPvL2WH4tMzNTNptNY8eO9fYoficjI0M2m81piY6O9vZYfungwYMaOnSowsPDFRwcrOuuu07btm3zyizEjAtKSkp07bXXavbs2d4exW+tW7dODz/8sDZt2qRVq1bpzJkz6t69u0pKSrw9mt9p3Lixnn76aW3dulVbt27VHXfcob59+2rXrl3eHs0vbdmyRa+88oratGnj7VH8VqtWrZSfn+9Yvv76a2+P5HeOHDmiW2+9VYGBgfroo4/07bffasaMGZf9G/erYsT3zPia1NRUpaamensMv/bxxx873c7KylJUVJS2bdumjh07emkq/9SnTx+n2//7v/+ruXPnatOmTWrVqpWXpvJPx48f17333qt58+Zp6tSp3h7HbwUEBHA05jJ75plnFBcXp6ysLMe6q666ymvzcGQGRjh69KgkqWHDhl6exL+Vl5dr8eLFKikpUfv27b09jt95+OGH1atXL3Xt2tXbo/i1nJwcxcbGKjExUYMHD9ZPP/3k7ZH8zrJly9SuXTv9+c9/VlRUlK6//nrNmzfPa/MQM/B5lmVp3Lhxuu2229S6dWtvj+OXvv76a9WrV092u10jR47Uu+++q5YtW3p7LL+yePFibd++XZmZmd4exa/dfPPNWrhwoVasWKF58+apoKBAHTp0UFFRkbdH8ys//fST5s6dq6SkJK1YsUIjR47UX//6Vy1cuNAr83CaCT5v9OjR2rlzpz777DNvj+K3mjVrph07dujXX3/VP//5T6WlpWndunUEjZvk5eVpzJgxWrlyperWrevtcfza7y8BSE5OVvv27XXNNddowYIFGjdunBcn8y8VFRVq166dpk2bJkm6/vrrtWvXLs2dO1fDhg3z+DwcmYFPe+SRR7Rs2TKtWbNGjRs39vY4fqtOnTpq0qSJ2rVrp8zMTF177bV6/vnnvT2W39i2bZsOHz6sG264QQEBAQoICNC6dev0wgsvKCAgQOXl5d4e0W+FhIQoOTlZOTk53h7Fr8TExFT6PzstWrRQbm6uV+bhyAx8kmVZeuSRR/Tuu+9q7dq1SkxM9PZIfyiWZamsrMzbY/iNLl26VPpEzf3336/mzZvrb3/7m2rXru2lyfxfWVmZdu/erdtvv93bo/iVW2+9tdLXZXz//fdKSEjwyjzEjAuOHz+uH374wXF779692rFjhxo2bKj4+HgvTuY/Hn74YS1atEjvvfeeQkNDVVBQIEkKCwtTUFCQl6fzL5MmTVJqaqri4uJ07NgxLV68WGvXrq30iTK4LjQ0tNL1XiEhIQoPD+c6MDebMGGC+vTpo/j4eB0+fFhTp05VcXGx0tLSvD2aX3n00UfVoUMHTZs2TXfffbc2b96sV155Ra+88op3BrJwydasWWNJqrSkpaV5ezS/cb73V5KVlZXl7dH8zogRI6yEhASrTp06VmRkpNWlSxdr5cqV3h7L73Xq1MkaM2aMt8fwO4MGDbJiYmKswMBAKzY21howYIC1a9cub4/ll95//32rdevWlt1ut5o3b2698sorXpvFZlmW5Z2MAgAAqDkuAAYAAEYjZgAAgNGIGQAAYDRiBgAAGI2YAQAARiNmAACA0YgZAABgNGIGgJFSUlI0duxYb48BwAcQMwA8rk+fPuratet579u4caNsNpu2b9/u4akAmIqYAeBx6enpWr16tfbv31/pvvnz5+u6665T27ZtvTAZABMRMwA8rnfv3oqKilJ2drbT+hMnTmjJkiXq16+f7rnnHjVu3FjBwcFKTk7Wm2++ecHntNlsWrp0qdO6K664wmkfBw8e1KBBg9SgQQOFh4erb9++2rdvn3teFACvIWYAeFxAQICGDRum7Oxs/f7n4d566y2dOnVKDzzwgG644QZ98MEH+uabb/Rf//Vfuu+++/TFF1+4vM8TJ06oc+fOqlevntavX6/PPvtM9erV05133qlTp06542UB8BJiBoBXjBgxQvv27dPatWsd6+bPn68BAwboyiuv1IQJE3Tdddfp6quv1iOPPKIePXrorbfecnl/ixcvVq1atfTqq68qOTlZLVq0UFZWlnJzc51mAGCeAG8PAOCPqXnz5urQoYPmz5+vzp0768cff9SGDRu0cuVKlZeX6+mnn9aSJUt08OBBlZWVqaysTCEhIS7vb9u2bfrhhx8UGhrqtP7kyZP68ccfa/pyAHgRMQPAa9LT0zV69Gi9+OKLysrKUkJCgrp06aLp06frueee06xZs5ScnKyQkBCNHTv2gqeDbDab0ykrSTp9+rTjnysqKnTDDTfojTfeqPTYyMhI970oAB5HzADwmrvvvltjxozRokWLtGDBAv3lL3+RzWbThg0b1LdvXw0dOlTSbyGSk5OjFi1aVPlckZGRys/Pd9zOycnRiRMnHLfbtm2rJUuWKCoqSvXr1798LwqAx3HNDACvqVevngYNGqRJkybp0KFDGj58uCSpSZMmWrVqlT7//HPt3r1bDz74oAoKCi74XHfccYdmz56t7du3a+vWrRo5cqQCAwMd9997772KiIhQ3759tWHDBu3du1fr1q3TmDFjdODAgcv5MgFcZsQMAK9KT0/XkSNH1LVrV8XHx0uSnnjiCbVt21Y9evRQSkqKoqOj1a9fvws+z4wZMxQXF6eOHTtqyJAhmjBhgoKDgx33BwcHa/369YqPj9eAAQPUokULjRgxQqWlpRypAQxns849yQwAAGAQjswAAACjETMAAMBoxAwAADAaMQMAAIxGzAAAAKMRMwAAwGjEDAAAMBoxAwAAjEbMAAAAoxEzAADAaMQMAAAwGjEDAACM9v8BoOvuc3fyXKsAAAAASUVORK5CYII=\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAhYAAAGdCAYAAABO2DpVAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAAASE0lEQVR4nO3dX2yVd/3A8c9hZGft1naCklE5rP4ZthuyCVt0P4wZ/k1/jrgLvTBUiYmLf5pNbYxmu3GNc9U7TUjIZpbtAifGGHCJgagX0BitQpFkme0AhYjiZpZoTyl4ko3zu/jFZnXU7Wk/p4cDr1fSkOfp8+dzd958z9NzSvV6vR4AAAmWNXsAAODyISwAgDTCAgBIIywAgDTCAgBIIywAgDTCAgBIIywAgDTLl/qGFy5ciDNnzkRHR0eUSqWlvj0AsAD1ej2mp6eju7s7li2bf11iycPizJkzUalUlvq2AECC06dPx5o1a+b9/ZKHRUdHR0T8/2CdnZ1LfXsAYAGq1WpUKpXZ1/H5LHlY/Pvtj87OTmEBAC3mtR5j8PAmAJBGWAAAaYQFAJBGWAAAaYQFAJBGWAAAaYQFAJBGWAAAaYQFAJCmcFj89a9/jYGBgVi5cmW0t7fHbbfdFuPj442YDQBoMYU+0vsf//hHbN68ObZs2RL79u2LVatWxR//+Me4/vrrGzQeANBKCoXFd77znahUKvHEE0/M7uvp6cmeCQBoUYXC4umnn46PfOQj8YlPfCIOHjwYb37zm+OLX/xi3HvvvfOeU6vVolarzW5Xq9WFTwukO3fuXExOTqZc6/z583Hq1Kno6emJtra2RV+vt7c32tvbEyYDlkqhsPjTn/4UO3fujKGhoXjwwQfjd7/7Xdx///1RLpfj05/+9EXPGRkZieHh4ZRhgXyTk5OxadOmZo9xUePj47Fx48ZmjwEUUKrX6/XXe/DVV18dt99+e/z617+e3Xf//ffHoUOH4je/+c1Fz7nYikWlUompqSlfmw6XgMwVi4mJiRgYGIhdu3ZFX1/foq9nxQIuHdVqNbq6ul7z9bvQisXq1avj5ptvnrOvr68vfvKTn8x7TrlcjnK5XOQ2wBJqb29PXxXo6+uz0gBXqEJ/brp58+Z47rnn5uw7duxY3HjjjalDAQCtqVBYfOUrX4mxsbF45JFH4sSJE/HUU0/FY489FoODg42aDwBoIYXC4o477og9e/bED3/4w1i/fn1885vfjO9+97uxbdu2Rs0HALSQQs9YRETcfffdcffddzdiFgCgxfmuEAAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgTaGweOihh6JUKs35ueGGGxo1GwDQYpYXPeGWW26JX/7yl7PbV111VepAAEDrKhwWy5cvt0oBAFxU4bA4fvx4dHd3R7lcjne/+93xyCOPxFvf+tZ5j6/ValGr1Wa3q9XqwiYF5jh+/HhMT083e4w5JiYm5vx7qejo6Iibbrqp2WPAFaFUr9frr/fgffv2xblz52LdunXxwgsvxMMPPxyTk5Px7LPPxsqVKy96zkMPPRTDw8Ov2j81NRWdnZ0LnxyuYMePH49169Y1e4yWcuzYMXEBi1CtVqOrq+s1X78LhcV/mpmZibe97W3xta99LYaGhi56zMVWLCqVirCARThy5Ehs2rQpdu3aFX19fc0eZ9b58+fj1KlT0dPTE21tbc0eJyL+f/VkYGAgxsfHY+PGjc0eB1rW6w2Lwm+FvNK1114b73znO+P48ePzHlMul6NcLi/mNsA8+vr6LrkXy82bNzd7BKCJFvU5FrVaLSYmJmL16tVZ8wAALaxQWHz1q1+NgwcPxsmTJ+O3v/1tfPzjH49qtRrbt29v1HwAQAsp9FbIX/7yl/jkJz8ZL774YrzpTW+K97znPTE2NhY33nhjo+YDAFpIobDYvXt3o+YAAC4DvisEAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANIsKi5GRkSiVSvHlL385aRwAoJUtOCwOHToUjz32WGzYsCFzHgCghS0oLM6ePRvbtm2L73//+/GGN7wheyYAoEUtX8hJg4OD8dGPfjQ++MEPxsMPP/xfj63ValGr1Wa3q9XqQm4JvELppX/Fu25YFm3/PBZxxqNS/03bP4/Fu25YFqWX/tXsUeCKUDgsdu/eHUeOHIlDhw69ruNHRkZieHi48GDA/K45++c48rnrIkY/FzHa7GkubX0RceRz18XE2T9HxP80exy47BUKi9OnT8eXvvSl+PnPfx7XXHPN6zrngQceiKGhodntarUalUql2JTAHP+6bm1sfPRs/OAHP4i+3t5mj3NJm5icjG3btsXj/7u22aPAFaFQWIyPj8ff//732LRp0+y+l19+OUZHR2PHjh1Rq9XiqquumnNOuVyOcrmcMy0QERH15dfE75+/EOevXxfRfVuzx7mknX/+Qvz++QtRX/76/jMELE6hsPjABz4QzzzzzJx9n/nMZ6K3tze+/vWvvyoqAIArS6Gw6OjoiPXr18/Zd+2118bKlStftR8AuPJ4nBwASLOgPzd9pQMHDiSMAQBcDqxYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkKZQWOzcuTM2bNgQnZ2d0dnZGXfeeWfs27evUbMBAC2mUFisWbMmvv3tb8fhw4fj8OHD8f73vz8+9rGPxbPPPtuo+QCAFrK8yMFbt26ds/2tb30rdu7cGWNjY3HLLbekDgYAtJ5CYfFKL7/8cvz4xz+OmZmZuPPOO+c9rlarRa1Wm92uVqsLvSUAcIkr/PDmM888E9ddd12Uy+X4/Oc/H3v27Imbb7553uNHRkaiq6tr9qdSqSxqYADg0lU4LN7xjnfE0aNHY2xsLL7whS/E9u3b4w9/+MO8xz/wwAMxNTU1+3P69OlFDQwAXLoKvxVy9dVXx9vf/vaIiLj99tvj0KFD8b3vfS8effTRix5fLpejXC4vbkoAoCUs+nMs6vX6nGcoAIArV6EViwcffDD6+/ujUqnE9PR07N69Ow4cOBD79+9v1HwAQAspFBYvvPBCfOpTn4q//e1v0dXVFRs2bIj9+/fHhz70oUbNBwC0kEJh8fjjjzdqDgDgMuC7QgCANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEhTKCxGRkbijjvuiI6Ojli1alXcc8898dxzzzVqNgCgxRQKi4MHD8bg4GCMjY3FL37xi3jppZfiwx/+cMzMzDRqPgCghSwvcvD+/fvnbD/xxBOxatWqGB8fj/e9732pgwEAradQWPynqampiIhYsWLFvMfUarWo1Wqz29VqdTG3BCLi3LlzERFx5MiRJk8y1/nz5+PUqVPR09MTbW1tzR4nIiImJiaaPQJcURYcFvV6PYaGhuK9731vrF+/ft7jRkZGYnh4eKG3AS5icnIyIiLuvffeJk/SOjo6Opo9AlwRSvV6vb6QEwcHB+NnP/tZ/OpXv4o1a9bMe9zFViwqlUpMTU1FZ2fnQm4NV7wXX3wx9u7dG729vdHe3t7scWZNTEzEwMBA7Nq1K/r6+po9zqyOjo646aabmj0GtLRqtRpdXV2v+fq9oBWL++67L55++ukYHR39r1EREVEul6NcLi/kNsA83vjGN8ZnP/vZZo8xr76+vti4cWOzxwCaoFBY1Ov1uO+++2LPnj1x4MCBeMtb3tKouQCAFlQoLAYHB+Opp56Kn/70p9HR0RHPP/98RER0dXVdMg9qAQDNU+hzLHbu3BlTU1Nx1113xerVq2d/fvSjHzVqPgCghRR+KwQAYD6+KwQASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0hcNidHQ0tm7dGt3d3VEqlWLv3r0NGAsAaEWFw2JmZiZuvfXW2LFjRyPmAQBa2PKiJ/T390d/f38jZgEAWlzhsCiqVqtFrVab3a5Wq42+JVDAuXPnYnJyMuVaExMTc/5drN7e3mhvb0+5FrA0Gh4WIyMjMTw83OjbAAs0OTkZmzZtSr3mwMBAynXGx8dj48aNKdcClkapXq/XF3xyqRR79uyJe+65Z95jLrZiUalUYmpqKjo7Oxd6ayBJ5orF+fPn49SpU9HT0xNtbW2Lvp4VC7h0VKvV6Orqes3X74avWJTL5SiXy42+DbBA7e3tqasCmzdvTrsW0Hp8jgUAkKbwisXZs2fjxIkTs9snT56Mo0ePxooVK2Lt2rWpwwEAraVwWBw+fDi2bNkyuz00NBQREdu3b48nn3wybTAAoPUUDou77rorFvG8JwBwGfOMBQCQRlgAAGmEBQCQRlgAAGmEBQCQRlgAAGmEBQCQRlgAAGmEBQCQpuHfbvqf/v2pndVqdalvDQAs0L9ft1/r07eXPCymp6cjIqJSqSz1rQGARZqeno6urq55f1+qL/EXf1y4cCHOnDkTHR0dUSqVlvLWQINVq9WoVCpx+vTp6OzsbPY4QKJ6vR7T09PR3d0dy5bN/yTFkocFcPmqVqvR1dUVU1NTwgKuUB7eBADSCAsAII2wANKUy+X4xje+EeVyudmjAE3iGQsAII0VCwAgjbAAANIICwAgjbAAANIIC2DRRkdHY+vWrdHd3R2lUin27t3b7JGAJhEWwKLNzMzErbfeGjt27Gj2KECTLfmXkAGXn/7+/ujv72/2GMAlwIoFAJBGWAAAaYQFAJBGWAAAaYQFAJDGX4UAi3b27Nk4ceLE7PbJkyfj6NGjsWLFili7dm0TJwOWmm83BRbtwIEDsWXLllft3759ezz55JNLPxDQNMICAEjjGQsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADS/B9nJH8/99x/+QAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] @@ -867,25 +689,23 @@ ], "source": [ "# your code here\n", - "sorted_roll_dice_df = roll_dice_df.sort_values(by='value')\n", + "sorted_rolls = roll_dice_df['value'].sort_values()\n", "\n", - "plt.hist(sorted_roll_dice_df['value'], bins=15, edgecolor='black')\n", - "plt.xlabel('Value')\n", - "plt.ylabel('Frequency')\n", - "plt.title('Value Distribution')\n", - "plt.show()" + "plt.boxplot(sorted_rolls)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 105, "metadata": {}, "outputs": [], "source": [ - "\"\"\"\n", - "your comments here\n", - "\"\"\"\n", - "\n" + "\n", + "#Perfect normal distribution\n", + "\n", + "#IQR (to develop)\n", + "\n", + "#Mean : around 50\n" ] }, { @@ -897,7 +717,7 @@ }, { "cell_type": "code", - "execution_count": 218, + "execution_count": 106, "metadata": {}, "outputs": [ { @@ -918,7 +738,7 @@ }, { "cell_type": "code", - "execution_count": 221, + "execution_count": 107, "metadata": {}, "outputs": [ { @@ -945,26 +765,29 @@ }, { "cell_type": "code", - "execution_count": 248, + "execution_count": 141, "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" + " Dice Number Frequency\n", + "0 1 12\n", + "1 2 17\n", + "2 3 14\n", + "3 4 22\n", + "4 5 12\n", + "5 6 23\n" ] } ], "source": [ "# your code here\n", - "frequency_distribution = roll_dice_df['value'].value_counts().sort_index()\n", + "frequency_distribution = roll_dice_df['value'].value_counts().sort_index().reset_index()\n", + "\n", + "frequency_distribution.columns = ['Dice Number', 'Frequency']\n", + "\n", "print(frequency_distribution)" ] }, @@ -977,22 +800,12 @@ }, { "cell_type": "code", - "execution_count": 249, + "execution_count": 146, "metadata": {}, "outputs": [ { "data": { - "text/plain": [ - "Text(0.5, 1.0, 'Dice Rolls Frequency Distribution')" - ] - }, - "execution_count": 249, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjMAAAHFCAYAAAAHcXhbAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA0YklEQVR4nO3deXhU1f3H8c+QkJUkECRbgRBlU0EQQYQoO9SwlFVBQMKiRUGKIHVBfxIqEpZCUSlxT6AtIlREEBGobMrSAgooWEDZJTEKSEKEIMn5/eGTqUMWkiFkcuL79TzzPN57z73nO3cmzodzz51xGGOMAAAALFXJ0wUAAABcDcIMAACwGmEGAABYjTADAACsRpgBAABWI8wAAACrEWYAAIDVCDMAAMBqhBkAAGA1wgzKtZSUFDkcDufDz89PERERat++vRITE5Wenp5vn4SEBDkcjjKt88iRIy51VqpUSdWqVVPHjh21Zs2aqzpmSkqKc13e+Thy5MhV1zx06FCXmn/5eP/996/6+Pify891YGCg6tSpo9/97ndKTk5WdnZ2vn3atWundu3alaifffv2KSEhocTvj8v7ynvv/fnPfy7Rca5k6tSpWrZsWb71GzZskMPh0IYNG0q1P/x6eHu6AKA4kpOT1bBhQ/30009KT0/XJ598ounTp+vPf/6z3n77bXXq1MnZ9oEHHtDdd9/tkTrHjBmjgQMHKicnR//97381efJkde3aVevWrVObNm08UlNR/P39tW7dunzrGzZs6IFqKrZfnuvz58/r+PHjWrVqlR588EHNmjVLH374oWrWrOlsP2/evBL3sW/fPk2ePFnt2rVTnTp1ir2fO325Y+rUqerXr5969erlsr5Zs2baunWrbrrppjKpAxUPYQZWaNSokZo3b+5c7tu3r8aNG6c777xTffr00cGDBxUeHi5JqlmzpsuHQlmqXbu27rjjDklSbGys6tWrp7Zt2+qNN94ol2GmUqVKznqL48cff1RAQMA1rKjiKuhcDxkyRMOGDVP37t3Vr18/bdu2zbmtLD7Y815PT4eI4ODgEr0PgctxmQnWql27tmbNmqXMzEy98sorzvWFXWZauHChWrVqpSpVqqhKlSpq2rSp3njjDZc2//rXv9SxY0cFBwcrICBAsbGx+uijj9yuMS+Affvtty7rv/jiC/Xs2VPVqlWTn5+fmjZtqvnz57vVx2effabu3bsrLCxMvr6+ioqKUrdu3XTixAm365b+dx4//fRT9evXT9WqVdMNN9wgSTLGaN68eWratKn8/f1VrVo19evXT4cOHXI5hjFGM2bMUHR0tPz8/NSsWTOtWrUq32WNwi6fFXb5oTivU179e/fu1X333aeQkBCFh4dr+PDhOnv2rEvb3NxcvfTSS87nU7VqVd1xxx1avny5JGnEiBEKDQ3Vjz/+mO88dejQQTfffHNJTq2LLl266MEHH9S///1vbdq0ybm+oMtMSUlJatKkiapUqaKgoCA1bNhQEydOlPTzObznnnskSe3bt3de0sq7TNmuXTs1atRImzZtUuvWrRUQEKDhw4cX2lfeeXn++edVu3Zt+fn5qXnz5vnO89ChQwscBbr879DhcCgrK0vz58931pbXZ2Gv8/Lly9WqVSsFBAQoKChInTt31tatWwvspzivMyouwgys1rVrV3l5ebl8CBTk2Wef1aBBgxQVFaWUlBS9++67io+P19GjR51t/v73v6tLly4KDg7W/PnztXjxYoWGhuq3v/2t24Hm8OHDkqT69es71+3fv1+tW7fW3r179eKLL2rp0qW66aabNHToUM2YMaNEx8/KylLnzp317bff6q9//avWrl2rOXPmqHbt2srMzCzWMS5duuTyyMnJcdnep08f1a1bV0uWLNHLL78sSRo5cqQeffRRderUScuWLdO8efO0d+9etW7d2iW4TZ48WU888YQ6d+6sZcuW6eGHH9aDDz6o/fv3l+h5/lJJX6e+ffuqfv36euedd/Tkk09q4cKFGjdunEuboUOHauzYsWrRooXefvttLVq0SL/73e+c4Wrs2LE6c+aMFi5c6LLfvn37tH79eo0ePdrt5yNJv/vd7ySpyPfxokWLNGrUKLVt21bvvvuuli1bpnHjxikrK0uS1K1bN02dOlWS9Ne//lVbt27V1q1b1a1bN+cxUlNTNXjwYA0cOFAffPCBRo0aVWRdc+fO1Ycffqg5c+bo73//uypVqqS4uLh8gaI4tm7dKn9/f3Xt2tVZW1GXtxYuXKiePXsqODhYb731lt544w2dOXNG7dq10yeffJKvfXFeZ1RgBijHkpOTjSSzffv2QtuEh4ebG2+80bk8adIk88u39qFDh4yXl5cZNGhQocfIysoyoaGhpkePHi7rc3JyTJMmTcztt99eZJ2HDx82ksz06dPNTz/9ZC5cuGB27dplWrVqZSIjI83hw4edbQcMGGB8fX3NsWPHXI4RFxdnAgICzA8//OByzOTk5HznI+94O3bsMJLMsmXLiqyvIPHx8UZSvkdsbKwx5n/n8dlnn3XZb+vWrUaSmTVrlsv648ePG39/f/P4448bY4w5c+aM8fPzM71793Zpt3nzZiPJtG3bttDnlWf9+vVGklm/fr0xpmSvU179M2bMcGk7atQo4+fnZ3Jzc40xxmzatMlIMk8//XSR56tt27amadOmLusefvhhExwcbDIzM4vcNz4+3gQGBha6/csvvzSSzMMPP+zS3y/P0SOPPGKqVq1aZD9LlixxOV+X1y/JfPTRRwVu+2Vfee+9qKgoc/78eef6jIwMExoaajp16uTy3KKjo/Md8/K/Q2OMCQwMNPHx8fnaXv465+TkmKioKNO4cWOTk5PjbJeZmWnCwsJM69at8/VzpdcZFRsjM7CeMabI7WvXrlVOTk6R/3resmWLTp8+rfj4eJdRitzcXN19993avn2781/ARXniiSdUuXJl56WjL774QitWrHAZhl+3bp06duyoWrVquew7dOhQ/fjjjyX6V2/dunVVrVo1PfHEE3r55Ze1b9++Yu8r/Twpdfv27S6Pyy+99e3b12X5/fffl8Ph0ODBg13OVUREhJo0aeK8VLB161ZduHBBgwYNctm/devWio6OLlGdedx5nfJGPfLccsstunDhgvNOuFWrVknSFUdXxo4dq127dmnz5s2SpIyMDP3tb39TfHy8qlSp4tbzyXOl97Ak3X777frhhx9033336b333tP3339f4n6qVaumDh06FLt9nz595Ofn51wOCgpSjx49tGnTpnwjeKVp//79OnnypO6//35VqvS/j6kqVaqob9++2rZtW75Lfld6nVGxMQEYVsvKytKpU6fUuHHjQtt89913klTkpOC8SyP9+vUrtM3p06cVGBhYZD1jx47V4MGDlZ2drW3btumZZ55Rz549tXv3blWvXl2SdOrUKUVGRubbNyoqyrm9uEJCQrRx40Y9//zzmjhxos6cOaPIyEg9+OCDeuaZZ1S5cuUi969UqZLLxOqCXF7rt99+K2OMc8L15a6//nqX5xEREZGvTUHrisOd1ynvvOfx9fWV9PMdRdLP7w8vL68r1tSzZ0/VqVNHf/3rXxUbG6uUlBRlZWVd9SUmSc7LnXnvgYLcf//9unTpkl577TX17dtXubm5atGihaZMmaLOnTsXq5+C3ndFKey1u3jxos6dO6eQkJASHa+48t47hf2d5Obm6syZMy6T0a/0OqNiI8zAaitXrlROTk6R38dRo0YNSdKJEyfyjYbkue666yRJL730UqF3VRT24f1LNWvWdIaD2NhYRUREaPDgwZo0aZLmzp0r6ef/6aampubb9+TJky61FFfjxo21aNEiGWO0Z88epaSk6E9/+pP8/f315JNPluhYBbl8MvV1110nh8Ohjz/+2PmB8Ut56/I+XNLS0vK1SUtLcxmtyvvX/+Xft3L56ENpvU6/VKNGDeXk5CgtLa3ID/tKlSpp9OjRmjhxombNmqV58+apY8eOatCgQYn6K0jeROMrfa/MsGHDNGzYMGVlZWnTpk2aNGmSunfvrgMHDhRrtKuk379U2Gvn4+PjHI3y8/Mr8Hty3Bk5ypP33ins7yTve5yAPFxmgrWOHTumCRMmKCQkRCNHjiy0XZcuXeTl5aWkpKRC28TGxqpq1arat2+fmjdvXuDDx8enxDUOGjRI7dq102uvveb813fHjh21bt06Z3jJs2DBAgUEBLh9i6rD4VCTJk30l7/8RVWrVtWnn37q1nGupHv37jLG6JtvvinwPOWNkt1xxx3y8/PTP/7xD5f9t2zZ4jLxWpIz2OzZs8dlfd6HfJ5r8TrFxcVJUpHvjzwPPPCAfHx8NGjQIO3fv1+PPPJIifoqyNq1a/X666+rdevWuvPOO4u1T2BgoOLi4vT000/r4sWL2rt3r6TSH41YunSpLly44FzOzMzUihUrdNddd8nLy0vSz69denq6y8TvixcvavXq1fmO5+vrW6zaGjRooN/85jdauHChyyW4rKwsvfPOO847nIA8jMzACl988YVzfkR6ero+/vhjJScny8vLS++++65z9KUgderU0cSJE/Xcc8/p/Pnzzts39+3bp++//16TJ09WlSpV9NJLLyk+Pl6nT59Wv379FBYWpu+++067d+/Wd999V6wPu4JMnz5dLVu21HPPPafXX39dkyZN0vvvv6/27dvr2WefVWhoqP7xj39o5cqVmjFjRomG7t9//33NmzdPvXr10vXXXy9jjJYuXaoffvih2JceSio2Nla///3vNWzYMO3YsUNt2rRRYGCg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hYaGKjQ0VAkJCerbt68iIyN15MgRTZw4Udddd5169+7twaoBAEB54tEws2PHDrVv3965nDfXJT4+XklJSfr888+1YMEC/fDDD4qMjFT79u319ttvKygoyFMlAwCAcsajYaZdu3YyxhS6ffXq1WVYDQAAsJFVc2YAAAAuR5gBAABWI8wAAACrEWYAAIDVCDMAAMBqboWZw4cPl3YdAAAAbnErzNStW1ft27fX3//+d124cKG0awIAACg2t8LM7t27deutt+qxxx5TRESERo4cqf/85z+lXRsAAMAVufWleY0aNdLs2bM1Y8YMrVixQikpKbrzzjtVr149jRgxQvfff79q1KhR2rUCuMbqPLnSI/0emdbNI/0CqBiuagKwt7e3evfurcWLF2v69On6+uuvNWHCBNWsWVNDhgxRampqadUJAABQoKsKMzt27NCoUaMUGRmp2bNna8KECfr666+1bt06ffPNN+rZs2dp1QkAAFAgty4zzZ49W8nJydq/f7+6du2qBQsWqGvXrqpU6edsFBMTo1deeUUNGzYs1WIBAAAu51aYSUpK0vDhwzVs2DBFREQU2KZ27dp64403rqo4AACAK3ErzBw8ePCKbXx8fBQfH+/O4QEAAIrNrTkzycnJWrJkSb71S5Ys0fz586+6KAAAgOJyK8xMmzZN1113Xb71YWFhmjp16lUXBQAAUFxuhZmjR48qJiYm3/ro6GgdO3bsqosCAAAoLrfCTFhYmPbs2ZNv/e7du1W9evWrLgoAAKC43AozAwYM0B/+8AetX79eOTk5ysnJ0bp16zR27FgNGDCgtGsEAAAolFt3M02ZMkVHjx5Vx44d5e398yFyc3M1ZMgQ5swAAIAy5VaY8fHx0dtvv63nnntOu3fvlr+/vxo3bqzo6OjSrg8AAKBIboWZPPXr11f9+vVLqxYAAIAScyvM5OTkKCUlRR999JHS09OVm5vrsn3dunWlUhwAAMCVuBVmxo4dq5SUFHXr1k2NGjWSw+Eo7boAAACKxa0ws2jRIi1evFhdu3Yt7XoAAABKxK1bs318fFS3bt3SrgUAAKDE3Aozjz32mF544QUZY0q7HgAAgBJx6zLTJ598ovXr12vVqlW6+eabVblyZZftS5cuLZXiAAAArsStMFO1alX17t27tGsBAAAoMbfCTHJycmnXAQAA4Ba35sxI0qVLl/Sv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W291BpnL7dy5U9u3b3cZicnJydGFCxf0448/KiAgIN8+VatWVZ8+ffTmm29q2LBhyszM1DvvvONymejll1/W66+/rqNHj+r8+fO6ePGimjZt6vZz3Llzp86dO6fq1au7rD9//ry+/vprSdL48eP1wAMP6G9/+5s6deqke+65RzfccIPbfQIoPsIMgKvy5ZdfKiYmpsBt/v7+Re6bm5uryZMnq0+fPvm2+fn5FbrfiBEj1LFjRx08eFAbN26UJPXv31+StHjxYo0bN06zZs1Sq1atFBQUpJkzZ7rM07lcpUqVZIxxWffTTz+51BkZGakNGzbk27dq1aqSpISEBA0cOFArV67UqlWrNGnSJC1atEi9e/cutF8ApYMwA8Bt69at0+eff65x48YVuP2WW27R66+/rtOnTxc4OtOsWTPt37/f5dJTcbRv317XX3+9UlJStH79et17770KCgqSJH388cdq3bq1Ro0a5WyfN3pSmBo1aig1NdW5nJGRocOHD7vUmZaWJm9vb9WpU6fQ49SvX1/169fXuHHjdN999yk5OZkwA5QBJgADKJbs7GylpaXpm2++0aeffqqpU6eqZ8+e6t69u4YMGVLgPvfdd58iIiLUq1cvbd68WYcOHdI777yjrVu3SpKeffZZLViwQAkJCdq7d6++/PJLvf3223rmmWeKrMXhcGjYsGFKSkrS1q1bNWLECOe2unXraseOHVq9erUOHDig//u//9P27duLPF6HDh30t7/9TR9//LG++OILxcfHy8vLy7m9U6dOatWqlXr16qXVq1fryJEj2rJli5555hnt2LFD58+f1yOPPKINGzbo6NGj2rx5s7Zv364bb7yxuKcXwFUgzAAolg8//FCRkZGqU6eO7r77bq1fv14vvvii3nvvPZcP/l/y8fHRmjVrFBYWpq5du6px48aaNm2as/1vf/tbvf/++1q7dq1atGihO+64Q7Nnz1Z0dPQV6xk6dKjOnj2rBg0aKDY21rn+oYceUp8+fdS/f3+1bNlSp06dchmlKchTTz2lNm3aqHv37uratat69erlMt/F4XDogw8+UJs2bTR8+HDVr19fAwYM0JEjRxQeHi4vLy+dOnVKQ4YMUf369XXvvfcqLi7OZSIygGvHYS6/UAwAAGARRmYAAIDVCDMAAMBqhBkAAGA1wgwAALAaYQYAAFiNMAMAAKxGmAEAAFYjzAAAAKsRZgAAgNUIMwAAwGqEGQAAYDXCDAAAsNr/A1TGoMT9UQ1fAAAAAElFTkSuQmCC\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjMAAAHFCAYAAAAHcXhbAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAABAuUlEQVR4nO3deXgO9/7/8dct5M4iQhBJKgmtrZamVWotUqSCoJZWSwWnPV1QpSvntPhVBT2cnjaHbiScFq1TYmkpLUmqpYdqSlFLGwSxtDSRqCCZ3x+9cn97yyK5Re57kufjuua6OjOfmXnfc0/cr858ZsZiGIYhAAAAk6ri7AIAAACuB2EGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGLi0+Pl4Wi8U2eHh4KCAgQOHh4YqJidHp06cLLDN16lRZLJZyrfPw4cN2dVapUkW1atVS9+7dtWHDhutaZ3x8vG1a/v44fPjwddc8cuRIu5r/PKxdu/a614//c/W+9vb2VoMGDdSvXz/FxcUpJyenwDLdunVTt27dSrWdvXv3aurUqaU+Pq7eVv6x949//KNU67mWGTNmKCEhocD0xMREWSwWJSYmlun2UHlUdXYBQEnExcWpWbNmunz5sk6fPq0tW7Zo1qxZ+sc//qEPP/xQPXr0sLV95JFH1KtXL6fUOW7cOD300EPKzc3Vjz/+qGnTpql3797atGmTunTp4pSaiuPp6alNmzYVmN6sWTMnVFOx/Xlf//7770pLS9O6dev06KOPas6cOVq/fr3q169vaz9v3rxSb2Pv3r2aNm2aunXrpgYNGpR4OUe25YgZM2Zo8ODBGjBggN301q1ba+vWrWrevHm51IGKhzADU2jZsqXatGljGx80aJAmTJigzp07a+DAgTp48KDq1asnSapfv77dj0J5CgkJUfv27SVJnTp1UuPGjdW1a1ctWLDAJcNMlSpVbPWWxIULF+Tl5XUDK6q4CtvXI0aM0KhRo9S3b18NHjxY27Zts80rjx/2/O/T2SGiRo0apToOgatxmQmmFRISojlz5uj8+fN6++23bdOLusy0ZMkSdejQQdWrV1f16tV1++23a8GCBXZtPv/8c3Xv3l01atSQl5eXOnXqpC+++MLhGvMD2KlTp+ym//DDD+rfv79q1aolDw8P3X777Vq0aJFD2/juu+/Ut29f+fv7y2q1KigoSH369NGxY8ccrlv6v/24c+dODR48WLVq1dItt9wiSTIMQ/PmzdPtt98uT09P1apVS4MHD9bPP/9stw7DMDR79myFhobKw8NDrVu31rp16wpc1ijq8llRlx9K8j3l179nzx49+OCD8vX1Vb169TR69GhlZGTYtc3Ly9Obb75p+zw1a9ZU+/bttXr1aknSX/7yF/n5+enChQsF9tM999yjFi1alGbX2omIiNCjjz6qb775RsnJybbphV1mmj9/vsLCwlS9enX5+PioWbNmmjx5sqQ/9uGQIUMkSeHh4bZLWvmXKbt166aWLVsqOTlZHTt2lJeXl0aPHl3ktvL3y6uvvqqQkBB5eHioTZs2BfbzyJEjCz0LdPXfocViUXZ2thYtWmSrLX+bRX3Pq1evVocOHeTl5SUfHx/17NlTW7duLXQ7JfmeUXERZmBqvXv3lpubm92PQGFefvllDRs2TEFBQYqPj9fKlSsVHR2tI0eO2Nq8//77ioiIUI0aNbRo0SJ99NFH8vPz07333utwoElNTZUkNWnSxDZt//796tixo/bs2aM33nhDK1asUPPmzTVy5EjNnj27VOvPzs5Wz549derUKf373//Wxo0b9frrryskJETnz58v0TquXLliN+Tm5trNHzhwoBo1aqTly5frrbfekiQ99thjevrpp9WjRw8lJCRo3rx52rNnjzp27GgX3KZNm6YXXnhBPXv2VEJCgp544gk9+uij2r9/f6k+55+V9nsaNGiQmjRpoo8//lgvvviilixZogkTJti1GTlypMaPH6+2bdvqww8/1LJly9SvXz9buBo/frzOnTunJUuW2C23d+9ebd68WWPGjHH480hSv379JKnY43jZsmV68skn1bVrV61cuVIJCQmaMGGCsrOzJUl9+vTRjBkzJEn//ve/tXXrVm3dulV9+vSxrSM9PV3Dhw/XQw89pE8//VRPPvlksXXFxsZq/fr1ev311/X++++rSpUqioyMLBAoSmLr1q3y9PRU7969bbUVd3lryZIl6t+/v2rUqKGlS5dqwYIFOnfunLp166YtW7YUaF+S7xkVmAG4sLi4OEOSsX379iLb1KtXz7j11ltt41OmTDH+fGj//PPPhpubmzFs2LAi15GdnW34+fkZUVFRdtNzc3ONsLAw46677iq2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pUsXeXt7Kz09XVu2bFGrVq30xBNPqFatWnr22Wc1ffp0PfLIIxoyZIjS0tI0derUApcv2rZtq6ZNm+rZZ5/VlStXVKtWLa1cubLAXSs34nu6++679fDDD2v69Ok6deqU+vbtK6vVqu+++05eXl4aN26crW3NmjU1YsQIzZ8/X6GhoYqKiirxdvLy8mzPkcnJydHRo0e1bt06ffTRR7r11lv10UcfFbv8o48+Kk9PT3Xq1EmBgYE6efKkYmJi5Ovrq7Zt20r643lMkvTOO+/Ix8dHHh4eatiwYYFLMCXl5uamnj17auLEicrLy9OsWbOUmZmpadOm2do88MADevnllzV06FA999xzunjxot54441C+9S0atVKiYmJWrNmjQIDA+Xj41Poma0qVapo9uzZGjZsmPr27avHHntMOTk5eu211/Tbb79p5syZDn0eVGBO7HwMXFP+XS75g7u7u+Hv72907drVmDFjhnH69OkCyxR2F4VhGMbixYuNtm3bGh4eHkb16tWNO+64w+5OIcMwjKSkJKNPnz6Gn5+fUa1aNeOmm24y+vTpYyxfvrzYOvPv/njttdcKnT9kyBCjatWqxqFDhwzDMIzdu3cbUVFRhq+vr+Hu7m6EhYUVqKUkdzP9+OOPxoMPPmjccssthqenp+Hr62vcddddRnx8fLH1Gsa177DJ349nzpwpdP7ChQuNdu3aGd7e3oanp6dxyy23GCNGjDB27Nhha5OXl2fExMQYwcHBhru7u3HbbbcZa9asKXD3jGEYxoEDB4yIiAijRo0aRt26dY1x48YZn3zySaF355Tkeyqq/sLunMrNzTX++c9/Gi1btjTc3d0NX19fo0OHDsaaNWsKfO7ExERDkjFz5swi993Vrr5zzNPT0wgJCTGioqKMhQsXGjk5OQWWuXofLVq0yAgPDzfq1atnuLu7G0FBQcb9999v7Nq1y265119/3WjYsKHh5uZmd/x07drVaNGiRaH1FXU306xZs4xp06YZ9evXN9zd3Y077rjD+Oyzzwos/+mnnxq333674enpadx8881GbGxsoX+HKSkpRqdOnQwvLy+7O9quvpspX0JCgtGuXTvDw8PD8Pb2Nrp372589dVXdm1K8z2j4rIYRgm60QNAGfrzw9LM5plnntH8+fOVlpbm8BkPAGWLy0wAUALbtm3TgQMHNG/ePD322GME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W6fs7OwyLQgAAKA0HOoAnO/qcAMAAFDeShVmLBZLgT4x9JEBAADOVKo+M4ZhaOTIkbaXSV68eFGPP/54gbuZVqxYUXYVAgAAFKNUYSY6OtpufPjw4WVaDAAAQGmVKszExcXdqDoAAAAccl0dgAEAAJyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyN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\n", "text/plain": [ "
" ] @@ -1002,13 +815,16 @@ } ], "source": [ - "# your code here\n", - "#bins = frequency_distribution.index.to_list()\n", + "plt.bar(frequency_distribution['Dice Number'], frequency_distribution['Frequency'], color='blue')\n", "\n", - "plt.hist(frequency_distribution.index, bins=15, weights=frequency_distribution.values)\n", - "plt.xlabel('Dice Values')\n", "plt.ylabel('Frequency')\n", - "plt.title('Dice Rolls Frequency Distribution')" + "plt.xlabel('Dice Number')\n", + "plt.title('Dice Rolls Frequency Distribution')\n", + "\n", + "plt.yticks(range(min(frequency_distribution['Frequency']), max(frequency_distribution['Frequency']) + 1))\n", + "plt.xticks(range(min(frequency_distribution['Dice Number']), max(frequency_distribution['Dice Number']) + 1))\n", + "\n", + "plt.show()" ] }, { @@ -1031,7 +847,7 @@ }, { "cell_type": "code", - "execution_count": 242, + "execution_count": 111, "metadata": {}, "outputs": [ { @@ -1090,7 +906,7 @@ "2 2 2 1" ] }, - "execution_count": 242, + "execution_count": 111, "metadata": {}, "output_type": "execute_result" } @@ -1103,46 +919,50 @@ }, { "cell_type": "code", - "execution_count": 244, + "execution_count": 120, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "1 175\n", - "2 167\n", - "3 175\n", - "4 168\n", - "5 149\n", - "6 166\n", - "Name: value, dtype: int64\n" + " index value\n", + "0 1 175\n", + "1 2 167\n", + "2 3 175\n", + "3 4 168\n", + "4 5 149\n", + "5 6 166\n" ] } ], "source": [ - "frequency_distribution_2 = roll_the_dice_thousand_df['value'].value_counts().sort_index()\n", - "print(frequency_distribution_2)" + "frequency_distribution = roll_the_dice_thousand_df['value'].value_counts().sort_index().reset_index()\n", + "print(frequency_distribution)" ] }, { "cell_type": "code", - "execution_count": 246, + "execution_count": 121, "metadata": {}, "outputs": [ { - "data": { - "text/plain": [ - "Text(0.5, 1.0, 'Dice Rolls Frequency Distribution')" - ] - }, - "execution_count": 246, - "metadata": {}, - "output_type": "execute_result" + "ename": "ValueError", + "evalue": "weights should have the same shape as x", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[121], line 3\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[38;5;66;03m#bins = frequency_distribution_2.index.to_list()\u001b[39;00m\n\u001b[0;32m----> 3\u001b[0m \u001b[43mplt\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mhist\u001b[49m\u001b[43m(\u001b[49m\u001b[43mfrequency_distribution\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mindex\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mbins\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m7\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mweights\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mfrequency_distribution\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mvalues\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 4\u001b[0m plt\u001b[38;5;241m.\u001b[39mxlabel(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mDice Values\u001b[39m\u001b[38;5;124m'\u001b[39m)\n\u001b[1;32m 5\u001b[0m plt\u001b[38;5;241m.\u001b[39mylabel(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mFrequency\u001b[39m\u001b[38;5;124m'\u001b[39m)\n", + "File \u001b[0;32m~/anaconda3/lib/python3.10/site-packages/matplotlib/pyplot.py:2618\u001b[0m, in \u001b[0;36mhist\u001b[0;34m(x, bins, range, density, weights, cumulative, bottom, histtype, align, orientation, rwidth, log, color, label, stacked, data, **kwargs)\u001b[0m\n\u001b[1;32m 2612\u001b[0m \u001b[38;5;129m@_copy_docstring_and_deprecators\u001b[39m(Axes\u001b[38;5;241m.\u001b[39mhist)\n\u001b[1;32m 2613\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mhist\u001b[39m(\n\u001b[1;32m 2614\u001b[0m x, bins\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, \u001b[38;5;28mrange\u001b[39m\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, density\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m, weights\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m,\n\u001b[1;32m 2615\u001b[0m cumulative\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m, bottom\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, histtype\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mbar\u001b[39m\u001b[38;5;124m'\u001b[39m, align\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mmid\u001b[39m\u001b[38;5;124m'\u001b[39m,\n\u001b[1;32m 2616\u001b[0m orientation\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mvertical\u001b[39m\u001b[38;5;124m'\u001b[39m, rwidth\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, log\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m, color\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m,\n\u001b[1;32m 2617\u001b[0m label\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, stacked\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m, \u001b[38;5;241m*\u001b[39m, data\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs):\n\u001b[0;32m-> 2618\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mgca\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mhist\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 2619\u001b[0m \u001b[43m \u001b[49m\u001b[43mx\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mbins\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mbins\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mrange\u001b[39;49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mrange\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdensity\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdensity\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mweights\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mweights\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 2620\u001b[0m \u001b[43m \u001b[49m\u001b[43mcumulative\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mcumulative\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mbottom\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mbottom\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mhisttype\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mhisttype\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 2621\u001b[0m \u001b[43m \u001b[49m\u001b[43malign\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43malign\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43morientation\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43morientation\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mrwidth\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mrwidth\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mlog\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mlog\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 2622\u001b[0m \u001b[43m \u001b[49m\u001b[43mcolor\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mcolor\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mlabel\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mlabel\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mstacked\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mstacked\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 2623\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43m{\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mdata\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mdata\u001b[49m\u001b[43m}\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mif\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mdata\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01mis\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;129;43;01mnot\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43;01melse\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43m{\u001b[49m\u001b[43m}\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/anaconda3/lib/python3.10/site-packages/matplotlib/__init__.py:1442\u001b[0m, in \u001b[0;36m_preprocess_data..inner\u001b[0;34m(ax, data, *args, **kwargs)\u001b[0m\n\u001b[1;32m 1439\u001b[0m \u001b[38;5;129m@functools\u001b[39m\u001b[38;5;241m.\u001b[39mwraps(func)\n\u001b[1;32m 1440\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21minner\u001b[39m(ax, \u001b[38;5;241m*\u001b[39margs, data\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs):\n\u001b[1;32m 1441\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m data \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m-> 1442\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mfunc\u001b[49m\u001b[43m(\u001b[49m\u001b[43max\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;28;43mmap\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43msanitize_sequence\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43margs\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1444\u001b[0m bound \u001b[38;5;241m=\u001b[39m new_sig\u001b[38;5;241m.\u001b[39mbind(ax, \u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n\u001b[1;32m 1445\u001b[0m auto_label \u001b[38;5;241m=\u001b[39m (bound\u001b[38;5;241m.\u001b[39marguments\u001b[38;5;241m.\u001b[39mget(label_namer)\n\u001b[1;32m 1446\u001b[0m \u001b[38;5;129;01mor\u001b[39;00m bound\u001b[38;5;241m.\u001b[39mkwargs\u001b[38;5;241m.\u001b[39mget(label_namer))\n", + "File \u001b[0;32m~/anaconda3/lib/python3.10/site-packages/matplotlib/axes/_axes.py:6731\u001b[0m, in \u001b[0;36mAxes.hist\u001b[0;34m(self, x, bins, range, density, weights, cumulative, bottom, histtype, align, orientation, rwidth, log, color, label, stacked, **kwargs)\u001b[0m\n\u001b[1;32m 6728\u001b[0m w \u001b[38;5;241m=\u001b[39m [\u001b[38;5;28;01mNone\u001b[39;00m] \u001b[38;5;241m*\u001b[39m nx\n\u001b[1;32m 6730\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mlen\u001b[39m(w) \u001b[38;5;241m!=\u001b[39m nx:\n\u001b[0;32m-> 6731\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mweights should have the same shape as x\u001b[39m\u001b[38;5;124m'\u001b[39m)\n\u001b[1;32m 6733\u001b[0m input_empty \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mTrue\u001b[39;00m\n\u001b[1;32m 6734\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m xi, wi \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mzip\u001b[39m(x, w):\n", + "\u001b[0;31mValueError\u001b[0m: weights should have the same shape as x" + ] }, { "data": { - "image/png": "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aWlp2rp1qxo2bKhnnnlGVatW1dixYzVp0iQ98cQTevTRR3X69GklJCQUujzSvHlz3XXXXRo7dqyuXr2qqlWratWqVYWeuimN1+mBBx7Q448/rkmTJunHH39U165d5ebmpq+//lqenp4aMWKEtW+VKlU0YMAAzZs3T6GhoYqNjb3h/eTn51s/Ryc3N1enTp3SunXrtHz5ct19991avnx5iesPHTpUHh4eioyMVFBQkNLT05WYmChfX181b95c0m+fRyVJb7/9try9veXu7q6wsLBCl3hulIuLizp06KDRo0crPz9fU6dOVWZmpiZOnGjt07t3b73yyivq06eP/vKXv+jSpUt64403irynp2HDhtq0aZM++ugjBQUFydvbu8iRsQoVKmjatGnq16+funbtqqeeekq5ubmaPn26zp8/rylTpth1PDApJ94cDThEwVM6BZOrq6vh7+9vtGnTxpg8ebKRkZFRaJ2ingIxDMNYtGiR0bx5c8Pd3d2oXLmy0aRJE5snnQzDMDZv3mx06dLF8PPzMypVqmT86U9/Mrp06WKsWLGixDoLnl6ZPn16kcsfffRRo2LFisaxY8cMwzCM/fv3G7GxsYavr6/h6upqNGrUqFAtN/I01n//+1/jscceM+68807Dw8PD8PX1Ne677z4jOTm5xHoN4/pPCBWcx59++qnI5QsWLDBatGhheHl5GR4eHsadd95pDBgwwNi5c6e1T35+vpGYmGiEhIQYrq6uxr333mt89NFHhZ7+MQzDOHLkiNGxY0fDx8fHqFGjhjFixAhj7dq1RT5ddCOvU3H1F/XkV15envHaa68Z4eHhhqurq+Hr62u0atXK+Oijjwod96ZNmwxJxpQpU4o9d9e69sk3Dw8Po1atWkZsbKyxYMECIzc3t9A6156jhQsXGtHR0UZAQIDh6upqBAcHG7169TL27dtns96sWbOMsLAww8XFxeb906ZNG6NBgwZF1lfc01hTp041Jk6caNSsWdNwdXU1mjRpYqxfv77Q+p988onRuHFjw8PDw7jjjjuMOXPmFPlzuGfPHiMyMtLw9PS0eSLv2qexCqxevdpo0aKF4e7ubnh5eRnt2rUzvvrqK5s+N/M6w5wshnEDt/gDQBn7/YfJ3W7GjBmjefPm6fTp03aPmABwHC5jAYCD7NixQ0eOHNHcuXP11FNPEXSAcoKwAwAO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ADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1p4adLVu2KDY2VsHBwbJYLFq9erV12ZUrV/TCCy+oYcOG8vLyUnBwsAYMGKAffvjBZhtRUVGyWCw2U58+fcr4SAAAQHnl1LCTk5OjRo0aac6cOYWW/frrr9q9e7f+7//+T7t379bKlSt15MgRPfzww4X6Dh06VGlpadbprbfeKovyAQDAbaCiM3ceExOjmJiYIpf5+voqJSXFpm327Nm67777dOrUKdWqVcva7unpqcDAwFKtFQAA3J5uq3t2Lly4IIvFoipVqti0L168WNWrV1eDBg00duxYZWVllbid3NxcZWZm2kwAAMCcnDqyczMuXbqkF198UX379pWPj4+1vV+/fgoLC1NgYKAOHDigcePGae/evYVGhX4vMTFREydOLIuyAQCAk90WYefKlSvq06eP8vPzNXfuXJtlQ4cOtf47PDxcdevWVUREhHbv3q2mTZsWub1x48Zp9OjR1vnMzEyFhISUTvEAAMCpyn3YuXLlinr16qXjx49rw4YNNqM6RWnatKkqVaqko0ePFht23Nzc5ObmVhrlAgCAcqZch52CoHP06FFt3LhR1apVu+46Bw8e1JUrVxQUFFQGFQIAgPLOqWEnOztbx44ds84fP35ce/bskZ+fn4KDg/XII49o9+7d+vjjj5WXl6f09HRJkp+fn1xdXfXtt99q8eLF6ty5s6pXr65Dhw5pzJgxatKkiSIjI511WAAAoBxxatjZuXOnoqOjrfMF99HEx8crISFBa9askSQ1btzYZr2NGzcqKipKrq6u+uKLL/T6668rOztbISEh6tKliyZMmCAXF5cyOw4AAFB+OTXsREVFyTCMYpeXtEySQkJCtHnzZkeXBQAATOS2+pwdAACAm0XYAQAApkbYAQAApkbYAQAApkbYAQAApkbYAQAApkbYAQAApkbYAQAApkbYAQAApkbYAQAApkbYAQAA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devWKScnx6EFXatGjRo281OmTNGdd96pNm3aWNvc3NwUGBhYqnUAAIDbk103KBe4NvyUtsuXL+v999/X4MGDbZ4G27Rpk/z9/VWvXj0NHTpUGRkZJW4nNzdXmZmZNhMAADCnmwo7BffEXNtWVlavXq3z589r4MCB1raYmBgtXrxYGzZs0IwZM5Samqq2bdsqNze32O0kJibK19fXOoWEhJRB9QAAwBlu+jLWwIEDrV/2eenSJT399NOFnsZauXKl4yr8nfnz5ysmJkbBwcHWtt69e1v/HR4eroiICIWGhmrt2rWKi4srcjvjxo3T6NGjrfOZmZkEHgAATOqmwk58fLzNfP/+/R1aTElOnjypzz///LpBKigoSKGhoTp69Gixfdzc3Ph2dgAA/iBuKuz8/omnspaUlCR/f3916dKlxH5nz57V6dOnFRQUVEaVAQCA8uyWblAuK/n5+UpKSlJ8fLwqVvxfPsvOztbYsWO1fft2nThxQps2bVJsbKyqV6+uHj16OLFiAABQXtj1Ccpl7fPPP9epU6c0ePBgm3YXFxft379fixYt0vnz5xUUFKTo6GgtW7ZM3t7eTqoWAACUJ7dF2OnYsWORj7l7eHho/fr1TqgIAADcLm6Ly1gAAAD2IuwAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTK9dhJyEhQRaLxWYKDAy0LjcMQwkJCQoODpaHh4eioqJ08OBBJ1YMAADKm3IddiSpQYMGSktLs0779++3Lps2bZpmzpypOXPmKDU1VYGBgerQoYOysrKcWDEAAChPyn3YqVixogIDA61TjRo1JP02qjNr1iy99NJLiouLU3h4uBYuXKhff/1VS5YscXLVAACgvCj3Yefo0aMKDg5WWFiY+vTpo++++06SdPz4caWnp6tjx47Wvm5ubmrTpo22bdtW4jZzc3OVmZlpMwEAAHMq12GnRYsWWrRokdavX6933nlH6enpat26tc6ePav09HRJUkBAgM06AQEB1mXFSUxMlK+vr3UKCQkptWMAAADOVa7DTkxMjHr27KmGDRuqffv2Wrt2rSRp4cKF1j4Wi8VmHcMwCrVda9y4cbpw4YJ1On36tOOLBwAA5UK5DjvX8vLyUsOGDXX06FHrU1nXjuJkZGQUGu25lpubm3x8fGwmAABgTrdV2MnNzdU333yjoKAghYWFKTAwUCkpKdblly9f1ubNm9W6dWsnVgkAAMqTis4uoCRjx45VbGysatWqpYyMDE2aNEmZmZmKj4+XxWLRc889p8mTJ6tu3bqqW7euJk+eLE9PT/Xt29fZpQMAgHKiXIedM2fO6LHHHtPPP/+sGjVqqGXLltqxY4dCQ0MlSc8//7wuXryoYcOG6dy5c2rRooU+++wzeXt7O7lyAABQXpTrsLN06dISl1ssFiUkJCghIaFsCgIAALed2+qeHQAAgJtF2AEAAKZG2AEAAKZG2AEAAKZG2AEAAKZG2AEAAKZG2AEAAKZG2AEAAKZG2AEAAKZG2AEAAKZG2AEAAKZG2AEAAKZG2AEAAKZG2AEAAKZG2AEAAKZG2AEAAKZG2AEAAKZG2AEAAKZG2AEAAKZG2AEAAKZG2AEAAKZG2AEAAKZG2AEAAKZG2AEAAKZG2AEAAKZG2AEAAKZG2AEAAKZG2AEAAKZG2AEAAKZG2AEAAKZG2AEAAKZG2AEAAKZG2AEAAKZG2AEAAKZG2AEAAKZG2AEAAKZG2AEAAKZG2AEAAKZG2AEAAKZWrsNOYmKimjdvLm9vb/n7+6t79+46fPiwTZ+BAwfKYrHYTC1btnRSxQAAoLwp12Fn8+bNGj58uHbs2KGUlBRdvXpVHTt2VE5Ojk2/Tp06KS0tzTp98sknTqoYAACUNxWdXUBJPv30U5v5pKQk+fv7a9euXXrwwQet7W5ubgoMDCzr8gAAwG2gXI/sXOvChQuSJD8/P5v2TZs2yd/fX/Xq1dPQoUOVkZFR4nZyc3OVmZlpMwEAAHO6bcKOYRgaPXq07r//foWHh1vbY2JitHjxYm3YsEEzZsxQamqq2rZtq9zc3GK3lZiYKF9fX+sUEhJSFocAAACcoFxfxvq9Z599Vvv27dPWrVtt2nv37m39d3h4uCIiIhQaGqq1a9cqLi6uyG2NGzdOo0ePts5nZmYSeAAAMKnbIuyMGDFCa9as0ZYtW1SzZs0S+wYFBSk0NFRHjx4tto+bm5vc3NwcXSYAACiHynXYMQxDI0aM0KpVq7Rp0yaFhYVdd52zZ8/q9OnTCgoKKoMKAQBAeVeu79kZPny43n//fS1ZskTe3t5KT09Xenq6Ll68KEnKzs7W2LFjtX37dp04cUKbNm1SbGysqlevrh49eji5egAAUB6U65GdefPmSZKioqJs2pOSkjRw4EC5uLho//79WrRokc6fP6+goCBFR0dr2bJl8vb2dkLFAACgvCnXYccwjBKXe3h4aP369WVUDQAAuB2V68tYAAAAt4qwAwAATI2wAwAATI2wAwAATI2wAwAATI2wAwAATI2wAwAATI2wAwAATI2wAwAATI2wAwAATI2wAwAATI2wAwAATI2wAwAATI2wAwAATI2wAwAATI2wAwAATI2wAwAATI2wAwAATI2wAwAATI2wAwAATI2wAwAATI2wAwAATI2wAwAATI2wAwAATI2wAwAATI2wAwAATI2wAwAATI2wAwAATI2wAwAATI2wAwAATI2wAwAATI2wAwAATI2wAwAATI2wAwAATI2wAwAATI2wAwAATI2wAwAATI2wAwAATI2wAwAATM00YWfu3LkKCwuTu7u7mjVrpi+//NLZJQEAgHLAFGFn2bJleu655/TSSy/p66+/1gMPPKCYmBidOnXK2aUBAAAnM0XYmTlzpoYMGaInnnhCd999t2bNmqWQkBDNmzfP2aUBAAAnu+3DzuXLl7Vr1y517NjRpr1jx47atm2bk6oCAADlRUVnF3Crfv75Z+Xl5SkgIMCmPSAgQOnp6UWuk5ubq9zcXOv8hQsXJEmZmZkOry8/91eHb/NGlcbxlGfOOtec57LBeS4bnOey4azzbLbjLdiuYRgl9rvtw04Bi8ViM28YRqG2AomJiZo4cWKh9pCQkFKpzVl8Zzm7gj8GznPZ4DyXDc5z2fijnefSPt6srCz5+voWu/y2DzvVq1eXi4tLoVGcjIyMQqM9BcaNG6fRo0db5/Pz8/XLL7+oWrVqxQYke2RmZiokJESnT5+Wj4+Pw7aLwjjXZYPzXDY4z2WD81w2SvM8G4ahrKwsBQcHl9jvtg87rq6uatasmVJSUtSjRw9re0pKirp161bkOm5ubnJzc7Npq1KlSqnV6OPjww9SGeFclw3Oc9ngPJcNznPZKK3zXNKIToHbPuxI0ujRo/X4448rIiJCrVq10ttvv61Tp07p6aefdnZpAADAyUwRdnr37q2zZ8/qr3/9q9LS0hQeHq5PPvlEoaGhzi4NAAA4mSnCjiQNGzZMw4YNc3YZNtzc3DRhwoRCl8zgeJzrssF5Lhuc57LBeS4b5eE8W4zrPa8FAABwG7vtP1QQAACgJIQdAABgaoQdAABgaoQdAABgaoSdUrJlyxbFxsYqODhYFotFq1evdnZJppOYmKjmzZvL29tb/v7+6t69uw4fPuzsskxn3rx5uvfee60fCNaqVSutW7fO2WWZXmJioiwWi5577jlnl2I6CQkJslgsNlNgYKCzyzKl77//Xv3791e1atXk6empxo0ba9euXWVeB2GnlOTk5KhRo0aaM2eOs0sxrc2bN2v48OHasWOHUlJSdPXqVXXs2FE5OTnOLs1UatasqSlTpmjnzp3auXOn2rZtq27duungwYPOLs20UlNT9fbbb+vee+91dimm1aBBA6WlpVmn/fv3O7sk0zl37pwiIyNVqVIlrVu3TocOHdKMGTNK9RsLimOaz9kpb2JiYhQTE+PsMkzt008/tZlPSkqSv7+/du3apQcffNBJVZlPbGyszfyrr76qefPmaceOHWrQoIGTqjKv7Oxs9evXT++8844mTZrk7HJMq2LFiozmlLKpU6cqJCRESUlJ1rbatWs7pRZGdmAaFy5ckCT5+fk5uRLzysvL09KlS5WTk6NWrVo5uxxTGj58uLp06aL27ds7uxRTO3r0qIKDgxUWFqY+ffrou+++c3ZJprNmzRpFRETo0Ucflb+/v5o0aaJ33nnHKbUQdmAKhmFo9OjRuv/++xUeHu7sckxn//79qly5stzc3PT0009r1apVuueee5xdluksXbpUu3fvVmJiorNLMbUWLVpo0aJFWr9+vd555x2lp6erdevWOnv2rLNLM5XvvvtO8+bNU926dbV+/Xo9/fTT+vOf/6xFixaVeS1cxoIpPPvss9q3b5+2bt3q7FJM6a677tKePXt0/vx5ffDBB4qPj9fmzZsJPA50+vRpjRw5Up999pnc3d2dXY6p/f4Wg4YNG6pVq1a68847tXDhQo0ePdqJlZlLfn6+IiIiNHnyZElSkyZNdPDgQc2bN08DBgwo01oY2cFtb8SIEVqzZo02btyomjVrOrscU3J1dVWdOnUUERGhxMRENWrUSK+//rqzyzKVXbt2KSMjQ82aNVPFihVVsWJFbd68WW+88YYqVqyovLw8Z5doWl5eXmrYsKGOHj3q7FJMJSgoqNAfRHfffbdOnTpV5rUwsoPblmEYGjFihFatWqVNmzYpLCzM2SX9YRiGodzcXGeXYSrt2rUr9ETQoEGDVL9+fb3wwgtycXFxUmXml5ubq2+++UYPPPCAs0sxlcjIyEIfB3LkyBGFhoaWeS2EnVKSnZ2tY8eOWeePHz+uPXv2yM/PT7Vq1XJiZeYxfPhwLVmyRB9++KG8vb2Vnp4uSfL19ZWHh4eTqzOP8ePHKyYmRiEhIcrKytLSpUu1adOmQk/D4dZ4e3sXut/My8tL1apV4z40Bxs7dqxiY2NVq1YtZWRkaNKkScrMzFR8fLyzSzOVUaNGqXXr1po8ebJ69eql//znP3r77bf19ttvl30xBkrFxo0bDUmFpvj4eGeXZhpFnV9JRlJSkrNLM5XBgwcboaGhhqurq1GjRg2jXbt2xmeffebssv4Q2rRpY4wcOdLZZZhO7969jaCgIKNSpUpGcHCwERcXZxw8eNDZZZnSRx99ZISHhxtubm5G/fr1jbffftspdVgMwzDKPmIBAACUDW5QBgAApkbYAQAApkbYAQAApkbYAQAApkbYAQAApkbYAQAApkbYAQAApkbYAVDmLBaLVq9e7ewySjRw4EB1797d2WUAcADCDgCHGDhwoCwWiywWiypVqqSAgAB16NBBCxYsUH5+vk3ftLQ0m2+edqQRI0aobt26RS77/vvv5eLiopUrV5bKvgGUT4QdAA7TqVMnpaWl6cSJE1q3bp2io6M1cuRIde3aVVevXrX2CwwMlJubW6nUMGTIEB07dkxffvlloWXJycmqVq2aYmNjS2XfAMonwg4Ah3Fzc1NgYKD+9Kc/qWnTpho/frw+/PBDrVu3TsnJydZ+117GOnPmjPr06SM/Pz95eXkpIiJC//73v63LP/roIzVr1kzu7u664447NHHiRJvw9HuNGzdW06ZNtWDBgkLLkpOTNWDAAFWoUEFDhgxRWFiYPDw8dNddd+n1118v8dhq166tWbNmFdpXQkKCdf7ChQt68skn5e/vLx8fH7Vt21Z79+61Lt+7d6+io6Pl7e0tHx8fNWvWTDt37ixxvwBuHWEHQKlq27atGjVqVOylo+zsbLVp00Y//PCD1qxZo7179+r555+3Xvpav369+vfvrz//+c86dOiQ3nrrLSUnJ+vVV18tdp9DhgzRihUrlJ2dbW3bvHmzjh07psGDBys/P181a9bU8uXLdejQIb3yyisaP368li9fbvdxGoahLl26KD09XZ988ol27dqlpk2bql27dvrll18kSf369VPNmjWVmpqqXbt26cUXX1SlSpXs3ieAG1PR2QUAML/69etr3759RS5bsmSJfvrpJ6WmpsrPz0+SVKdOHevyV199VS+++KLi4+MlSXfccYf+9re/6fnnn9eECROK3Gbfvn01ZswYrVixQoMGDZIkLViwQK1atdI999wjSZo4caK1f1hYmLZt26bly5erV69edh3jxo0btX//fmVkZFgv0f3973/X6tWr9a9//UtPPvmkTp06pb/85S+qX7++JBV7bxEAxyLsACh1hmHIYrEUuWzPnj1q0qSJNehca9euXUpNTbUZycnLy9OlS5f066+/ytPTs9A6VapUUVxcnBYsWKBBgwYpKytLH3zwgc1lqDfffFPvvvuuTp48qYsXL+ry5ctq3Lix3ce4a9cuZWdnq1q1ajbtFy9e1LfffitJGj16tJ544gm99957at++vR599FHdeeeddu8TwI0h7AAodd98843CwsKKXObh4VHiuvn5+Zo4caLi4uIKLXN3dy92vSFDhqhdu3Y6evSoNm/eLEnq3bu3JGn58uUaNWqUZsyYoVatWsnb21vTp0+3uU/oWhUqVJBhGDZtV65csakzKChImzZtKrRulSpVJEkJCQnq27ev1q5dq3Xr1mnChAlaunSpevToUex+Adw6wg6AUrVhwwbt379fo0aNKnL5vffeq3fffVe//PJLkaM7TZs21eHDh20ubd2I6Oho3XHHHUpOTtbGjRvVq1cveXt7S5K+/PJLtW7dWsOGDbP2Lxh9KU6NGjWUlpZmnc/MzNTx48dt6kxPT1fFihVVu3btYrdTr1491atXT6NGjdJjjz2mpKQkwg5QyrhBGYDD5ObmKj09Xd9//712796tyZMnq1u3buratasGDBhQ5DqPPfaYAgMD1b17d3311Vf67rvv9MEHH2j79u2SpFdeeUWLFi1SQkKCDh48qG+++UbLli3Tyy+/XGItFotFgwYN0rx587R9+3YNGTLEuqxOnTrauXOn1q9fryNHjuj//u//lJqaWuL22rZtq/fee09ffvmlDhw4oPj4eLm4uFiXt2/fXq1atVL37t21fv16nThxQtu2bdPLL7+snTt36uLFi3r22We1adMmnTx5Ul999ZVSU1N199133+jpBWAnwg4Ah/n0008VFBSk2rVrq1OnTtq4caPeeOMNffjhhzbB4PdcXV312Wefyd/fX507d1bDhg01ZcoUa/+HHnpIH3/8sVJSUtS8eXO1bNlSM2fOVGho6HXrGThwoC5cuKC77rpLkZGR1vann35acXFx6t27t1q0aKGzZ8/ajPIUZdy4cXrwwQfVtWtXde7cWd27d7e538ZiseiTTz7Rgw8+qMGDB6tevXrq06ePTpw4oYCAALm4uOjs2bMaMGCA6tWrp169eikmJsbmRmkApcNiXHsRGgAAwEQY2QEAAKZG2AEAAKZG2AEAAKZG2AEAAKZG2AEAAKZG2AEAAKZG2AEAAKZG2AEAAKZG2AEAAKZG2AEAAKZG2AEAAKZG2AEAAKb2/wBMiz8K6cobHwAAAABJRU5ErkJggg==\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -1154,7 +974,6 @@ "source": [ "#bins = frequency_distribution_2.index.to_list()\n", "\n", - "plt.hist(frequency_distribution_2.index, bins=15, weights=frequency_distribution_2.values)\n", "plt.xlabel('Dice Values')\n", "plt.ylabel('Frequency')\n", "plt.title('Dice Rolls Frequency Distribution')" diff --git a/your-code/main.ipynb b/your-code/main.ipynb index 38d8d2c..cd918be 100644 --- a/your-code/main.ipynb +++ b/your-code/main.ipynb @@ -11,7 +11,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -32,7 +32,7 @@ }, { "cell_type": "code", - "execution_count": 67, + "execution_count": 85, "metadata": {}, "outputs": [ { @@ -56,29 +56,29 @@ " \n", " \n", " \n", - " Rolls\n", + " Number\n", " \n", " \n", " \n", " \n", " 0\n", - " 4\n", + " 5\n", " \n", " \n", " 1\n", - " 2\n", + " 5\n", " \n", " \n", " 2\n", - " 4\n", + " 3\n", " \n", " \n", " 3\n", - " 2\n", + " 4\n", " \n", " \n", " 4\n", - " 2\n", + " 6\n", " \n", " \n", " 5\n", @@ -86,15 +86,15 @@ " \n", " \n", " 6\n", - " 4\n", + " 5\n", " \n", " \n", " 7\n", - " 4\n", + " 2\n", " \n", " \n", " 8\n", - " 6\n", + " 5\n", " \n", " \n", " 9\n", @@ -105,20 +105,20 @@ "" ], "text/plain": [ - " Rolls\n", - "0 4\n", - "1 2\n", - "2 4\n", - "3 2\n", - "4 2\n", - "5 5\n", - "6 4\n", - "7 4\n", - "8 6\n", - "9 6" + " Number\n", + "0 5\n", + "1 5\n", + "2 3\n", + "3 4\n", + "4 6\n", + "5 5\n", + "6 5\n", + "7 2\n", + "8 5\n", + "9 6" ] }, - "execution_count": 67, + "execution_count": 85, "metadata": {}, "output_type": "execute_result" } @@ -134,7 +134,7 @@ "\n", "dice_rolls = rolling_dice()\n", "\n", - "dice_df = pd.DataFrame({'Rolls': dice_rolls})\n", + "dice_df = pd.DataFrame({'Number': dice_rolls})\n", "dice_df.head(10)\n" ] }, @@ -147,12 +147,29 @@ }, { "cell_type": "code", - "execution_count": 206, + "execution_count": 91, "metadata": {}, "outputs": [ { "data": { - "image/png": "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AKCIcjpUKlasqD179ug///mPdu/erZycHA0YMEA9e/Z0uLgWAADgdjkdKpLk6+ur/v37q3///q6eBwAAwM7pUFm4cOEt7+/du3e+hwEAALie06EyfPhwh9tXr17V5cuX5e3tLT8/P0IFAAC4jNPv+vntt98cftLS0nT48GE1bdqUi2kBAIBL5eu7fv6qevXqmjJlSq6jLQAAALfDJaEiScWKFdOZM2dctTkAAADnr1FZvny5w23LspSUlKS33npLTZo0cdlgAAAATodK586dHW7bbDaVL19eLVu21PTp0101FwAAgPOhkpOTUxBzAAAA5OKya1QAAABczekjKiNHjszzujNmzHB28wAAAHZOh8r333+v3bt3KysrSzVq1JAkHTlyRMWKFVNUVJR9PZvN5ropAQBAkeR0qHTq1En+/v764IMPVKZMGUl/fghcv3799MADD2jUqFEuHxIAABRNTl+jMn36dMXFxdkjRZLKlCmjSZMm8a4fAADgUk6HSmpqqs6dO5dr+fnz53Xp0iWXDAUAACDlI1S6dOmifv366eOPP9apU6d06tQpffzxxxowYIC6du1aEDMCAIAiyulrVN59912NHj1avXr10tWrV//ciKenBgwYoGnTprl8QAAAUHQ5HSp+fn565513NG3aNB07dkyWZalatWoqUaJEQcwHAACKsHx/4FtSUpKSkpIUHh6uEiVKyLIsV84FAADgfKikpKSoVatWCg8PV/v27ZWUlCRJeuqpp3hrMgAAcCmnQyU2NlZeXl5KTEyUn5+fffnjjz+uVatWuXQ4AABQtDl9jcqaNWu0evVqVapUyWF59erVdeLECZcNBgAA4PQRlfT0dIcjKdckJyfLx8fHJUMBAABI+QiVZs2aaeHChfbbNptNOTk5mjZtmlq0aOHS4QAAQNHm9KmfadOm6cEHH9TOnTv1xx9/aMyYMTpw4IAuXLigLVu2FMSMAACgiHL6iEqtWrX0ww8/6L777lObNm2Unp6url276vvvv1fVqlULYkYAAFBEOXVE5erVq2rbtq3mzJmjiRMnFtRMAAAAkpw8ouLl5aX9+/fLZrMV1DwAAAB2Tp/66d27t+bNm1cQswAAADhw+mLaP/74Q3PnztXatWsVHR2d6zt+ZsyY4bLhAABA0eZ0qOzfv19RUVGSpCNHjjjcxykhAADgSnkOlZ9//llh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WbNu+dyqVKmimTNn5trXhAkT7LcvXryoZ555RkFBQQoICFDLli21d+9e+/179+5VixYt5O/vr4CAADVo0EA7d+685X4BuAahAuCGWrZsqXr16t30dEtaWpqaN2+uM2fOaPny5dq7d6/GjBljP120evVq9erVS8OGDdPBgwc1Z84cLViwQJMnT77pPgcMGKBly5YpLS3NvmzTpk366aef1L9/f+Xk5KhSpUpaunSpDh48qJdeeknjxo3T0qVL8/08LctShw4ddPbsWa1YsUK7du1SVFSUWrVqpQsXLkiSevbsqUqVKikhIUG7du3Sc889Jy8vr3zvE0De8e3JAG4qIiJCP/zwww3v++ijj/Trr78qISFBZcuWlSRVq1bNfv/kyZP13HPPqU+fPpKke+65R6+88orGjBmj8ePH33CbPXr00KhRo7Rs2TL169dPkjR//nzFxMSoVq1akqSJEyfa1w8LC9PWrVu1dOlSdevWLV/PccOGDdq3b5/Onz9vP63173//W59//rk+/vhjPfPMM0pMTNT/+3//TxEREZJ002tpALgeoQLgpizLks1mu+F9e/bs0b333muPlL/atWuXEhISHI6gZGdnKyMjQ5cvX5afn1+ux5QuXVpdu3bV/Pnz1a9fP126dEmffPKJw6mbd999V3PnztWJEyd05coV/fHHH6pfv36+n+OuXbuUlpamwMBAh+VXrlzRsWPHJEkjR47UU089pUWLFql169Z67LHHVLVq1XzvE0DeESoAburQoUMKCwu74X2+vr63fGxOTo4mTpyorl275rqvePHiN33cgAED1KpVKx09elSbNm2SJD3++OOSpKVLlyo2NlbTp09XTEyM/P39NW3aNIfrYv7Kw8NDlmU5LLt69arDnBUqVNDGjRtzPbZ06dKSpAkTJqhHjx76+uuvtXLlSo0fP16LFy9Wly5dbrpfAK5BqAC4ofXr12vfvn2KjY294f2RkZGaO3euLly4cMOjKlFRUTp8+LDD6aC8aNGihe655x4tWLBAGzZsULdu3eTv7y9J+vbbb9W4cWMNGjTIvv61ox43U758eSUlJdlvp6am6pdffnGY8+zZs/L09FSVKlVuup3w8HCFh4crNjZWTzzxhOLj4wkV4A7gYloAyszM1NmzZ3X69Gnt3r1br776qh555BF17NhRvXv3vuFjnnjiCQUHB6tz587asmWLfv75Z33yySfatm2bJOmll17SwoULNWHCBB04cECHDh3SkiVL9MILL9xyFpvNpn79+mn27Nnatm2bBgwYYL+vWrVq2rlzp1avXq0jR47oxRdfVEJCwi2317JlSy1atEjffvut9u/frz59+qhYsWL2+1u3bq2YmBh17txZq1ev1vHjx7V161a98MIL2rlzp65cuaIhQ4Zo48aNOnHihLZs2aKEhATVrFkzr79eALeBUAGgVatWqUKFCqpSpYoefvhhbdiwQW+88Ya++OILhz/q1/P29taaNWsUFBSk9u3bq27dupoyZYp9/YceekhfffWV1q5dq4YNG+r+++/XjBkzVLly5b+dp2/fvrp48aJq1KihJk2a2JcPHDhQXbt21eOPP65GjRopJSXF4ejKjYwdO1bNmjVTx44d1b59e3Xu3Nnh+hKbzaYVK1aoWbNm6t+/v8LDw9W9e3cdP35cd911l4oVK6aUlBT17t1b4eHh6tatm9q1a+dwUS+AgmOz/nryFgAAwBAcUQEAAMYiVAAAgLEIFQAAYCxCBQAAGItQAQAAxiJUAACAsQgVAABgLEIFAAAYi1ABAADGIlQAAICxCBUAAGAsQgUAABjr/wMOgTD9VcbE2gAAAABJRU5ErkJggg==\n", + "text/plain": [ + "{'whiskers': [,\n", + " ],\n", + " 'caps': [,\n", + " ],\n", + " 'boxes': [],\n", + " 'medians': [],\n", + " 'fliers': [],\n", + " 'means': []}" + ] + }, + "execution_count": 91, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", "text/plain": [ "
" ] @@ -163,18 +180,9 @@ ], "source": [ "# your code here\n", - "sorted_rolls = sorted(dice_rolls)\n", + "sorted_rolls = dice_df['Number'].sort_values()\n", "\n", - "# Add labels and title\n", - "plt.xlabel('Dice Values')\n", - "plt.ylabel('Frequency of rolls')\n", - "plt.title('Sorted Dice Rolls')\n", - "\n", - "plt.yticks(range(min(sorted_rolls_series), max(sorted_rolls_series) + 1))\n", - "plt.xticks(range(min(sorted_rolls_series), max(sorted_rolls_series) + 1))\n", - "\n", - "plt.hist(sorted_rolls, bins=10, edgecolor='black')\n", - "plt.show()" + "plt.boxplot(sorted_rolls)" ] }, { @@ -186,12 +194,52 @@ }, { "cell_type": "code", - "execution_count": 83, + "execution_count": 92, "metadata": {}, "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Dice number Frequency\n", + "0 2 1\n", + "1 3 1\n", + "2 4 1\n", + "3 5 5\n", + "4 6 2\n" + ] + } + ], + "source": [ + "#https://stackoverflow.com/questions/41551658/how-to-create-a-frequency-distribution-table-on-given-data-with-python-in-jupyte\n", + "\n", + "#Calculate the freq dist and sort by dice number (index)\n", + "frequency_distribution = pd.Series(sorted_rolls).value_counts().sort_index().reset_index()\n", + "#Why do we need to reset ?\n", + "\n", + "frequency_distribution.columns = ['Dice number', 'Frequency']\n", + "\n", + "print(frequency_distribution)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 136, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 136, + "metadata": {}, + "output_type": "execute_result" + }, { "data": { - "image/png": "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frz1119/WRcvXrR+/PFHKzQ01CpdurR18OBBZ9vu3btbXl5e1pEjR1y20bZtW8vX19c6d+6cyzZjYmIyHY+M7W3ZssWSZC1btuya9WUlIiLCkpRpCgsLsyzr/47j66+/7rLepk2bLEnWpEmTXOYnJCRYPj4+1rBhwyzLsqyzZ89a3t7eVpcuXVzabdy40ZJkNW3aNNv3lWHt2rWWJGvt2rWWZeXuPGXUP2HCBJe2/fv3t7y9va309HTLsixrw4YNliTrX//61zWPV9OmTa369eu7zHvxxRetgIAA6/z589dcNyIiwvLz88t2+U8//WRJsl588UWX/V15jF566SWrSJEi19zPokWLXI7X1fVLsr7++ussl125r4zPXpkyZaw///zTOT85OdkqVqyY1apVK5f3Vr58+UzbvPrn0LIsy8/Pz4qIiMjU9urznJaWZpUpU8aqU6eOlZaW5mx3/vx5KygoyGrcuHGm/VzvPOPORo8KjGZZ1jWXr169Wmlpadf8q/e7777TmTNnFBER4dK7kJ6erkceeUTx8fHOv1yv5dVXX1WhQoWcl3N27dqlzz77zKVrfM2aNWrZsqXKli3rsm7v3r31xx9/5Oqv1SpVqqho0aJ69dVXNW3aNO3ZsyfH60p/D/CMj493ma6+HPbYY4+5vP7888/lcDjUs2dPl2NVqlQp1atXz9l9v2nTJl28eFHh4eEu6zdu3Fjly5fPVZ0Z3DlPGb0VGerWrauLFy867xiLi4uTpOv2igwaNEg//vijNm7cKElKTk7WBx98oIiICBUuXNit95Phep9hSbr//vt17tw59ejRQ59++ql+//33XO+naNGiatGiRY7bd+3aVd7e3s7X/v7+6tixozZs2JCp5y0v7d27V8ePH9fTTz+tAgX+7yuocOHCeuyxx7R58+ZMl+Gud55xZ2MwLYyVkpKi06dPq06dOtm2+e233yTpmgNsMy5XdOvWLds2Z86ckZ+f3zXrGTRokHr27KnU1FRt3rxZr732mjp16qTt27erePHikqTTp0+rdOnSmdYtU6aMc3lOBQYGav369XrzzTc1cuRInT17VqVLl9azzz6r1157TYUKFbrm+gUKFHAZpJyVq2s9efKkLMtyDl6+WqVKlVzeR6lSpTK1yWpeTrhznjKOewYvLy9Jf995I/39+fDw8LhuTZ06dVKFChX0/vvv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\n", + "image/png": "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F3eXAickJCTIYrE4/FSsWNHdZcEJv/32m3r27KmyZcvK399fjRs31rZt29xSC0HlOuvWrdPAgQO1efNmrVy5UlevXtXjjz+ujIwMd5eGQqpSpYrGjh2rrVu3auvWrXr00UfVqVMn/fjjj+4uDU7asmWLPvzwQzVq1MjdpeAO1K9fXydOnLD/7Nq1y90loZDOnTun5s2by9vbW8uWLdOePXs0adIklS5d2i31FOuP0He15cuXO0zPnj1boaGh2rZtm1q2bOmmquCMjh07Oky/+eabmjZtmjZv3qz69eu7qSo469KlS+rRo4dmzJihMWPGuLsc3AEvLy9GUYqpcePGKTw8XLNnz7bPq1atmtvqYUTlFi5cuCBJCgkJcXMluBO5ublasGCBMjIyFBMT4+5y4ISBAweqffv2euyxx9xdCu7Q/v37FRYWpsjISD333HM6cOCAu0tCIX311VeKjo7WM888o9DQUDVp0kQzZsxwWz0ElZswDENDhw7VI488ogYNGri7HDhh165dCggIkNVq1YsvvqjFixerXr167i4LhbRgwQJt375dSUlJ7i4Fd+ihhx7S3LlztWLFCs2YMUMnT55Us2bNlJaW5u7SUAgHDhzQtGnTVKtWLa1YsUIvvviiBg8erLlz57qlHj6Z9iYGDhyopUuX6rvvvivyb2iGa125ckVHjhzR+fPn9e9//1szZ87UunXrCCvFwNGjRxUdHa1vv/1WUVFRkqTWrVurcePGevvtt91bHO5YRkaGatSooVdffVVDhw51dzm4DR8fH0VHR2vjxo32eYMHD9aWLVu0adOm370eRlQKMGjQIH311VdKTk4mpBRDPj4+qlmzpqKjo5WUlKSoqChNmTLF3WWhELZt26bU1FTdf//98vLykpeXl9atW6d33nlHXl5eys3NdXeJuAOlSpVSw4YNtX//fneXgkKoVKlSvj/s6tatqyNHjrilHm6mvY5hGBo0aJAWL16stWvXKjIy0t0lwQUMw1B2dra7y0AhxMbG5ns6pG/fvrrvvvv02muvydPT002V4W5kZ2dr7969atGihbtLQSE0b94830dz/Pzzz4qIiHBLPQSV6wwcOFDz5s3TkiVLFBgYqJMnT0qSgoOD5efn5+bqUBgjRozQE088ofDwcF28eFELFizQ2rVr8z3RBXMKDAzMd09YqVKlVLZsWe4VK0aG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Xss3CnOnrly5on79+umNN97Q4cOHNWrUKL388svy8PBQYGCghg8frldeeUU2m02PPPKI0tPTtXHjRgUEBKh3795O7att27b67rvv9Je//MU+77333tOmTZu0c+dOhYeHa9myZerRo4e+//57+fj4SLoWnqxWq2JiYlzyOwP3Oh5PBu4By5cvV6VKlVStWjW1a9dOycnJeuedd7RkyRKH+0Wu5+Pjo2+//VahoaGKj49Xw4YNNXbsWPv6bdu21TfffKOVK1fqgQce0MMPP6zJkycrIiLirmqdNGmSwsPD1bJlS3Xv3l3Dhw+/6f0uzoqNjVWtWrXUsmVLPfvss+rYsaMSEhLsy0ePHq2RI0cqKSlJdevWVdu2bfX111/f9PLYrQwYMED/+c9/dOHCBUnSTz/9pL/+9a96//33FR4eLulacDl//rzDh8LNnz9fPXr0cNnvDNzrLMaNF4sBAIXy7LPPqkmTJnr99dcLtf7p06d13333aevWrXcUjoCSiBEVALhDEyZMUEBAQKHXP3jwoN5//31CCuAERlQAAIBpMaICAABMi6ACAABMi6ACAABMi6ACAABMi6ACAABMi6ACAABMi6ACAABMi6ACAABMi6ACAABM6/8DwgXJesyA1dgAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] @@ -201,24 +249,14 @@ } ], "source": [ - "sorted_rolls_series = pd.Series(sorted_rolls)\n", - "\n", - "# Calculate the frequency distribution\n", - "frequency_distribution = sorted_rolls_series.value_counts().sort_index()\n", - "\n", - "# Plot the frequency distribution\n", - "plt.bar(frequency_distribution.index, frequency_distribution.values)\n", - "\n", + "plt.xlabel('Dice number (x)')\n", + "plt.ylabel('Frequency (y)')\n", + "plt.title('Frequency distribution - Dice Rolls ')\n", "\n", - "# Add labels and title\n", - "plt.xlabel('Dice Values')\n", - "plt.ylabel('Frequency')\n", - "plt.title('Dice Rolls Frequency Distribution')\n", - "\n", - "plt.yticks(range(min(sorted_rolls_series), max(sorted_rolls_series) + 1))\n", - "plt.xticks(range(min(sorted_rolls_series), max(sorted_rolls_series) + 1))\n", + "plt.yticks(range(min(sorted_rolls), max(sorted_rolls) + 1))\n", + "plt.xticks(range(min(sorted_rolls), max(sorted_rolls) + 1))\n", "\n", - "plt.show()\n" + "sorted_rolls.hist(bins=6, edgecolor='black')" ] }, { @@ -227,11 +265,13 @@ "metadata": {}, "outputs": [], "source": [ - "\"\"\"\n", - "your comments here\n", - "\"\"\"\n", - "#Observation :\n", - "#for frequency distribution we HAVE TO convert the results into a DataFrame ?" + "# What is the relation between this plot and the plot above? \n", + "\n", + "# We can see that the median is the same on both graphs (5)\n", + "# Negatively skewed\n", + "# Also they show the same percentiles (develop here)\n", + "\n", + "#Frequency distribution graph is \"easier to read\" and should be used for data presentation to the stakeholders." ] }, { @@ -246,37 +286,36 @@ }, { "cell_type": "code", - "execution_count": 216, + "execution_count": 95, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "3.9\n" + "4.6\n" ] } ], "source": [ "# your code here\n", - "def calculate_mean(dice_rolls):\n", - " mean = sum(dice_rolls)/len(dice_rolls)\n", + "def calculate_mean(data):\n", + " mean = sum(data)/len(data)\n", " return mean\n", "\n", - "mean_dice_rolls = calculate_mean(dice_rolls)\n", - "print(mean_dice_rolls)" + "print(calculate_mean(dice_rolls))" ] }, { "cell_type": "code", - "execution_count": 85, + "execution_count": 96, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Mean: 3.9\n" + "4.6\n" ] } ], @@ -284,22 +323,19 @@ "#Other method\n", "\n", "def mean(data):\n", - " if len(data) == 0:\n", - " return 0 # Handle the case where the data list is empty to avoid division by zero\n", - "\n", + " \n", " total_sum = 0\n", - " count = 0\n", - "\n", + " len_data = 0\n", + " \n", " for value in data:\n", " total_sum += value\n", - " count += 1\n", + " len_data += 1\n", "\n", - " mean = total_sum / count\n", + " mean = total_sum / len_data\n", "\n", " return mean\n", "\n", - "result = calculate_mean(dice_rolls)\n", - "print(\"Mean:\", result)\n" + "print(mean(dice_rolls))" ] }, { @@ -311,30 +347,34 @@ }, { "cell_type": "code", - "execution_count": 93, + "execution_count": 97, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Rolls\n", - "2 3\n", - "4 4\n", - "5 1\n", - "6 2\n", - "dtype: int64\n", - "Mean is 2.5\n" + " Dice number Frequency\n", + "0 2 1\n", + "1 3 1\n", + "2 4 1\n", + "3 5 5\n", + "4 6 2\n", + "Mean is 2.0\n" ] } ], "source": [ "# your code here\n", - "frequency_distribution = dice_df.value_counts().sort_index()\n", + "frequency_distribution = dice_df.value_counts().sort_index().reset_index() #chaining method\n", + "frequency_distribution.columns = ['Dice number', 'Frequency']\n", "print(frequency_distribution)\n", "\n", - "mean_frequency_distribution = average(frequency_distribution) \n", - "print(f'Mean is {mean_frequency_distribution}')" + "#Calculate mean by calling function\n", + "mean_frequency_distribution = mean(frequency_distribution['Frequency']) \n", + "print(f'Mean is {mean_frequency_distribution}')\n", + "\n", + "# Why the result is not the same as when we calculate the mean ?" ] }, { @@ -347,26 +387,16 @@ }, { "cell_type": "code", - "execution_count": 100, + "execution_count": 98, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - " Rolls\n", - "1 2\n", - "3 2\n", - "4 2\n", - "0 4\n", - "2 4\n", - "6 4\n", - "7 4\n", - "5 5\n", - "8 6\n", - "9 6\n", - "[2, 2, 2, 4, 4, 4, 4, 5, 6, 6]\n", - "Median is 4.0\n" + "[2, 3, 4, 5, 5, 5, 5, 5, 6, 6]\n", + "10\n", + "Median is 5.0\n" ] } ], @@ -374,14 +404,13 @@ "# Method without function\n", "\n", "# your code here\n", - "sorted_dice_df = dice_df.sort_values(by='Rolls')\n", - "print(sorted_dice_df)\n", "\n", "#Convert values into list to calculate the median\n", - "values_list = sorted_dice_df['Rolls'].to_list()\n", + "values_list = sorted_rolls.to_list()\n", "print(values_list)\n", "\n", - "len(values_list)\n", + "print(len(values_list)) #Median = value in the middle \n", + "#If even number, we take the two elements in the list divided by 2\n", "\n", "median = (values_list[4] + values_list[5])/2\n", "print(f'Median is {median}')" @@ -389,14 +418,14 @@ }, { "cell_type": "code", - "execution_count": 153, + "execution_count": 99, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Median is 4.0\n" + "Median is 5.0\n" ] } ], @@ -427,16 +456,16 @@ }, { "cell_type": "code", - "execution_count": 131, + "execution_count": 100, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "the first quartile is 2.5\n", - "the second quartile is 4.0\n", - "the third quartile is 4.75\n", + "the first quartile is 4.25\n", + "the second quartile is 5.0\n", + "the third quartile is 5.0\n", "the fourth quartile is 6\n" ] } @@ -456,14 +485,14 @@ }, { "cell_type": "code", - "execution_count": 161, + "execution_count": 101, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Q1: 2.00, Q2: 4.0, Q3: 5.00\n" + "Q1: 4.00, Q2: 5.0, Q3: 5.00, Q4: 6.00\n" ] } ], @@ -487,11 +516,12 @@ " \n", " return q1_lower_quartile, q2, q3_upper_quartile\n", "\n", - "#fourth quartile\n", + "#fourth quartile =max value\n", + " q4 = max(lst)\n", " \n", "\n", "q1_lower_quartile, q2, q3_upper_quartile = quartiles(values_list)\n", - "print(f'Q1: {q1_lower_quartile:.2f}, Q2: {q2}, Q3: {q3_upper_quartile:.2f}')" + "print(f'Q1: {q1_lower_quartile:.2f}, Q2: {q2}, Q3: {q3_upper_quartile:.2f}, Q4: {q4:.2f}')" ] }, { @@ -505,7 +535,7 @@ }, { "cell_type": "code", - "execution_count": 177, + "execution_count": 138, "metadata": {}, "outputs": [ { @@ -613,7 +643,7 @@ "9 9 9 1" ] }, - "execution_count": 177, + "execution_count": 138, "metadata": {}, "output_type": "execute_result" } @@ -626,237 +656,29 @@ }, { "cell_type": "code", - "execution_count": 195, + "execution_count": 84, "metadata": {}, "outputs": [ { "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \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
1212125
7272725
3030306
9292926
9090906
4446
2226
9696966
8787876
2323236
5454546
3636366
3535356
8080806
7878786
7575756
3939396
4040406
4545456
6565656
1717176
1111116
2424246
2121216
9999996
\n", - "
" - ], "text/plain": [ - " Unnamed: 0 roll value\n", - "12 12 12 5\n", - "72 72 72 5\n", - "30 30 30 6\n", - "92 92 92 6\n", - "90 90 90 6\n", - "4 4 4 6\n", - "2 2 2 6\n", - "96 96 96 6\n", - "87 87 87 6\n", - "23 23 23 6\n", - "54 54 54 6\n", - "36 36 36 6\n", - "35 35 35 6\n", - "80 80 80 6\n", - "78 78 78 6\n", - "75 75 75 6\n", - "39 39 39 6\n", - "40 40 40 6\n", - "45 45 45 6\n", - "65 65 65 6\n", - "17 17 17 6\n", - "11 11 11 6\n", - "24 24 24 6\n", - "21 21 21 6\n", - "99 99 99 6" + "{'whiskers': [,\n", + " ],\n", + " 'caps': [,\n", + " ],\n", + " 'boxes': [],\n", + " 'medians': [],\n", + " 'fliers': [],\n", + " 'means': []}" ] }, - "execution_count": 195, + "execution_count": 84, "metadata": {}, "output_type": "execute_result" - } - ], - "source": [ - "sorted_roll_dice_df = roll_dice_df.sort_values(by='value')\n", - "sorted_roll_dice_df.tail(25)" - ] - }, - { - "cell_type": "code", - "execution_count": 220, - "metadata": {}, - "outputs": [ + }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjMAAAHFCAYAAAAHcXhbAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAsXUlEQVR4nO3de1iUdf7/8dcoOAIiKQeBBKLEM1ZmB60U8xQe1kNumpmYtN/MbDX12361q59kfqXyq1mXaWUJumW6tWVWlloe2zRPmWVmVCqokAuZKCIq3L8/upxtRBSHcWY+0/NxXfd1NffcM/d7pk2fe9/3zNgsy7IEAABgqFreHgAAAKAmiBkAAGA0YgYAABiNmAEAAEYjZgAAgNGIGQAAYDRiBgAAGI2YAQAARiNmAACA0YgZwEf1799fQUFB+vXXX6vc5t5771VgYKB+/vnnaj+vzWZTRkZGzQe8RGvXrpXNZnMsderUUWRkpG699VY9/vjj2r9/f6XHZGdny2azad++fZe0r2nTpmnp0qWX9Jjz7SslJUWtW7e+pOe5mOXLl1f5/l911VUaPny4W/cH/BEQM4CPSk9P18mTJ7Vo0aLz3n/06FG9++676t27txo1auTh6Vw3bdo0bdy4UWvWrNFrr72mlJQUzZ8/Xy1atNAbb7zhtG2vXr20ceNGxcTEXPI+LjVmXN3XpVq+fLmefPLJ89737rvv6oknnris+wf8UYC3BwBwfqmpqYqNjdX8+fM1atSoSve/+eabKi0tVXp6uhemc11SUpJuueUWx+0//elPGj9+vLp27arhw4erTZs2Sk5OliRFRkYqMjLyss5TWlqqunXremRfF3P99dd7df+AqTgyA/io2rVrKy0tTdu2bdPXX39d6f6srCzFxMQoNTVV//73vzVq1Ci1bNlS9erVU1RUlO644w5t2LDhovvJyMiQzWartL6qUzxLlixR+/btFRISonr16qlHjx768ssvXX6dktSwYUO9/PLLOnPmjJ577rkLzvDll1+qd+/eioqKkt1uV2xsrHr16qUDBw5I+u00WklJiRYsWOA4pZWSkuL0fCtXrtSIESMUGRmp4OBglZWVXfCU1oYNG3TLLbcoKChIV155pZ544gmVl5c77j97Cm3t2rVOj9u3b59sNpuys7MlScOHD9eLL77omPPscnaf5zvNlJubq6FDhzpeb4sWLTRjxgxVVFRU2s///d//aebMmUpMTFS9evXUvn17bdq06RL+TQBmImYAHzZixAjZbDbNnz/faf23336rzZs3Ky0tTbVr19Yvv/wiSZo8ebI+/PBDZWVl6eqrr1ZKSkqlv2BrYtq0abrnnnvUsmVL/eMf/9Df//53HTt2TLfffru+/fbbGj33jTfeqJiYGK1fv77KbUpKStStWzf9/PPPevHFF7Vq1SrNmjVL8fHxOnbsmCRp48aNCgoKUs+ePbVx40Zt3LhRc+bMcXqeESNGKDAwUH//+9/19ttvKzAwsMp9FhQUaPDgwbr33nv13nvvaeDAgZo6darGjBlzya/xiSee0MCBAx1znl2qOrX173//Wx06dNDKlSv11FNPadmyZeratasmTJig0aNHV9r+9+/JG2+8oZKSEvXs2VNHjx695FkBk3CaCfBhTZo0UceOHfX666/r2WefdfylezZuRowYIUlq1qyZ01/Y5eXl6tGjh/bt26cXXnjBcWSiJvLy8jR58mSNHj1aL7zwgmN9t27dlJSUpCeffFJLliyp0T7i4+O1c+fOKu//7rvvVFRUpNdee019+/Z1rL/77rsd/3zLLbeoVq1aioyMdDqd9XtdunTRyy+/XK2ZioqK9N577+lPf/qTJKl79+4qLS3V3Llz9dhjjyk+Pr5azyNJ11xzjeP6pqpm+72ZM2fq4MGD+uKLL3TTTTdJknr06KHy8nK99NJLGjt2rJo2berYPjQ0VB988IFq164tSYqNjdVNN92kjz76SIMHD672nIBpODID+Lj09HQVFhZq2bJlkqQzZ87o9ddf1+23366kpCTHdi+99JLatm2runXrKiAgQIGBgfr000+1e/dut8yxYsUKnTlzRsOGDdOZM2ccS926ddWpUye3HAGyLOuC9zdp0kQNGjTQ3/72N7300ksuHw266667qr1taGioI2TOGjJkiCoqKi54FMkdVq9erZYtWzpC5qzhw4fLsiytXr3aaX2vXr0cISNJbdq0kaTzflIM8CfEDODjBg4cqLCwMGVlZUn67dMwP//8s9OFvzNnztRDDz2km2++Wf/85z+1adMmbdmyRXfeeadKS0vdMsfZj3/feOONCgwMdFqWLFmiwsLCGu8jNzdXsbGxVd4fFhamdevW6brrrtOkSZPUqlUrxcbGavLkyTp9+nS193Mpn1g63yfFoqOjJf121OZyKioqOu+sZ9+jc/cfHh7udNtut0uS2/43APgqTjMBPi4oKEj33HOP5s2bp/z8fM2fP1+hoaH685//7Njm9ddfV0pKiubOnev02LPXkVxI3bp1JUllZWWOv/wkVYqTiIgISdLbb7+thIQEl19PVTZv3qyCgoKLfjorOTlZixcvlmVZ2rlzp7KzszVlyhQFBQXpf/7nf6q1r/Nd8FyV832HT0FBgaT/xMPv38Pfq2nghYeHKz8/v9L6Q4cOSfrPvxPgj44jM4AB0tPTVV5erunTp2v58uUaPHiwgoODHffbbDanEJGknTt3auPGjRd97quuusqx/e+9//77Trd79OihgIAA/fjjj2rXrt15F1f98ssvGjlypAIDA/Xoo49W6zE2m03XXnutnnvuOV1xxRXavn274z673e62oxHHjh1znOI7a9GiRapVq5Y6duwoqer38NzHnZ1Nqt7Rki5duujbb791em2StHDhQtlsNnXu3LnarwPwZxyZAQzQrl07tWnTRrNmzZJlWZWOXvTu3VtPPfWUJk+erE6dOmnPnj2aMmWKEhMTdebMmQs+d8+ePdWwYUOlp6drypQpCggIUHZ2tvLy8py2u+qqqzRlyhQ9/vjj+umnn3TnnXeqQYMG+vnnn7V582aFhIRU+WVwv5eTk6NNmzapoqJCRUVF+uKLL/Taa6+puLhYCxcuVKtWrap87AcffKA5c+aoX79+uvrqq2VZlt555x39+uuv6tatm2O75ORkrV27Vu+//75iYmIUGhqqZs2aXXS28wkPD9dDDz2k3NxcNW3aVMuXL9e8efP00EMPOS7+jY6OVteuXZWZmakGDRooISFBn376qd55551Kz3f2O3SeeeYZpaamqnbt2mrTpo3q1KlTadtHH31UCxcuVK9evTRlyhQlJCToww8/1Jw5c/TQQw85XfwL/KFZAIzw/PPPW5Ksli1bVrqvrKzMmjBhgnXllVdadevWtdq2bWstXbrUSktLsxISEpy2lWRNnjzZad3mzZutDh06WCEhIdaVV15pTZ482Xr11VctSdbevXudtl26dKnVuXNnq379+pbdbrcSEhKsgQMHWp988skF51+zZo0lybEEBARY4eHhVvv27a1JkyZZ+/btq/SYrKwspxm+++4765577rGuueYaKygoyAoLC7NuuukmKzs72+lx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Uszk5ORcdJs6deooLS3NlacHAACoNpe+ZyYrK0tvvfVWpfVvvfWWFixYUOOhAAAAqsulmHn66acVERFRaX1UVJSmTZtW46EAAACqy6WY2b9/vxITEyutT0hIUG5ubo2HAgAAqC6XYiYqKko7d+6stP6rr75SeHh4jYcCAACoLpdiZvDgwfrrX/+qNWvWqLy8XOXl5Vq9erXGjBmjwYMHu3tGAACAKrn0aaapU6dq//796tKliwICfnuKiooKDRs2jGtmAACAR7kUM3Xq1NGSJUv01FNP6auvvlJQUJCSk5OVkJDg7vkAAAAuqEY/Z9C0aVM1bdrUXbMAAABcMpdipry8XNnZ2fr00091+PBhVVRUON2/evVqtwwHAABwMS7FzJgxY5Sdna1evXqpdevWstls7p4LAACgWlyKmcWLF+sf//iHevbs6e55AAAALolLH82uU6eOmjRp4u5ZAAAALplLMTN+/Hg9//zzsizL3fMAAABcEpdOM3322Wdas2aNPvroI7Vq1UqBgYFO97/zzjtuGQ4AAOBiXIqZK664Qv3793f3LAAAAJfMpZjJyspy9xwAAAAucemaGUk6c+aMPvnkE7388ss6duyYJOnQoUM6fvy424YDAAC4GJeOzOzfv1933nmncnNzVVZWpm7duik0NFTPPvusTp48qZdeesndcwIAAJyXS0dmxowZo3bt2unIkSMKCgpyrO/fv78+/fRTtw0HAABwMS5/mulf//qX6tSp47Q+ISFBBw8edMtgAAAA1eHSkZmKigqVl5dXWn/gwAGFhobWeCgAAIDqcilmunXrplmzZjlu22w2HT9+XJMnT+YnDgAAgEe5dJrpueeeU+fOndWyZUudPHlSQ4YMUU5OjiIiIvTmm2+6e0YAAIAquRQzsbGx2rFjh958801t375dFRUVSk9P17333ut0QTAAAMDl5lLMSFJQUJBGjBihESNGuHMe4+Tm5qqwsNDj+42IiFB8fLzH9wsApuDP5z8Ol2Jm4cKFF7x/2LBhLg1jmtzcXDVr3kInS094fN91g4K157vd/AcDAOfBn89/LC7FzJgxY5xunz59WidOnFCdOnUUHBz8h4mZwsJCnSw9ofDe4xUYHuex/Z4uylPRBzNUWFjIfywAcB78+fzH4lLMHDlypNK6nJwcPfTQQ/rv//7vGg9lmsDwONmjm3h7DADA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ZiIiIlS7du1KR2EOHz5c6WjNWRMnTtS4ceMctysqKvTLL78oPDxcNpvNrfMVFxcrLi5OeXl5ql+/vlufG//B++wZvM+ewfvsGbzPnnE532fLsnTs2DHFxsZedFufjpk6derohhtu0KpVq9S/f3/H+lWrVqlv377nfYzdbpfdbndad8UVV1zOMVW/fn3+Y/EA3mfP4H32DN5nz+B99ozL9T6HhYVVazufjhlJGjdunO677z61a9dO7du31yuvvKLc3FyNHDnS26MBAAAf4PMxM2jQIBUVFWnKlCnKz89X69attXz5ciUkJHh7NAAA4AN8PmYkadSoURo1apS3x6jEbrdr8uTJlU5rwb14nz2D99kzeJ89g/fZM3zlfbZZVnU+8wQAAOCbfPpL8wAAAC6GmAEAAEYjZgAAgNGIGQAAYDRixgXr169Xnz59FBsbK5vNpqVLl3p7JL+TmZmpG2+8UaGhoYqKilK/fv0cvz0C95o7d67atGnj+NKr9u3b66OPPvL2WH4tMzNTNptNY8eO9fYoficjI0M2m81piY6O9vZYfungwYMaOnSowsPDFRwcrOuuu07btm3zyizEjAtKSkp07bXXavbs2d4exW+tW7dODz/8sDZt2qRVq1bpzJkz6t69u0pKSrw9mt9p3Lixnn76aW3dulVbt27VHXfcob59+2rXrl3eHs0vbdmyRa+88oratGnj7VH8VqtWrZSfn+9Yvv76a2+P5HeOHDmiW2+9VYGBgfroo4/07bffasaMGZf9G/erYsT3zPia1NRUpaamensMv/bxxx873c7KylJUVJS2bdumjh07emkq/9SnTx+n2//7v/+ruXPnatOmTWrVqpWXpvJPx48f17333qt58+Zp6tSp3h7HbwUEBHA05jJ75plnFBcXp6ysLMe6q666ymvzcGQGRjh69KgkqWHDhl6exL+Vl5dr8eLFKikpUfv27b09jt95+OGH1atXL3Xt2tXbo/i1nJwcxcbGKjExUYMHD9ZPP/3k7ZH8zrJly9SuXTv9+c9/VlRUlK6//nrNmzfPa/MQM/B5lmVp3Lhxuu2229S6dWtvj+OXvv76a9WrV092u10jR47Uu+++q5YtW3p7LL+yePFibd++XZmZmd4exa/dfPPNWrhwoVasWKF58+apoKBAHTp0UFFRkbdH8ys//fST5s6dq6SkJK1YsUIjR47UX//6Vy1cuNAr83CaCT5v9OjR2rlzpz777DNvj+K3mjVrph07dujXX3/VP//5T6WlpWndunUEjZvk5eVpzJgxWrlyperWrevtcfza7y8BSE5OVvv27XXNNddowYIFGjdunBcn8y8VFRVq166dpk2bJkm6/vrrtWvXLs2dO1fDhg3z+DwcmYFPe+SRR7Rs2TKtWbNGjRs39vY4fqtOnTpq0qSJ2rVrp8zMTF177bV6/vnnvT2W39i2bZsOHz6sG264QQEBAQoICNC6dev0wgsvKCAgQOXl5d4e0W+FhIQoOTlZOTk53h7Fr8TExFT6PzstWrRQbm6uV+bhyAx8kmVZeuSRR/Tuu+9q7dq1SkxM9PZIfyiWZamsrMzbY/iNLl26VPpEzf3336/mzZvrb3/7m2rXru2lyfxfWVmZdu/erdtvv93bo/iVW2+9tdLXZXz//fdKSEjwyjzEjAuOHz+uH374wXF779692rFjhxo2bKj4+HgvTuY/Hn74YS1atEjvvfeeQkNDVVBQIEkKCwtTUFCQl6fzL5MmTVJqaqri4uJ07NgxLV68WGvXrq30iTK4LjQ0tNL1XiEhIQoPD+c6MDebMGGC+vTpo/j4eB0+fFhTp05VcXGx0tLSvD2aX3n00UfVoUMHTZs2TXfffbc2b96sV155Ra+88op3BrJwydasWWNJqrSkpaV5ezS/cb73V5KVlZXl7dH8zogRI6yEhASrTp06VmRkpNWlSxdr5cqV3h7L73Xq1MkaM2aMt8fwO4MGDbJiYmKswMBAKzY21howYIC1a9cub4/ll95//32rdevWlt1ut5o3b2698sorXpvFZlmW5Z2MAgAAqDkuAAYAAEYjZgAAgNGIGQAAYDRiBgAAGI2YAQAARiNmAACA0YgZAABgNGIGgJFSUlI0duxYb48BwAcQMwA8rk+fPuratet579u4caNsNpu2b9/u4akAmIqYAeBx6enpWr16tfbv31/pvvnz5+u6665T27ZtvTAZABMRMwA8rnfv3oqKilJ2drbT+hMnTmjJkiXq16+f7rnnHjVu3FjBwcFKTk7Wm2++ecHntNlsWrp0qdO6K664wmkfBw8e1KBBg9SgQQOFh4erb9++2rdvn3teFACvIWYAeFxAQICGDRum7Oxs/f7n4d566y2dOnVKDzzwgG644QZ98MEH+uabb/Rf//Vfuu+++/TFF1+4vM8TJ06oc+fOqlevntavX6/PPvtM9erV05133qlTp06542UB8BJiBoBXjBgxQvv27dPatWsd6+bPn68BAwboyiuv1IQJE3Tdddfp6quv1iOPPKIePXrorbfecnl/ixcvVq1atfTqq68qOTlZLVq0UFZWlnJzc51mAGCeAG8PAOCPqXnz5urQoYPmz5+vzp0768cff9SGDRu0cuVKlZeX6+mnn9aSJUt08OBBlZWVqaysTCEhIS7vb9u2bfrhhx8UGhrqtP7kyZP68ccfa/pyAHgRMQPAa9LT0zV69Gi9+OKLysrKUkJCgrp06aLp06frueee06xZs5ScnKyQkBCNHTv2gqeDbDab0ykrSTp9+rTjnysqKnTDDTfojTfeqPTYyMhI970oAB5HzADwmrvvvltjxozRokWLtGDBAv3lL3+RzWbThg0b1LdvXw0dOlTSbyGSk5OjFi1aVPlckZGRys/Pd9zOycnRiRMnHLfbtm2rJUuWKCoqSvXr1798LwqAx3HNDACvqVevngYNGqRJkybp0KFDGj58uCSpSZMmWrVqlT7//HPt3r1bDz74oAoKCi74XHfccYdmz56t7du3a+vWrRo5cqQCAwMd9997772KiIhQ3759tWHDBu3du1fr1q3TmDFjdODAgcv5MgFcZsQMAK9KT0/XkSNH1LVrV8XHx0uSnnjiCbVt21Y9evRQSkqKoqOj1a9fvws+z4wZMxQXF6eOHTtqyJAhmjBhgoKDgx33BwcHa/369YqPj9eAAQPUokULjRgxQqWlpRypAQxns849yQwAAGAQjswAAACjETMAAMBoxAwAADAaMQMAAIxGzAAAAKMRMwAAwGjEDAAAMBoxAwAAjEbMAAAAoxEzAADAaMQMAAAwGjEDAACM9v8BoOvuc3fyXKsAAAAASUVORK5CYII=\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAhYAAAGdCAYAAABO2DpVAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAAASE0lEQVR4nO3dX2yVd/3A8c9hZGft1naCklE5rP4ZthuyCVt0P4wZ/k1/jrgLvTBUiYmLf5pNbYxmu3GNc9U7TUjIZpbtAifGGHCJgagX0BitQpFkme0AhYjiZpZoTyl4ko3zu/jFZnXU7Wk/p4cDr1fSkOfp8+dzd958z9NzSvV6vR4AAAmWNXsAAODyISwAgDTCAgBIIywAgDTCAgBIIywAgDTCAgBIIywAgDTLl/qGFy5ciDNnzkRHR0eUSqWlvj0AsAD1ej2mp6eju7s7li2bf11iycPizJkzUalUlvq2AECC06dPx5o1a+b9/ZKHRUdHR0T8/2CdnZ1LfXsAYAGq1WpUKpXZ1/H5LHlY/Pvtj87OTmEBAC3mtR5j8PAmAJBGWAAAaYQFAJBGWAAAaYQFAJBGWAAAaYQFAJBGWAAAaYQFAJCmcFj89a9/jYGBgVi5cmW0t7fHbbfdFuPj442YDQBoMYU+0vsf//hHbN68ObZs2RL79u2LVatWxR//+Me4/vrrGzQeANBKCoXFd77znahUKvHEE0/M7uvp6cmeCQBoUYXC4umnn46PfOQj8YlPfCIOHjwYb37zm+OLX/xi3HvvvfOeU6vVolarzW5Xq9WFTwukO3fuXExOTqZc6/z583Hq1Kno6emJtra2RV+vt7c32tvbEyYDlkqhsPjTn/4UO3fujKGhoXjwwQfjd7/7Xdx///1RLpfj05/+9EXPGRkZieHh4ZRhgXyTk5OxadOmZo9xUePj47Fx48ZmjwEUUKrX6/XXe/DVV18dt99+e/z617+e3Xf//ffHoUOH4je/+c1Fz7nYikWlUompqSlfmw6XgMwVi4mJiRgYGIhdu3ZFX1/foq9nxQIuHdVqNbq6ul7z9bvQisXq1avj5ptvnrOvr68vfvKTn8x7TrlcjnK5XOQ2wBJqb29PXxXo6+uz0gBXqEJ/brp58+Z47rnn5uw7duxY3HjjjalDAQCtqVBYfOUrX4mxsbF45JFH4sSJE/HUU0/FY489FoODg42aDwBoIYXC4o477og9e/bED3/4w1i/fn1885vfjO9+97uxbdu2Rs0HALSQQs9YRETcfffdcffddzdiFgCgxfmuEAAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgTaGweOihh6JUKs35ueGGGxo1GwDQYpYXPeGWW26JX/7yl7PbV111VepAAEDrKhwWy5cvt0oBAFxU4bA4fvx4dHd3R7lcjne/+93xyCOPxFvf+tZ5j6/ValGr1Wa3q9XqwiYF5jh+/HhMT083e4w5JiYm5vx7qejo6Iibbrqp2WPAFaFUr9frr/fgffv2xblz52LdunXxwgsvxMMPPxyTk5Px7LPPxsqVKy96zkMPPRTDw8Ov2j81NRWdnZ0LnxyuYMePH49169Y1e4yWcuzYMXEBi1CtVqOrq+s1X78LhcV/mpmZibe97W3xta99LYaGhi56zMVWLCqVirCARThy5Ehs2rQpdu3aFX19fc0eZ9b58+fj1KlT0dPTE21tbc0eJyL+f/VkYGAgxsfHY+PGjc0eB1rW6w2Lwm+FvNK1114b73znO+P48ePzHlMul6NcLi/mNsA8+vr6LrkXy82bNzd7BKCJFvU5FrVaLSYmJmL16tVZ8wAALaxQWHz1q1+NgwcPxsmTJ+O3v/1tfPzjH49qtRrbt29v1HwAQAsp9FbIX/7yl/jkJz8ZL774YrzpTW+K97znPTE2NhY33nhjo+YDAFpIobDYvXt3o+YAAC4DvisEAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANIsKi5GRkSiVSvHlL385aRwAoJUtOCwOHToUjz32WGzYsCFzHgCghS0oLM6ePRvbtm2L73//+/GGN7wheyYAoEUtX8hJg4OD8dGPfjQ++MEPxsMPP/xfj63ValGr1Wa3q9XqQm4JvELppX/Fu25YFm3/PBZxxqNS/03bP4/Fu25YFqWX/tXsUeCKUDgsdu/eHUeOHIlDhw69ruNHRkZieHi48GDA/K45++c48rnrIkY/FzHa7GkubX0RceRz18XE2T9HxP80exy47BUKi9OnT8eXvvSl+PnPfx7XXHPN6zrngQceiKGhodntarUalUql2JTAHP+6bm1sfPRs/OAHP4i+3t5mj3NJm5icjG3btsXj/7u22aPAFaFQWIyPj8ff//732LRp0+y+l19+OUZHR2PHjh1Rq9XiqquumnNOuVyOcrmcMy0QERH15dfE75+/EOevXxfRfVuzx7mknX/+Qvz++QtRX/76/jMELE6hsPjABz4QzzzzzJx9n/nMZ6K3tze+/vWvvyoqAIArS6Gw6OjoiPXr18/Zd+2118bKlStftR8AuPJ4nBwASLOgPzd9pQMHDiSMAQBcDqxYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkKZQWOzcuTM2bNgQnZ2d0dnZGXfeeWfs27evUbMBAC2mUFisWbMmvv3tb8fhw4fj8OHD8f73vz8+9rGPxbPPPtuo+QCAFrK8yMFbt26ds/2tb30rdu7cGWNjY3HLLbekDgYAtJ5CYfFKL7/8cvz4xz+OmZmZuPPOO+c9rlarRa1Wm92uVqsLvSUAcIkr/PDmM888E9ddd12Uy+X4/Oc/H3v27Imbb7553uNHRkaiq6tr9qdSqSxqYADg0lU4LN7xjnfE0aNHY2xsLL7whS/E9u3b4w9/+MO8xz/wwAMxNTU1+3P69OlFDQwAXLoKvxVy9dVXx9vf/vaIiLj99tvj0KFD8b3vfS8effTRix5fLpejXC4vbkoAoCUs+nMs6vX6nGcoAIArV6EViwcffDD6+/ujUqnE9PR07N69Ow4cOBD79+9v1HwAQAspFBYvvPBCfOpTn4q//e1v0dXVFRs2bIj9+/fHhz70oUbNBwC0kEJh8fjjjzdqDgDgMuC7QgCANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEhTKCxGRkbijjvuiI6Ojli1alXcc8898dxzzzVqNgCgxRQKi4MHD8bg4GCMjY3FL37xi3jppZfiwx/+cMzMzDRqPgCghSwvcvD+/fvnbD/xxBOxatWqGB8fj/e9732pgwEAradQWPynqampiIhYsWLFvMfUarWo1Wqz29VqdTG3BCLi3LlzERFx5MiRJk8y1/nz5+PUqVPR09MTbW1tzR4nIiImJiaaPQJcURYcFvV6PYaGhuK9731vrF+/ft7jRkZGYnh4eKG3AS5icnIyIiLuvffeJk/SOjo6Opo9AlwRSvV6vb6QEwcHB+NnP/tZ/OpXv4o1a9bMe9zFViwqlUpMTU1FZ2fnQm4NV7wXX3wx9u7dG729vdHe3t7scWZNTEzEwMBA7Nq1K/r6+po9zqyOjo646aabmj0GtLRqtRpdXV2v+fq9oBWL++67L55++ukYHR39r1EREVEul6NcLi/kNsA83vjGN8ZnP/vZZo8xr76+vti4cWOzxwCaoFBY1Ov1uO+++2LPnj1x4MCBeMtb3tKouQCAFlQoLAYHB+Opp56Kn/70p9HR0RHPP/98RER0dXVdMg9qAQDNU+hzLHbu3BlTU1Nx1113xerVq2d/fvSjHzVqPgCghRR+KwQAYD6+KwQASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0hcNidHQ0tm7dGt3d3VEqlWLv3r0NGAsAaEWFw2JmZiZuvfXW2LFjRyPmAQBa2PKiJ/T390d/f38jZgEAWlzhsCiqVqtFrVab3a5Wq42+JVDAuXPnYnJyMuVaExMTc/5drN7e3mhvb0+5FrA0Gh4WIyMjMTw83OjbAAs0OTkZmzZtSr3mwMBAynXGx8dj48aNKdcClkapXq/XF3xyqRR79uyJe+65Z95jLrZiUalUYmpqKjo7Oxd6ayBJ5orF+fPn49SpU9HT0xNtbW2Lvp4VC7h0VKvV6Orqes3X74avWJTL5SiXy42+DbBA7e3tqasCmzdvTrsW0Hp8jgUAkKbwisXZs2fjxIkTs9snT56Mo0ePxooVK2Lt2rWpwwEAraVwWBw+fDi2bNkyuz00NBQREdu3b48nn3wybTAAoPUUDou77rorFvG8JwBwGfOMBQCQRlgAAGmEBQCQRlgAAGmEBQCQRlgAAGmEBQCQRlgAAGmEBQCQpuHfbvqf/v2pndVqdalvDQAs0L9ft1/r07eXPCymp6cjIqJSqSz1rQGARZqeno6urq55f1+qL/EXf1y4cCHOnDkTHR0dUSqVlvLWQINVq9WoVCpx+vTp6OzsbPY4QKJ6vR7T09PR3d0dy5bN/yTFkocFcPmqVqvR1dUVU1NTwgKuUB7eBADSCAsAII2wANKUy+X4xje+EeVyudmjAE3iGQsAII0VCwAgjbAAANIICwAgjbAAANIIC2DRRkdHY+vWrdHd3R2lUin27t3b7JGAJhEWwKLNzMzErbfeGjt27Gj2KECTLfmXkAGXn/7+/ujv72/2GMAlwIoFAJBGWAAAaYQFAJBGWAAAaYQFAJDGX4UAi3b27Nk4ceLE7PbJkyfj6NGjsWLFili7dm0TJwOWmm83BRbtwIEDsWXLllft3759ezz55JNLPxDQNMICAEjjGQsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADS/B9nJH8/99x/+QAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] @@ -867,25 +689,23 @@ ], "source": [ "# your code here\n", - "sorted_roll_dice_df = roll_dice_df.sort_values(by='value')\n", + "sorted_rolls = roll_dice_df['value'].sort_values()\n", "\n", - "plt.hist(sorted_roll_dice_df['value'], bins=15, edgecolor='black')\n", - "plt.xlabel('Value')\n", - "plt.ylabel('Frequency')\n", - "plt.title('Value Distribution')\n", - "plt.show()" + "plt.boxplot(sorted_rolls)" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 105, "metadata": {}, "outputs": [], "source": [ - "\"\"\"\n", - "your comments here\n", - "\"\"\"\n", - "\n" + "\n", + "#Perfect normal distribution\n", + "\n", + "#IQR (to develop)\n", + "\n", + "#Mean : around 50\n" ] }, { @@ -897,7 +717,7 @@ }, { "cell_type": "code", - "execution_count": 218, + "execution_count": 106, "metadata": {}, "outputs": [ { @@ -918,7 +738,7 @@ }, { "cell_type": "code", - "execution_count": 221, + "execution_count": 107, "metadata": {}, "outputs": [ { @@ -945,26 +765,29 @@ }, { "cell_type": "code", - "execution_count": 248, + "execution_count": 141, "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" + " Dice Number Frequency\n", + "0 1 12\n", + "1 2 17\n", + "2 3 14\n", + "3 4 22\n", + "4 5 12\n", + "5 6 23\n" ] } ], "source": [ "# your code here\n", - "frequency_distribution = roll_dice_df['value'].value_counts().sort_index()\n", + "frequency_distribution = roll_dice_df['value'].value_counts().sort_index().reset_index()\n", + "\n", + "frequency_distribution.columns = ['Dice Number', 'Frequency']\n", + "\n", "print(frequency_distribution)" ] }, @@ -977,22 +800,12 @@ }, { "cell_type": "code", - "execution_count": 249, + "execution_count": 146, "metadata": {}, "outputs": [ { "data": { - "text/plain": [ - "Text(0.5, 1.0, 'Dice Rolls Frequency Distribution')" - ] - }, - "execution_count": 249, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjMAAAHFCAYAAAAHcXhbAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA0YklEQVR4nO3deXhU1f3H8c+QkJUkECRbgRBlU0EQQYQoO9SwlFVBQMKiRUGKIHVBfxIqEpZCUSlxT6AtIlREEBGobMrSAgooWEDZJTEKSEKEIMn5/eGTqUMWkiFkcuL79TzzPN57z73nO3cmzodzz51xGGOMAAAALFXJ0wUAAABcDcIMAACwGmEGAABYjTADAACsRpgBAABWI8wAAACrEWYAAIDVCDMAAMBqhBkAAGA1wgzKtZSUFDkcDufDz89PERERat++vRITE5Wenp5vn4SEBDkcjjKt88iRIy51VqpUSdWqVVPHjh21Zs2aqzpmSkqKc13e+Thy5MhV1zx06FCXmn/5eP/996/6+Pify891YGCg6tSpo9/97ndKTk5WdnZ2vn3atWundu3alaifffv2KSEhocTvj8v7ynvv/fnPfy7Rca5k6tSpWrZsWb71GzZskMPh0IYNG0q1P/x6eHu6AKA4kpOT1bBhQ/30009KT0/XJ598ounTp+vPf/6z3n77bXXq1MnZ9oEHHtDdd9/tkTrHjBmjgQMHKicnR//97381efJkde3aVevWrVObNm08UlNR/P39tW7dunzrGzZs6IFqKrZfnuvz58/r+PHjWrVqlR588EHNmjVLH374oWrWrOlsP2/evBL3sW/fPk2ePFnt2rVTnTp1ir2fO325Y+rUqerXr5969erlsr5Zs2baunWrbrrppjKpAxUPYQZWaNSokZo3b+5c7tu3r8aNG6c777xTffr00cGDBxUeHi5JqlmzpsuHQlmqXbu27rjjDklSbGys6tWrp7Zt2+qNN94ol2GmUqVKznqL48cff1RAQMA1rKjiKuhcDxkyRMOGDVP37t3Vr18/bdu2zbmtLD7Y815PT4eI4ODgEr0PgctxmQnWql27tmbNmqXMzEy98sorzvWFXWZauHChWrVqpSpVqqhKlSpq2rSp3njjDZc2//rXv9SxY0cFBwcrICBAsbGx+uijj9yuMS+Affvtty7rv/jiC/Xs2VPVqlWTn5+fmjZtqvnz57vVx2effabu3bsrLCxMvr6+ioqKUrdu3XTixAm365b+dx4//fRT9evXT9WqVdMNN9wgSTLGaN68eWratKn8/f1VrVo19evXT4cOHXI5hjFGM2bMUHR0tPz8/NSsWTOtWrUq32WNwi6fFXb5oTivU179e/fu1X333aeQkBCFh4dr+PDhOnv2rEvb3NxcvfTSS87nU7VqVd1xxx1avny5JGnEiBEKDQ3Vjz/+mO88dejQQTfffHNJTq2LLl266MEHH9S///1vbdq0ybm+oMtMSUlJatKkiapUqaKgoCA1bNhQEydOlPTzObznnnskSe3bt3de0sq7TNmuXTs1atRImzZtUuvWrRUQEKDhw4cX2lfeeXn++edVu3Zt+fn5qXnz5vnO89ChQwscBbr879DhcCgrK0vz58931pbXZ2Gv8/Lly9WqVSsFBAQoKChInTt31tatWwvspzivMyouwgys1rVrV3l5ebl8CBTk2Wef1aBBgxQVFaWUlBS9++67io+P19GjR51t/v73v6tLly4KDg7W/PnztXjxYoWGhuq3v/2t24Hm8OHDkqT69es71+3fv1+tW7fW3r179eKLL2rp0qW66aabNHToUM2YMaNEx8/KylLnzp317bff6q9//avWrl2rOXPmqHbt2srMzCzWMS5duuTyyMnJcdnep08f1a1bV0uWLNHLL78sSRo5cqQeffRRderUScuWLdO8efO0d+9etW7d2iW4TZ48WU888YQ6d+6sZcuW6eGHH9aDDz6o/fv3l+h5/lJJX6e+ffuqfv36euedd/Tkk09q4cKFGjdunEuboUOHauzYsWrRooXefvttLVq0SL/73e+c4Wrs2LE6c+aMFi5c6LLfvn37tH79eo0ePdrt5yNJv/vd7ySpyPfxokWLNGrUKLVt21bvvvuuli1bpnHjxikrK0uS1K1bN02dOlWS9Ne//lVbt27V1q1b1a1bN+cxUlNTNXjwYA0cOFAffPCBRo0aVWRdc+fO1Ycffqg5c+bo73//uypVqqS4uLh8gaI4tm7dKn9/f3Xt2tVZW1GXtxYuXKiePXsqODhYb731lt544w2dOXNG7dq10yeffJKvfXFeZ1RgBijHkpOTjSSzffv2QtuEh4ebG2+80bk8adIk88u39qFDh4yXl5cZNGhQocfIysoyoaGhpkePHi7rc3JyTJMmTcztt99eZJ2HDx82ksz06dPNTz/9ZC5cuGB27dplWrVqZSIjI83hw4edbQcMGGB8fX3NsWPHXI4RFxdnAgICzA8//OByzOTk5HznI+94O3bsMJLMsmXLiqyvIPHx8UZSvkdsbKwx5n/n8dlnn3XZb+vWrUaSmTVrlsv648ePG39/f/P4448bY4w5c+aM8fPzM71793Zpt3nzZiPJtG3bttDnlWf9+vVGklm/fr0xpmSvU179M2bMcGk7atQo4+fnZ3Jzc40xxmzatMlIMk8//XSR56tt27amadOmLusefvhhExwcbDIzM4vcNz4+3gQGBha6/csvvzSSzMMPP+zS3y/P0SOPPGKqVq1aZD9LlixxOV+X1y/JfPTRRwVu+2Vfee+9qKgoc/78eef6jIwMExoaajp16uTy3KKjo/Md8/K/Q2OMCQwMNPHx8fnaXv465+TkmKioKNO4cWOTk5PjbJeZmWnCwsJM69at8/VzpdcZFRsjM7CeMabI7WvXrlVOTk6R/3resmWLTp8+rfj4eJdRitzcXN19993avn2781/ARXniiSdUuXJl56WjL774QitWrHAZhl+3bp06duyoWrVquew7dOhQ/fjjjyX6V2/dunVVrVo1PfHEE3r55Ze1b9++Yu8r/Twpdfv27S6Pyy+99e3b12X5/fffl8Ph0ODBg13OVUREhJo0aeK8VLB161ZduHBBgwYNctm/devWio6OLlGdedx5nfJGPfLccsstunDhgvNOuFWrVknSFUdXxo4dq127dmnz5s2SpIyMDP3tb39TfHy8qlSp4tbzyXOl97Ak3X777frhhx9033336b333tP3339f4n6qVaumDh06FLt9nz595Ofn51wOCgpSjx49tGnTpnwjeKVp//79OnnypO6//35VqvS/j6kqVaqob9++2rZtW75Lfld6nVGxMQEYVsvKytKpU6fUuHHjQtt89913klTkpOC8SyP9+vUrtM3p06cVGBhYZD1jx47V4MGDlZ2drW3btumZZ55Rz549tXv3blWvXl2SdOrUKUVGRubbNyoqyrm9uEJCQrRx40Y9//zzmjhxos6cOaPIyEg9+OCDeuaZZ1S5cuUi969UqZLLxOqCXF7rt99+K2OMc8L15a6//nqX5xEREZGvTUHrisOd1ynvvOfx9fWV9PMdRdLP7w8vL68r1tSzZ0/VqVNHf/3rXxUbG6uUlBRlZWVd9SUmSc7LnXnvgYLcf//9unTpkl577TX17dtXubm5atGihaZMmaLOnTsXq5+C3ndFKey1u3jxos6dO6eQkJASHa+48t47hf2d5Obm6syZMy6T0a/0OqNiI8zAaitXrlROTk6R38dRo0YNSdKJEyfyjYbkue666yRJL730UqF3VRT24f1LNWvWdIaD2NhYRUREaPDgwZo0aZLmzp0r6ef/6aampubb9+TJky61FFfjxo21aNEiGWO0Z88epaSk6E9/+pP8/f315JNPluhYBbl8MvV1110nh8Ohjz/+2PmB8Ut56/I+XNLS0vK1SUtLcxmtyvvX/+Xft3L56ENpvU6/VKNGDeXk5CgtLa3ID/tKlSpp9OjRmjhxombNmqV58+apY8eOatCgQYn6K0jeROMrfa/MsGHDNGzYMGVlZWnTpk2aNGmSunfvrgMHDhRrtKuk379U2Gvn4+PjHI3y8/Mr8Hty3Bk5ypP33ins7yTve5yAPFxmgrWOHTumCRMmKCQkRCNHjiy0XZcuXeTl5aWkpKRC28TGxqpq1arat2+fmjdvXuDDx8enxDUOGjRI7dq102uvveb813fHjh21bt06Z3jJs2DBAgUEBLh9i6rD4VCTJk30l7/8RVWrVtWnn37q1nGupHv37jLG6JtvvinwPOWNkt1xxx3y8/PTP/7xD5f9t2zZ4jLxWpIz2OzZs8dlfd6HfJ5r8TrFxcVJUpHvjzwPPPCAfHx8NGjQIO3fv1+PPPJIifoqyNq1a/X666+rdevWuvPOO4u1T2BgoOLi4vT000/r4sWL2rt3r6TSH41YunSpLly44FzOzMzUihUrdNddd8nLy0vSz69denq6y8TvixcvavXq1fmO5+vrW6zaGjRooN/85jdauHChyyW4rKwsvfPOO847nIA8jMzACl988YVzfkR6ero+/vhjJScny8vLS++++65z9KUgderU0cSJE/Xcc8/p/Pnzzts39+3bp++//16TJ09WlSpV9NJLLyk+Pl6nT59Wv379FBYWpu+++067d+/Wd999V6wPu4JMnz5dLVu21HPPPafXX39dkyZN0vvvv6/27dvr2WefVWhoqP7xj39o5cqVmjFjRomG7t9//33NmzdPvXr10vXXXy9jjJYuXaoffvih2JceSio2Nla///3vNWzYMO3YsUNt2rRRYGCg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hYaGKjQ0VAkJCerbt68iIyN15MgRTZw4Udddd5169+7twaoBAEB54tEws2PHDrVv3965nDfXJT4+XklJSfr888+1YMEC/fDDD4qMjFT79u319ttvKygoyFMlAwCAcsajYaZdu3YyxhS6ffXq1WVYDQAAsJFVc2YAAAAuR5gBAABWI8wAAACrEWYAAIDVCDMAAMBqboWZw4cPl3YdAAAAbnErzNStW1ft27fX3//+d124cKG0awIAACg2t8LM7t27deutt+qxxx5TRESERo4cqf/85z+lXRsAAMAVufWleY0aNdLs2bM1Y8YMrVixQikpKbrzzjtVr149jRgxQvfff79q1KhR2rUCuMbqPLnSI/0emdbNI/0CqBiuagKwt7e3evfurcWLF2v69On6+uuvNWHCBNWsWVNDhgxRampqadUJAABQoKsKMzt27NCoUaMUGRmp2bNna8KECfr666+1bt06ffPNN+rZs2dp1QkAAFAgty4zzZ49W8nJydq/f7+6du2qBQsWqGvXrqpU6edsFBMTo1deeUUNGzYs1WIBAAAu51aYSUpK0vDhwzVs2DBFREQU2KZ27dp64403rqo4AACAK3ErzBw8ePCKbXx8fBQfH+/O4QEAAIrNrTkzycnJWrJkSb71S5Ys0fz586+6KAAAgOJyK8xMmzZN1113Xb71YWFhmjp16lUXBQAAUFxuhZmjR48qJiYm3/ro6GgdO3bsqosCAAAoLrfCTFhYmPbs2ZNv/e7du1W9evWrLgoAAKC43AozAwYM0B/+8AetX79eOTk5ysnJ0bp16zR27FgNGDCgtGsEAAAolFt3M02ZMkVHjx5Vx44d5e398yFyc3M1ZMgQ5swAAIAy5VaY8fHx0dtvv63nnntOu3fvlr+/vxo3bqzo6OjSrg8AAKBIboWZPPXr11f9+vVLqxYAAIAScyvM5OTkKCUlRR999JHS09OVm5vrsn3dunWlUhwAAMCVuBVmxo4dq5SUFHXr1k2NGjWSw+Eo7boAAACKxa0ws2jRIi1evFhdu3Yt7XoAAABKxK1bs318fFS3bt3SrgUAAKDE3Aozjz32mF544QUZY0q7HgAAgBJx6zLTJ598ovXr12vVqlW6+eabVblyZZftS5cuLZXiAAAArsStMFO1alX17t27tGsBAAAoMbfCTHJycmnXAQAA4Ba35sxI0qVLl/Svf/1Lr7zyijIzMyVJJ0+e1Llz50qtOAAAgCtxa2Tm6NGjuvvuu3Xs2DFlZ2erc+fOCgoK0owZM3ThwgW9/PLLpV0nAABAgdwamRk7dqyaN2+uM2fOyN/f37m+d+/e+uijj0qtOAAAgCtx+26mzZs3y8fHx2V9dHS0vvnmm1IpDAAAoDjcGpnJzc1VTk5OvvUnTpxQUFDQVRcFAABQXG6Fmc6dO2vOnDnOZYfDoXPnzmnSpEn8xAEAAChTbl1m+stf/qL27dvrpptu0oULFzRw4EAdPHhQ1113nd56663SrhEAAKBQboWZqKgo7dq1S2+99ZY+/fRT5ebmasSIERo0aJDLhGAAAIBrza0wI0n+/v4aPny4hg8fXpr1AAAAlIhbYWbBggVFbh8yZIhbxdiozpMrPdLvkWndPNIvANiC/z//ergVZsaOHeuy/NNPP+nHH3+Uj4+PAgICflVhBgAAeJZbdzOdOXPG5XHu3Dnt379fd955JxOAAQBAmXL7t5kuV69ePU2bNi3fqA0AAMC1VGphRpK8vLx08uTJ0jwkAABAkdyaM7N8+XKXZWOMUlNTNXfuXMXGxpZKYQAAAMXhVpjp1auXy7LD4VCNGjXUoUMHzZo1qzTqAgAAKBa3wkxubm5p1wEAAOCWUp0zAwAAUNbcGpkZP358sdvOnj3bnS4AAACKxa0w89lnn+nTTz/VpUuX1KBBA0nSgQMH5OXlpWbNmjnbORyO0qkSAACgEG6FmR49eigoKEjz589XtWrVJP38RXrDhg3TXXfdpccee6xUiwQAACiMW3NmZs2apcTERGeQkaRq1appypQp3M0EAADKlFthJiMjQ99++22+9enp6crMzLzqogAAAIrLrTDTu3dvDRs2TP/85z914sQJnThxQv/85z81YsQI9enTp7RrBAAAKJRbc2ZefvllTZgwQYMHD9ZPP/3084G8vTVixAjNnDmzVAsEAAAoilthJiAgQPPmzdPMmTP19ddfyxijunXrKjAwsLTrAwAAKNJVfWleamqqUlNTVb9+fQUGBsoYU1p1AQAAFItbYebUqVPq2LGj6tevr65duyo1NVWS9MADD3BbNgAAKFNuhZlx48apcuXKOnbsmAICApzr+/fvrw8//LDUigMAALgSt+bMrFmzRqtXr1bNmjVd1terV09Hjx4tlcIAAACKw62RmaysLJcRmTzff/+9fH19r7ooAACA4nIrzLRp00YLFixwLjscDuXm5mrmzJlq3759qRUHAABwJW5dZpo5c6batWunHTt26OLFi3r88ce1d+9enT59Wps3by7tGgEAAArl1sjMTTfdpD179uj2229X586dlZWVpT59+uizzz7TDTfcUNo1AgAAFKrEIzM//fSTunTpoldeeUWTJ0++FjUBAAAUW4lHZipXrqwvvvhCDofjqjvftGmTevTooaioKDkcDi1btsxluzFGCQkJioqKkr+/v9q1a6e9e/dedb8AAKDicOsy05AhQ/TGG29cdedZWVlq0qSJ5s6dW+D2GTNmaPbs2Zo7d662b9+uiIgIde7cmV/mBgAATm5NAL548aJef/11rV27Vs2bN8/3m0yzZ88u1nHi4uIUFxdX4DZjjObMmaOnn37a+Uvc8+fPV3h4uBYuXKiRI0e6UzoAAKhgShRmDh06pDp16uiLL75Qs2bNJEkHDhxwaVMal58k6fDhw0pLS1OXLl2c63x9fdW2bVtt2bKFMAMAACSVMMzUq1dPqampWr9+vaSff77gxRdfVHh4eKkXlpaWJkn5jh0eHl7ktwxnZ2crOzvbuZyRkVHqtQEAgPKjRHNmLv9V7FWrVikrK6tUC7rc5SM9xpgiR38SExMVEhLifNSqVeua1gcAADzLrQnAeS4PN6UpIiJC0v9GaPKkp6cXORL01FNP6ezZs87H8ePHr1mNAADA80oUZhwOR75RkdKaI3O5mJgYRUREaO3atc51Fy9e1MaNG9W6detC9/P19VVwcLDLAwAAVFwlmjNjjNHQoUOdPyZ54cIFPfTQQ/nuZlq6dGmxjnfu3Dl99dVXzuXDhw9r165dCg0NVe3atfXoo49q6tSpqlevnurVq6epU6cqICBAAwcOLEnZAACgAitRmImPj3dZHjx48FV1vmPHDpcfphw/fryzn5SUFD3++OM6f/68Ro0apTNnzqhly5Zas2aNgoKCrqpfAABQcZQozCQnJ5dq5+3atSty3o3D4VBCQoISEhJKtV8AAFBxXNUEYAAAAE8jzAAAAKsRZgAAgNUIMwAAwGqEGQAAYDXCDAAAsBphBgAAWI0wAwAArEaYAQAAViPMAAAAqxFmAACA1QgzAADAaoQZAABgNcIMAACwGmEGAABYjTADAACsRpgBAABWI8wAAACrEWYAAIDVCDMAAMBqhBkAAGA1wgwAALAaYQYAAFiNMAMAAKxGmAEAAFYjzAAAAKsRZgAAgNUIMwAAwGqEGQAAYDXCDAAAsBphBgAAWI0wAwAArEaYAQAAViPMAAAAqxFmAACA1QgzAADAaoQZAABgNcIMAACwGmEGAABYjTADAACsRpgBAABWI8wAAACrEWYAAIDVCDMAAMBqhBkAAGA1wgwAALAaYQYAAFiNMAMAAKxGmAEAAFYjzAAAAKsRZgAAgNUIMwAAwGqEGQAAYDXCDAAAsBphBgAAWI0wAwAArEaYAQAAViPMAAAAqxFmAACA1QgzAADAaoQZAABgNcIMAACwGmEGAABYjTADAACsRpgBAABWI8wAAACrleswk5CQIIfD4fKIiIjwdFkAAKAc8fZ0AVdy880361//+pdz2cvLy4PVAACA8qbchxlvb29GYwAAQKHK9WUmSTp48KCioqIUExOjAQMG6NChQ0W2z87OVkZGhssDAABUXOU6zLRs2VILFizQ6tWr9dprryktLU2tW7fWqVOnCt0nMTFRISEhzketWrXKsGIAAFDWynWYiYuLU9++fdW4cWN16tRJK1eulCTNnz+/0H2eeuopnT171vk4fvx4WZULAAA8oNzPmfmlwMBANW7cWAcPHiy0ja+vr3x9fcuwKgAA4EnlemTmctnZ2fryyy8VGRnp6VIAAEA5Ua7DzIQJE7Rx40YdPnxY//73v9WvXz9lZGQoPj7e06UBAIByolxfZjpx4oTuu+8+ff/996pRo4buuOMObdu2TdHR0Z4uDQAAlBPlOswsWrTI0yUAAIByrlxfZgIAALgSwgwAALAaYQYAAFiNMAMAAKxGmAEAAFYjzAAAAKsRZgAAgNUIMwAAwGqEGQAAYDXCDAAAsBphBgAAWI0wAwAArEaYAQAAViPMAAAAqxFmAACA1QgzAADAaoQZAABgNcIMAACwGmEGAABYjTADAACsRpgBAABWI8wAAACrEWYAAIDVCDMAAMBqhBkAAGA1wgwAALAaYQYAAFiNMAMAAKxGmAEAAFYjzAAAAKsRZgAAgNUIMwAAwGqEGQAAYDXCDAAAsBphBgAAWI0wAwAArEaYAQAAViPMAAAAqxFmAACA1QgzAADAaoQZAABgNcIMAACwGmEGAABYjTADAACsRpgBAABWI8wAAACrEWYAAIDVCDMAAMBqhBkAAGA1wgwAALAaYQYAAFiNMAMAAKxGmAEAAFYjzAAAAKsRZgAAgNUIMwAAwGqEGQAAYDXCDAAAsBphBgAAWI0wAwAArEaYAQAAViPMAAAAqxFmAACA1QgzAADAaoQZAABgNSvCzLx58xQTEyM/Pz/ddttt+vjjjz1dEgAAKCfKfZh5++239eijj+rpp5/WZ599prvuuktxcXE6duyYp0sDAADlQLkPM7Nnz9aIESP0wAMP6MYbb9ScOXNUq1YtJSUlebo0AABQDpTrMHPx4kXt3LlTXbp0cVnfpUsXbdmyxUNVAQCA8sTb0wUU5fvvv1dOTo7Cw8Nd1oeHhystLa3AfbKzs5Wdne1cPnv2rCQpIyPjmtSYm/3jNTnulVyr51NecZ7LBue5bHCey8av7TxXtOebd1xjzBXbluswk8fhcLgsG2PyrcuTmJioyZMn51tfq1ata1Kbp4TM8XQFvw6c57LBeS4bnOey8Ws7z9f6+WZmZiokJKTINuU6zFx33XXy8vLKNwqTnp6eb7Qmz1NPPaXx48c7l3Nzc3X69GlVr1690ADkroyMDNWqVUvHjx9XcHBwqR4b/8N5Lhuc57LBeS4bnOeycS3PszFGmZmZioqKumLbch1mfHx8dNttt2nt2rXq3bu3c/3atWvVs2fPAvfx9fWVr6+vy7qqVateyzIVHBzMH0sZ4DyXDc5z2eA8lw3Oc9m4Vuf5SiMyecp1mJGk8ePH6/7771fz5s3VqlUrvfrqqzp27JgeeughT5cGAADKgXIfZvr3769Tp07pT3/6k1JTU9WoUSN98MEHio6O9nRpAACgHCj3YUaSRo0apVGjRnm6jHx8fX01adKkfJe1ULo4z2WD81w2OM9lg/NcNsrLeXaY4tzzBAAAUE6V6y/NAwAAuBLCDAAAsBphBgAAWI0wAwAArEaYccOmTZvUo0cPRUVFyeFwaNmyZZ4uqcJJTExUixYtFBQUpLCwMPXq1Uv79+/3dFkVUlJSkm655Rbnl161atVKq1at8nRZFVpiYqIcDoceffRRT5dS4SQkJMjhcLg8IiIiPF1WhfTNN99o8ODBql69ugICAtS0aVPt3LnTI7UQZtyQlZWlJk2aaO7cuZ4upcLauHGjRo8erW3btmnt2rW6dOmSunTpoqysLE+XVuHUrFlT06ZN044dO7Rjxw516NBBPXv21N69ez1dWoW0fft2vfrqq7rllls8XUqFdfPNNys1NdX5+Pzzzz1dUoVz5swZxcbGqnLlylq1apX27dunWbNmXfNv3C+MFd8zU97ExcUpLi7O02VUaB9++KHLcnJyssLCwrRz5061adPGQ1VVTD169HBZfv7555WUlKRt27bp5ptv9lBVFdO5c+c0aNAgvfbaa5oyZYqny6mwvL29GY25xqZPn65atWopOTnZua5OnToeq4eRGVjh7NmzkqTQ0FAPV1Kx5eTkaNGiRcrKylKrVq08XU6FM3r0aHXr1k2dOnXydCkV2sGDBxUVFaWYmBgNGDBAhw4d8nRJFc7y5cvVvHlz3XPPPQoLC9Ott96q1157zWP1EGZQ7hljNH78eN15551q1KiRp8upkD7//HNVqVJFvr6+euihh/Tuu+/qpptu8nRZFcqiRYv06aefKjEx0dOlVGgtW7bUggULtHr1ar322mtKS0tT69atderUKU+XVqEcOnRISUlJqlevnlavXq2HHnpIf/jDH7RgwQKP1MNlJpR7jzzyiPbs2aNPPvnE06VUWA0aNNCuXbv0ww8/6J133lF8fLw2btxIoCklx48f19ixY7VmzRr5+fl5upwK7ZdTABo3bqxWrVrphhtu0Pz58zV+/HgPVlax5Obmqnnz5po6daok6dZbb9XevXuVlJSkIUOGlHk9jMygXBszZoyWL1+u9evXq2bNmp4up8Ly8fFR3bp11bx5cyUmJqpJkyZ64YUXPF1WhbFz506lp6frtttuk7e3t7y9vbVx40a9+OKL8vb2Vk5OjqdLrLACAwPVuHFjHTx40NOlVCiRkZH5/rFz44036tixYx6ph5EZlEvGGI0ZM0bvvvuuNmzYoJiYGE+X9KtijFF2drany6gwOnbsmO+OmmHDhqlhw4Z64okn5OXl5aHKKr7s7Gx9+eWXuuuuuzxdSoUSGxub7+syDhw4oOjoaI/UQ5hxw7lz5/TVV185lw8fPqxdu3YpNDRUtWvX9mBlFcfo0aO1cOFCvffeewoKClJaWpokKSQkRP7+/h6urmKZOHGi4uLiVKtWLWVmZmrRokXasGFDvjvK4L6goKB8870CAwNVvXp15oGVsgkTJqhHjx6qXbu20tPTNWXKFGVkZCg+Pt7TpVUo48aNU+vWrTV16lTde++9+s9//qNXX31Vr776qmcKMiix9evXG0n5HvHx8Z4urcIo6PxKMsnJyZ4urcIZPny4iY6ONj4+PqZGjRqmY8eOZs2aNZ4uq8Jr27atGTt2rKfLqHD69+9vIiMjTeXKlU1UVJTp06eP2bt3r6fLqpBWrFhhGjVqZHx9fU3Dhg3Nq6++6rFaHMYY45kYBQAAcPWYAAwAAKxGmAEAAFYjzAAAAKsRZgAAgNUIMwAAwGqEGQAAYDXCDAAAsBphBkCpcjgcWrZsmafLKNLQoUPVq1cvT5cBoJQQZgBc0dChQ+VwOORwOFS5cmWFh4erc+fOevPNN5Wbm+vSNjU11eWXi0vTmDFjVK9evQK3ffPNN/Ly8tLSpUuvSd8Ayi/CDIBiufvuu5WamqojR45o1apVat++vcaOHavu3bvr0qVLznYRERHy9fW9JjWMGDFCX331lT7++ON821JSUlS9enX16NHjmvQNoPwizAAoFl9fX0VEROg3v/mNmjVrpokTJ+q9997TqlWrlJKS4mx3+WWmEydOaMCAAQoNDVVgYKCaN2+uf//7387tK1as0G233SY/Pz9df/31mjx5sks4+qWmTZuqWbNmevPNN/NtS0lJ0ZAhQ1SpUiWNGDFCMTEx8vf3V4MGDfTCCy8U+dzq1KmjOXPm5OsrISHBuXz27Fn9/ve/V1hYmIKDg9WhQwft3r3buX337t1q3769goKCFBwcrNtuu007duwosl8ApYMwA8BtHTp0UJMmTQq9tHPu3Dm1bdtWJ0+e1PLly7V79249/vjjzktTq1ev1uDBg/WHP/xB+/bt0yuvvKKUlBQ9//zzhfY5YsQILVmyROfOnXOu27hxo7766isNHz5cubm5qlmzphYvXqx9+/bp2Wef1cSJE7V48WK3n6cxRt26dVNaWpo++OAD7dy5U82aNVPHjh11+vRpSdKgQYNUs2ZNbd++XTt37tSTTz6pypUru90ngOLz9nQBAOzWsGFD7dmzp8BtCxcu1Hfffaft27crNDRUklS3bl3n9ueff15PPvmk4uPjJUnXX3+9nnvuOT3++OOaNGlSgcccOHCgHnvsMS1ZskTDhg2TJL355ptq1aqVbrrpJknS5MmTne1jYmK0ZcsWLV68WPfee69bz3H9+vX6/PPPlZ6e7ryE9uc//1nLli3TP//5T/3+97/XsWPH9Mc//lENGzaUpELn9gAofYQZAFfFGCOHw1Hgtl27dunWW291BpnL7dy5U9u3b3cZicnJydGFCxf0448/KiAgIN8+VatWVZ8+ffTmm29q2LBhyszM1DvvvONymejll1/W66+/rqNHj+r8+fO6ePGimjZt6vZz3Llzp86dO6fq1au7rD9//ry+/vprSdL48eP1wAMP6G9/+5s6deqke+65RzfccIPbfQIoPsIMgKvy5ZdfKiYmpsBt/v7+Re6bm5uryZMnq0+fPvm2+fn5FbrfiBEj1LFjRx08eFAbN26UJPXv31+StHjxYo0bN06zZs1Sq1atFBQUpJkzZ7rM07lcpUqVZIxxWffTTz+51BkZGakNGzbk27dq1aqSpISEBA0cOFArV67UqlWrNGnSJC1atEi9e/cutF8ApYMwA8Bt69at0+eff65x48YVuP2WW27R66+/rtOnTxc4OtOsWTPt37/f5dJTcbRv317XX3+9UlJStH79et17770KCgqSJH388cdq3bq1Ro0a5WyfN3pSmBo1aig1NdW5nJGRocOHD7vUmZaWJm9vb9WpU6fQ49SvX1/169fXuHHjdN999yk5OZkwA5QBJgADKJbs7GylpaXpm2++0aeffqqpU6eqZ8+e6t69u4YMGVLgPvfdd58iIiLUq1cvbd68WYcOHdI777yjrVu3SpKeffZZLViwQAkJCdq7d6++/PJLvf3223rmmWeKrMXhcGjYsGFKSkrS1q1bNWLECOe2unXraseOHVq9erUOHDig//u//9P27duLPF6HDh30t7/9TR9//LG++OILxcfHy8vLy7m9U6dOatWqlXr16qXVq1fryJEj2rJli5555hnt2LFD58+f1yOPPKINGzbo6NGj2rx5s7Zv364bb7yxuKcXwFUgzAAolg8//FCRkZGqU6eO7r77bq1fv14vvvii3nvvPZcP/l/y8fHRmjVrFBYWpq5du6px48aaNm2as/1vf/tbvf/++1q7dq1atGihO+64Q7Nnz1Z0dPQV6xk6dKjOnj2rBg0aKDY21rn+oYceUp8+fdS/f3+1bNlSp06dchmlKchTTz2lNm3aqHv37uratat69erlMt/F4XDogw8+UJs2bTR8+HDVr19fAwYM0JEjRxQeHi4vLy+dOnVKQ4YMUf369XXvvfcqLi7OZSIygGvHYS6/UAwAAGARRmYAAIDVCDMAAMBqhBkAAGA1wgwAALAaYQYAAFiNMAMAAKxGmAEAAFYjzAAAAKsRZgAAgNUIMwAAwGqEGQAAYDXCDAAAsNr/A1TGoMT9UQ1fAAAAAElFTkSuQmCC\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjMAAAHFCAYAAAAHcXhbAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAABAuUlEQVR4nO3deXgO9/7/8dct5M4iQhBJKgmtrZamVWotUqSCoJZWSwWnPV1QpSvntPhVBT2cnjaHbiScFq1TYmkpLUmqpYdqSlFLGwSxtDSRqCCZ3x+9cn97yyK5Re57kufjuua6OjOfmXnfc0/cr858ZsZiGIYhAAAAk6ri7AIAAACuB2EGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGLi0+Pl4Wi8U2eHh4KCAgQOHh4YqJidHp06cLLDN16lRZLJZyrfPw4cN2dVapUkW1atVS9+7dtWHDhutaZ3x8vG1a/v44fPjwddc8cuRIu5r/PKxdu/a614//c/W+9vb2VoMGDdSvXz/FxcUpJyenwDLdunVTt27dSrWdvXv3aurUqaU+Pq7eVv6x949//KNU67mWGTNmKCEhocD0xMREWSwWJSYmlun2UHlUdXYBQEnExcWpWbNmunz5sk6fPq0tW7Zo1qxZ+sc//qEPP/xQPXr0sLV95JFH1KtXL6fUOW7cOD300EPKzc3Vjz/+qGnTpql3797atGmTunTp4pSaiuPp6alNmzYVmN6sWTMnVFOx/Xlf//7770pLS9O6dev06KOPas6cOVq/fr3q169vaz9v3rxSb2Pv3r2aNm2aunXrpgYNGpR4OUe25YgZM2Zo8ODBGjBggN301q1ba+vWrWrevHm51IGKhzADU2jZsqXatGljGx80aJAmTJigzp07a+DAgTp48KDq1asnSapfv77dj0J5CgkJUfv27SVJnTp1UuPGjdW1a1ctWLDAJcNMlSpVbPWWxIULF+Tl5XUDK6q4CtvXI0aM0KhRo9S3b18NHjxY27Zts80rjx/2/O/T2SGiRo0apToOgatxmQmmFRISojlz5uj8+fN6++23bdOLusy0ZMkSdejQQdWrV1f16tV1++23a8GCBXZtPv/8c3Xv3l01atSQl5eXOnXqpC+++MLhGvMD2KlTp+ym//DDD+rfv79q1aolDw8P3X777Vq0aJFD2/juu+/Ut29f+fv7y2q1KigoSH369NGxY8ccrlv6v/24c+dODR48WLVq1dItt9wiSTIMQ/PmzdPtt98uT09P1apVS4MHD9bPP/9stw7DMDR79myFhobKw8NDrVu31rp16wpc1ijq8llRlx9K8j3l179nzx49+OCD8vX1Vb169TR69GhlZGTYtc3Ly9Obb75p+zw1a9ZU+/bttXr1aknSX/7yF/n5+enChQsF9tM999yjFi1alGbX2omIiNCjjz6qb775RsnJybbphV1mmj9/vsLCwlS9enX5+PioWbNmmjx5sqQ/9uGQIUMkSeHh4bZLWvmXKbt166aWLVsqOTlZHTt2lJeXl0aPHl3ktvL3y6uvvqqQkBB5eHioTZs2BfbzyJEjCz0LdPXfocViUXZ2thYtWmSrLX+bRX3Pq1evVocOHeTl5SUfHx/17NlTW7duLXQ7JfmeUXERZmBqvXv3lpubm92PQGFefvllDRs2TEFBQYqPj9fKlSsVHR2tI0eO2Nq8//77ioiIUI0aNbRo0SJ99NFH8vPz07333utwoElNTZUkNWnSxDZt//796tixo/bs2aM33nhDK1asUPPmzTVy5EjNnj27VOvPzs5Wz549derUKf373//Wxo0b9frrryskJETnz58v0TquXLliN+Tm5trNHzhwoBo1aqTly5frrbfekiQ99thjevrpp9WjRw8lJCRo3rx52rNnjzp27GgX3KZNm6YXXnhBPXv2VEJCgp544gk9+uij2r9/f6k+55+V9nsaNGiQmjRpoo8//lgvvviilixZogkTJti1GTlypMaPH6+2bdvqww8/1LJly9SvXz9buBo/frzOnTunJUuW2C23d+9ebd68WWPGjHH480hSv379JKnY43jZsmV68skn1bVrV61cuVIJCQmaMGGCsrOzJUl9+vTRjBkzJEn//ve/tXXrVm3dulV9+vSxrSM9PV3Dhw/XQw89pE8//VRPPvlksXXFxsZq/fr1ev311/X++++rSpUqioyMLBAoSmLr1q3y9PRU7969bbUVd3lryZIl6t+/v2rUqKGlS5dqwYIFOnfunLp166YtW7YUaF+S7xkVmAG4sLi4OEOSsX379iLb1KtXz7j11ltt41OmTDH+fGj//PPPhpubmzFs2LAi15GdnW34+fkZUVFRdtNzc3ONsLAw46677iq2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pUsXeXt7Kz09XVu2bFGrVq30xBNPqFatWnr22Wc1ffp0PfLIIxoyZIjS0tI0derUApcv2rZtq6ZNm+rZZ5/VlStXVKtWLa1cubLAXSs34nu6++679fDDD2v69Ok6deqU+vbtK6vVqu+++05eXl4aN26crW3NmjU1YsQIzZ8/X6GhoYqKiirxdvLy8mzPkcnJydHRo0e1bt06ffTRR7r11lv10UcfFbv8o48+Kk9PT3Xq1EmBgYE6efKkYmJi5Ovrq7Zt20r643lMkvTOO+/Ix8dHHh4eatiwYYFLMCXl5uamnj17auLEicrLy9OsWbOUmZmpadOm2do88MADevnllzV06FA999xzunjxot54441C+9S0atVKiYmJWrNmjQIDA+Xj41Poma0qVapo9uzZGjZsmPr27avHHntMOTk5eu211/Tbb79p5syZDn0eVGBO7HwMXFP+XS75g7u7u+Hv72907drVmDFjhnH69OkCyxR2F4VhGMbixYuNtm3bGh4eHkb16tWNO+64w+5OIcMwjKSkJKNPnz6Gn5+fUa1aNeOmm24y+vTpYyxfvrzYOvPv/njttdcKnT9kyBCjatWqxqFDhwzDMIzdu3cbUVFRhq+vr+Hu7m6EhYUVqKUkdzP9+OOPxoMPPmjccssthqenp+Hr62vcddddRnx8fLH1Gsa177DJ349nzpwpdP7ChQuNdu3aGd7e3oanp6dxyy23GCNGjDB27Nhha5OXl2fExMQYwcHBhru7u3HbbbcZa9asKXD3jGEYxoEDB4yIiAijRo0aRt26dY1x48YZn3zySaF355Tkeyqq/sLunMrNzTX++c9/Gi1btjTc3d0NX19fo0OHDsaaNWsKfO7ExERDkjFz5swi993Vrr5zzNPT0wgJCTGioqKMhQsXGjk5OQWWuXofLVq0yAgPDzfq1atnuLu7G0FBQcb9999v7Nq1y265119/3WjYsKHh5uZmd/x07drVaNGiRaH1FXU306xZs4xp06YZ9evXN9zd3Y077rjD+Oyzzwos/+mnnxq333674enpadx8881GbGxsoX+HKSkpRqdOnQwvLy+7O9quvpspX0JCgtGuXTvDw8PD8Pb2Nrp372589dVXdm1K8z2j4rIYRgm60QNAGfrzw9LM5plnntH8+fOVlpbm8BkPAGWLy0wAUALbtm3TgQMHNG/ePD322GME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W6fs7OwyLQgAAKA0HOoAnO/qcAMAAFDeShVmLBZLgT4x9JEBAADOVKo+M4ZhaOTIkbaXSV68eFGPP/54gbuZVqxYUXYVAgAAFKNUYSY6OtpufPjw4WVaDAAAQGmVKszExcXdqDoAAAAccl0dgAEAAJyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyN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\n", "text/plain": [ "
" ] @@ -1002,13 +815,16 @@ } ], "source": [ - "# your code here\n", - "#bins = frequency_distribution.index.to_list()\n", + "plt.bar(frequency_distribution['Dice Number'], frequency_distribution['Frequency'], color='blue')\n", "\n", - "plt.hist(frequency_distribution.index, bins=15, weights=frequency_distribution.values)\n", - "plt.xlabel('Dice Values')\n", "plt.ylabel('Frequency')\n", - "plt.title('Dice Rolls Frequency Distribution')" + "plt.xlabel('Dice Number')\n", + "plt.title('Dice Rolls Frequency Distribution')\n", + "\n", + "plt.yticks(range(min(frequency_distribution['Frequency']), max(frequency_distribution['Frequency']) + 1))\n", + "plt.xticks(range(min(frequency_distribution['Dice Number']), max(frequency_distribution['Dice Number']) + 1))\n", + "\n", + "plt.show()" ] }, { @@ -1031,7 +847,7 @@ }, { "cell_type": "code", - "execution_count": 242, + "execution_count": 111, "metadata": {}, "outputs": [ { @@ -1090,7 +906,7 @@ "2 2 2 1" ] }, - "execution_count": 242, + "execution_count": 111, "metadata": {}, "output_type": "execute_result" } @@ -1103,46 +919,50 @@ }, { "cell_type": "code", - "execution_count": 244, + "execution_count": 120, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "1 175\n", - "2 167\n", - "3 175\n", - "4 168\n", - "5 149\n", - "6 166\n", - "Name: value, dtype: int64\n" + " index value\n", + "0 1 175\n", + "1 2 167\n", + "2 3 175\n", + "3 4 168\n", + "4 5 149\n", + "5 6 166\n" ] } ], "source": [ - "frequency_distribution_2 = roll_the_dice_thousand_df['value'].value_counts().sort_index()\n", - "print(frequency_distribution_2)" + "frequency_distribution = roll_the_dice_thousand_df['value'].value_counts().sort_index().reset_index()\n", + "print(frequency_distribution)" ] }, { "cell_type": "code", - "execution_count": 246, + "execution_count": 121, "metadata": {}, "outputs": [ { - "data": { - "text/plain": [ - "Text(0.5, 1.0, 'Dice Rolls Frequency Distribution')" - ] - }, - "execution_count": 246, - "metadata": {}, - "output_type": "execute_result" + "ename": "ValueError", + "evalue": "weights should have the same shape as x", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[121], line 3\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[38;5;66;03m#bins = frequency_distribution_2.index.to_list()\u001b[39;00m\n\u001b[0;32m----> 3\u001b[0m \u001b[43mplt\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mhist\u001b[49m\u001b[43m(\u001b[49m\u001b[43mfrequency_distribution\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mindex\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mbins\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m7\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mweights\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mfrequency_distribution\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mvalues\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 4\u001b[0m plt\u001b[38;5;241m.\u001b[39mxlabel(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mDice Values\u001b[39m\u001b[38;5;124m'\u001b[39m)\n\u001b[1;32m 5\u001b[0m plt\u001b[38;5;241m.\u001b[39mylabel(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mFrequency\u001b[39m\u001b[38;5;124m'\u001b[39m)\n", + "File \u001b[0;32m~/anaconda3/lib/python3.10/site-packages/matplotlib/pyplot.py:2618\u001b[0m, in \u001b[0;36mhist\u001b[0;34m(x, bins, range, density, weights, cumulative, bottom, histtype, align, orientation, rwidth, log, color, label, stacked, data, **kwargs)\u001b[0m\n\u001b[1;32m 2612\u001b[0m \u001b[38;5;129m@_copy_docstring_and_deprecators\u001b[39m(Axes\u001b[38;5;241m.\u001b[39mhist)\n\u001b[1;32m 2613\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mhist\u001b[39m(\n\u001b[1;32m 2614\u001b[0m x, bins\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, \u001b[38;5;28mrange\u001b[39m\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, density\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m, weights\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m,\n\u001b[1;32m 2615\u001b[0m cumulative\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m, bottom\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, histtype\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mbar\u001b[39m\u001b[38;5;124m'\u001b[39m, align\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mmid\u001b[39m\u001b[38;5;124m'\u001b[39m,\n\u001b[1;32m 2616\u001b[0m orientation\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mvertical\u001b[39m\u001b[38;5;124m'\u001b[39m, rwidth\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, log\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m, color\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m,\n\u001b[1;32m 2617\u001b[0m label\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, stacked\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m, \u001b[38;5;241m*\u001b[39m, data\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs):\n\u001b[0;32m-> 2618\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mgca\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mhist\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 2619\u001b[0m \u001b[43m \u001b[49m\u001b[43mx\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mbins\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mbins\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mrange\u001b[39;49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mrange\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdensity\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdensity\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mweights\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mweights\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 2620\u001b[0m \u001b[43m \u001b[49m\u001b[43mcumulative\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mcumulative\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mbottom\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mbottom\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mhisttype\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mhisttype\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 2621\u001b[0m \u001b[43m \u001b[49m\u001b[43malign\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43malign\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43morientation\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43morientation\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mrwidth\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mrwidth\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mlog\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mlog\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 2622\u001b[0m \u001b[43m \u001b[49m\u001b[43mcolor\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mcolor\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mlabel\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mlabel\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mstacked\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mstacked\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 2623\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43m{\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mdata\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mdata\u001b[49m\u001b[43m}\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mif\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mdata\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01mis\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;129;43;01mnot\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43;01melse\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43m{\u001b[49m\u001b[43m}\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/anaconda3/lib/python3.10/site-packages/matplotlib/__init__.py:1442\u001b[0m, in \u001b[0;36m_preprocess_data..inner\u001b[0;34m(ax, data, *args, **kwargs)\u001b[0m\n\u001b[1;32m 1439\u001b[0m \u001b[38;5;129m@functools\u001b[39m\u001b[38;5;241m.\u001b[39mwraps(func)\n\u001b[1;32m 1440\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21minner\u001b[39m(ax, \u001b[38;5;241m*\u001b[39margs, data\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs):\n\u001b[1;32m 1441\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m data \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m-> 1442\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mfunc\u001b[49m\u001b[43m(\u001b[49m\u001b[43max\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;28;43mmap\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43msanitize_sequence\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43margs\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1444\u001b[0m bound \u001b[38;5;241m=\u001b[39m new_sig\u001b[38;5;241m.\u001b[39mbind(ax, \u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n\u001b[1;32m 1445\u001b[0m auto_label \u001b[38;5;241m=\u001b[39m (bound\u001b[38;5;241m.\u001b[39marguments\u001b[38;5;241m.\u001b[39mget(label_namer)\n\u001b[1;32m 1446\u001b[0m \u001b[38;5;129;01mor\u001b[39;00m bound\u001b[38;5;241m.\u001b[39mkwargs\u001b[38;5;241m.\u001b[39mget(label_namer))\n", + "File \u001b[0;32m~/anaconda3/lib/python3.10/site-packages/matplotlib/axes/_axes.py:6731\u001b[0m, in \u001b[0;36mAxes.hist\u001b[0;34m(self, x, bins, range, density, weights, cumulative, bottom, histtype, align, orientation, rwidth, log, color, label, stacked, **kwargs)\u001b[0m\n\u001b[1;32m 6728\u001b[0m w \u001b[38;5;241m=\u001b[39m [\u001b[38;5;28;01mNone\u001b[39;00m] \u001b[38;5;241m*\u001b[39m nx\n\u001b[1;32m 6730\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mlen\u001b[39m(w) \u001b[38;5;241m!=\u001b[39m nx:\n\u001b[0;32m-> 6731\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mweights should have the same shape as x\u001b[39m\u001b[38;5;124m'\u001b[39m)\n\u001b[1;32m 6733\u001b[0m input_empty \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mTrue\u001b[39;00m\n\u001b[1;32m 6734\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m xi, wi \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mzip\u001b[39m(x, w):\n", + "\u001b[0;31mValueError\u001b[0m: weights should have the same shape as x" + ] }, { "data": { - "image/png": "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aWlp2rp1qxo2bKhnnnlGVatW1dixYzVp0iQ98cQTevTRR3X69GklJCQUujzSvHlz3XXXXRo7dqyuXr2qqlWratWqVYWeuimN1+mBBx7Q448/rkmTJunHH39U165d5ebmpq+//lqenp4aMWKEtW+VKlU0YMAAzZs3T6GhoYqNjb3h/eTn51s/Ryc3N1enTp3SunXrtHz5ct19991avnx5iesPHTpUHh4eioyMVFBQkNLT05WYmChfX181b95c0m+fRyVJb7/9try9veXu7q6wsLBCl3hulIuLizp06KDRo0crPz9fU6dOVWZmpiZOnGjt07t3b73yyivq06eP/vKXv+jSpUt64403irynp2HDhtq0aZM++ugjBQUFydvbu8iRsQoVKmjatGnq16+funbtqqeeekq5ubmaPn26zp8/rylTpth1PDApJ94cDThEwVM6BZOrq6vh7+9vtGnTxpg8ebKRkZFRaJ2ingIxDMNYtGiR0bx5c8Pd3d2oXLmy0aRJE5snnQzDMDZv3mx06dLF8PPzMypVqmT86U9/Mrp06WKsWLGixDoLnl6ZPn16kcsfffRRo2LFisaxY8cMwzCM/fv3G7GxsYavr6/h6upqNGrUqFAtN/I01n//+1/jscceM+68807Dw8PD8PX1Ne677z4jOTm5xHoN4/pPCBWcx59++qnI5QsWLDBatGhheHl5GR4eHsadd95pDBgwwNi5c6e1T35+vpGYmGiEhIQYrq6uxr333mt89NFHhZ7+MQzDOHLkiNGxY0fDx8fHqFGjhjFixAhj7dq1RT5ddCOvU3H1F/XkV15envHaa68Z4eHhhqurq+Hr62u0atXK+Oijjwod96ZNmwxJxpQpU4o9d9e69sk3Dw8Po1atWkZsbKyxYMECIzc3t9A6156jhQsXGtHR0UZAQIDh6upqBAcHG7169TL27dtns96sWbOMsLAww8XFxeb906ZNG6NBgwZF1lfc01hTp041Jk6caNSsWdNwdXU1mjRpYqxfv77Q+p988onRuHFjw8PDw7jjjjuMOXPmFPlzuGfPHiMyMtLw9PS0eSLv2qexCqxevdpo0aKF4e7ubnh5eRnt2rUzvvrqK5s+N/M6w5wshnEDt/gDQBn7/YfJ3W7GjBmjefPm6fTp03aPmABwHC5jAYCD7NixQ0eOHNHcuXP11FNPEXSAcoKwAwAO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ADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1wg4AADA1p4adLVu2KDY2VsHBwbJYLFq9erV12ZUrV/TCCy+oYcOG8vLyUnBwsAYMGKAffvjBZhtRUVGyWCw2U58+fcr4SAAAQHnl1LCTk5OjRo0aac6cOYWW/frrr9q9e7f+7//+T7t379bKlSt15MgRPfzww4X6Dh06VGlpadbprbfeKovyAQDAbaCiM3ceExOjmJiYIpf5+voqJSXFpm327Nm67777dOrUKdWqVcva7unpqcDAwFKtFQAA3J5uq3t2Lly4IIvFoipVqti0L168WNWrV1eDBg00duxYZWVllbid3NxcZWZm2kwAAMCcnDqyczMuXbqkF198UX379pWPj4+1vV+/fgoLC1NgYKAOHDigcePGae/evYVGhX4vMTFREydOLIuyAQCAk90WYefKlSvq06eP8vPzNXfuXJtlQ4cOtf47PDxcdevWVUREhHbv3q2mTZsWub1x48Zp9OjR1vnMzEyFhISUTvEAAMCpyn3YuXLlinr16qXjx49rw4YNNqM6RWnatKkqVaqko0ePFht23Nzc5ObmVhrlAgCAcqZch52CoHP06FFt3LhR1apVu+46Bw8e1JUrVxQUFFQGFQIAgPLOqWEnOztbx44ds84fP35ce/bskZ+fn4KDg/XII49o9+7d+vjjj5WXl6f09HRJkp+fn1xdXfXtt99q8eLF6ty5s6pXr65Dhw5pzJgxatKkiSIjI511WAAAoBxxatjZuXOnoqOjrfMF99HEx8crISFBa9askSQ1btzYZr2NGzcqKipKrq6u+uKLL/T6668rOztbISEh6tKliyZMmCAXF5cyOw4AAFB+OTXsREVFyTCMYpeXtEySQkJCtHnzZkeXBQAATOS2+pwdAACAm0XYAQAApkbYAQAApkbYAQAApkbYAQAApkbYAQAApkbYAQAApkbYAQAApkbYAQAApkbYAQAApkbYAQAA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devWKScnx6EFXatGjRo281OmTNGdd96pNm3aWNvc3NwUGBhYqnUAAIDbk103KBe4NvyUtsuXL+v999/X4MGDbZ4G27Rpk/z9/VWvXj0NHTpUGRkZJW4nNzdXmZmZNhMAADCnmwo7BffEXNtWVlavXq3z589r4MCB1raYmBgtXrxYGzZs0IwZM5Samqq2bdsqNze32O0kJibK19fXOoWEhJRB9QAAwBlu+jLWwIEDrV/2eenSJT399NOFnsZauXKl4yr8nfnz5ysmJkbBwcHWtt69e1v/HR4eroiICIWGhmrt2rWKi4srcjvjxo3T6NGjrfOZmZkEHgAATOqmwk58fLzNfP/+/R1aTElOnjypzz///LpBKigoSKGhoTp69Gixfdzc3Ph2dgAA/iBuKuz8/omnspaUlCR/f3916dKlxH5nz57V6dOnFRQUVEaVAQCA8uyWblAuK/n5+UpKSlJ8fLwqVvxfPsvOztbYsWO1fft2nThxQps2bVJsbKyqV6+uHj16OLFiAABQXtj1Ccpl7fPPP9epU6c0ePBgm3YXFxft379fixYt0vnz5xUUFKTo6GgtW7ZM3t7eTqoWAACUJ7dF2OnYsWORj7l7eHho/fr1TqgIAADcLm6Ly1gAAAD2IuwAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTK9dhJyEhQRaLxWYKDAy0LjcMQwkJCQoODpaHh4eioqJ08OBBJ1YMAADKm3IddiSpQYMGSktLs0779++3Lps2bZpmzpypOXPmKDU1VYGBgerQoYOysrKcWDEAAChPyn3YqVixogIDA61TjRo1JP02qjNr1iy99NJLiouLU3h4uBYuXKhff/1VS5YscXLVAACgvCj3Yefo0aMKDg5WWFiY+vTpo++++06SdPz4caWnp6tjx47Wvm5ubmrTpo22bdtW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7ixxvwBuHWEHQKlq27atGjVqVOylo+zsbLVp00Y//PCD1qxZo7179+r555+3Xvpav369+vfvrz//+c86dOiQ3nrrLSUnJ+vVV18tdp9DhgzRihUrlJ2dbW3bvHmzjh07psGDBys/P181a9bU8uXLdejQIb3yyisaP368li9fbvdxGoahLl26KD09XZ988ol27dqlpk2bql27dvrll18kSf369VPNmjWVmpqqXbt26cUXX1SlSpXs3ieAG1PR2QUAML/69etr3759RS5bsmSJfvrpJ6WmpsrPz0+SVKdOHevyV199VS+++KLi4+MlSXfccYf+9re/6fnnn9eECROK3Gbfvn01ZswYrVixQoMGDZIkLViwQK1atdI999wjSZo4caK1f1hYmLZt26bly5erV69edh3jxo0btX//fmVkZFgv0f3973/X6tWr9a9//UtPPvmkTp06pb/85S+qX7++JBV7bxEAxyLsACh1hmHIYrEUuWzPnj1q0qSJNehca9euXUpNTbUZycnLy9OlS5f066+/ytPTs9A6VapUUVxcnBYsWKBBgwYpKytLH3zwgc1lqDfffFPvvvuuTp48qYsXL+ry5ctq3Lix3ce4a9cuZWdnq1q1ajbtFy9e1LfffitJGj16tJ544gm99957at++vR599FHdeeeddu8TwI0h7AAodd98843CwsKKXObh4VHiuvn5+Zo4caLi4uIKLXN3dy92vSFDhqhdu3Y6evSoNm/eLEnq3bu3JGn58uUaNWqUZsyYoVatWsnb21vTp0+3uU/oWhUqVJBhGDZtV65csakzKChImzZtKrRulSpVJEkJCQnq27ev1q5dq3Xr1mnChAlaunSpevToUex+Adw6wg6AUrVhwwbt379fo0aNKnL5vffeq3fffVe//PJLkaM7TZs21eHDh20ubd2I6Oho3XHHHUpOTtbGjRvVq1cveXt7S5K+/PJLtW7dWsOGDbP2Lxh9KU6NGjWUlpZmnc/MzNTx48dt6kxPT1fFihVVu3btYrdTr1491atXT6NGjdJjjz2mpKQkwg5QyrhBGYDD5ObmKj09Xd9//712796tyZMnq1u3buratasGDBhQ5DqPPfaYAgMD1b17d3311Vf67rvv9MEHH2j79u2SpFdeeUWLFi1SQkKCDh48qG+++UbLli3Tyy+/XGItFotFgwYN0rx587R9+3YNGTLEuqxOnTrauXOn1q9fryNHjuj//u//lJqaWuL22rZtq/fee09ffvmlDhw4oPj4eLm4uFiXt2/fXq1atVL37t21fv16nThxQtu2bdPLL7+snTt36uLFi3r22We1adMmnTx5Ul999ZVSU1N199133+jpBWAnwg4Ah/n0008VFBSk2rVrq1OnTtq4caPeeOMNffjhhzbB4PdcXV312Wefyd/fX507d1bDhg01ZcoUa/+HHnpIH3/8sVJSUtS8eXO1bNlSM2fOVGho6HXrGThwoC5cuKC77rpLkZGR1vann35acXFx6t27t1q0aKGzZ8/ajPIUZdy4cXrwwQfVtWtXde7cWd27d7e538ZiseiTTz7Rgw8+qMGDB6tevXrq06ePTpw4oYCAALm4uOjs2bMaMGCA6tWrp169eikmJsbmRmkApcNiXHsRGgAAwEQY2QEAAKZG2AEAAKZG2AEAAKZG2AEAAKZG2AEAAKZG2AEAAKZG2AEAAKZG2AEAAKZG2AEAAKZG2AEAAKZG2AEAAKZG2AEAAKb2/wBMiz8K6cobHwAAAABJRU5ErkJggg==\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -1154,7 +974,6 @@ "source": [ "#bins = frequency_distribution_2.index.to_list()\n", "\n", - "plt.hist(frequency_distribution_2.index, bins=15, weights=frequency_distribution_2.values)\n", "plt.xlabel('Dice Values')\n", "plt.ylabel('Frequency')\n", "plt.title('Dice Rolls Frequency Distribution')" From 5e0664334bd6149902135dc4303950ba0fdbdf8f Mon Sep 17 00:00:00 2001 From: Amandine0424 <138607470+Amandine0424@users.noreply.github.com> Date: Mon, 6 Nov 2023 19:00:26 +0100 Subject: [PATCH 3/6] Add files via upload --- .../Lab_descriptive_statistics.ipynb | 3661 +++++++++++++++++ 1 file changed, 3661 insertions(+) create mode 100644 your-code/.ipynb_checkpoints/Lab_descriptive_statistics.ipynb diff --git a/your-code/.ipynb_checkpoints/Lab_descriptive_statistics.ipynb b/your-code/.ipynb_checkpoints/Lab_descriptive_statistics.ipynb new file mode 100644 index 0000000..be0145b --- /dev/null +++ b/your-code/.ipynb_checkpoints/Lab_descriptive_statistics.ipynb @@ -0,0 +1,3661 @@ +{ + "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 pandas as pd\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Challenge 1\n", + "#### 1.- Define a function that simulates rolling a dice 10 times. Save the information in a dataframe.\n", + "**Hint**: you can use the *choices* function from module *random* to help you with the simulation." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "# Method saw in lab class with Jesus \n", + "\n", + "import random\n", + "\n", + "def dice_throw(n):\n", + " return pd.DataFrame({'Number':[random.choice(np.arange(1, 7, 1)) for i in range(n)]}) #give a set of value to random choice\n" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "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", + "
Number
11
23
31
43
52
64
74
83
96
106
\n", + "
" + ], + "text/plain": [ + " Number\n", + "1 1\n", + "2 3\n", + "3 1\n", + "4 3\n", + "5 2\n", + "6 4\n", + "7 4\n", + "8 3\n", + "9 6\n", + "10 6" + ] + }, + "execution_count": 34, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dice_values = dice_throw(10)\n", + "\n", + "# Reset the index to start from 1\n", + "dice_values = dice_values.reset_index(drop=True)\n", + "\n", + "# Increment the index by 1 to start from 1\n", + "dice_values.index += 1\n", + "\n", + "dice_values" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "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", + "
Number
04
15
25
35
46
54
63
73
84
94
\n", + "
" + ], + "text/plain": [ + " Number\n", + "0 4\n", + "1 5\n", + "2 5\n", + "3 5\n", + "4 6\n", + "5 4\n", + "6 3\n", + "7 3\n", + "8 4\n", + "9 4" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# your code here\n", + "\n", + "import random\n", + "\n", + "\n", + "def rolling_dice():\n", + " return pd.DataFrame({'Number': random.choices(range(1, 7), k=10)}) #6 angles of the dice, rolling 10 times\n", + "\n", + "dice_rolls = rolling_dice()\n", + "\n", + "dice_rolls.head(10)\n", + "\n", + "#pd.DataFrame important :\n", + "\n", + "#DataFrame = tableau Excel, possible de faire des modifications\n", + "#(diff tableau algorythmique qui est non modifiable)\n", + "#Dataframe peut contenir str, float, int." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 2.- Plot the results sorted by value." + ] + }, + { + "cell_type": "code", + "execution_count": 63, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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9HQEBgbKjkFERESVcOnSpcfOjGzSRaV4avNLly4ZfLpuIiIiqh5qtRqBgYHl+swrky4qxZd7XFxcWFSIiIhMTHmGbXAwLRERERktFhUiIiIyWiwqREREZLRYVIiIiMhosagQERGR0WJRISIiIqPFokJERERGi0WFiIiIjBaLChERERktFhUiIiIyWtKLSlpaGp5//nm4u7vDwcEBEREROHz4sOxYREREZASkftbPrVu30LZtW3Ts2BG//fYbvLy8cObMGdSqVUtmLCIiIjISUovKhx9+iMDAQCxfvly/rF69evICERERGcD12xrkFWhlxzAIexsruDuppO1falH5+eef8cwzz+C5557Drl274O/vj5deegnjx48vc32NRgONRqN/rFarayoqERFRufwYdwmvrU2SHcNg+oT74fNhkdL2L7WonD17FkuXLsXUqVMxY8YMHDx4EBMnToRKpcLIkSNLrT937lzMnj1bQlIiIqLHE0Lgm73nAAA2VgooFQrJiarO2kruMSiEEELWzm1tbdGyZUvs27dPv2zixImIi4vD/v37S61f1hmVwMBAZGdnw8XFpUYyExERPcyxtGz0+mIvbK2ViHuzC1ztbWRHMkpqtRqurq7lev+WetePr68vmjVrVmJZ06ZNcfHixTLXV6lUcHFxKfFFRERkLNYcvgwA6NbMmyXFQKQWlbZt2+LUqVMllp0+fRp169aVlIiIiKhy8gt12JiYBgAY2CJAchrzIbWoTJkyBQcOHMCcOXOQmpqK2NhYfPXVV4iJiZEZi4iIqMJ2nMrErTsF8HJW4emGHrLjmA2pReWJJ57A+vXrsWrVKjRv3hzvvfcePv30U4wYMUJmLCIiogorvuzTP9If1lbS51M1G1Lv+gGAXr16oVevXrJjEBERVdqN2xrsOJkJgJd9DI2Vj4iIqIo2JqajUCcQFuCKxt7OsuOYFRYVIiKiKlobX3TZZ2AUz6YYGosKERFRFSRfUeN4uho2Vgr0CfeTHcfssKgQERFVwdp7g2g7B3ujtqOt5DTmh0WFiIiokgq0OmxITAcADOIg2mrBokJERFRJu09fw/XbGrg72qJDE0/ZccwSiwoREVElFQ+i7RvhDxvOnVIt+KoSERFVQtadfPx+omjuFF72qT4sKkRERJWw6Ug68rU6NPV1QTM/fkhudWFRISIiqoQ18UUfQMiz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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "#Jesus' method\n", + "\n", + "#Here sort it by value, not frequency distribution\n", + "dice = dice_values.sort_values(by='Number').reset_index()['Number'] \n", + "#by = name of the column\n", + "#reset index so we have value count plot (otherwise we have plot as we would not done value count as \n", + "#we reset the number)\n", + "\n", + "#After resetting the index, we select the 'Number' column using square brackets, \n", + "#which returns a Series containing only the 'Number' column. \n", + "#This is useful to work with the sorted and reset 'Number' values as a 1-D data structure (Series) \n", + "#rather than a 2-D DataFrame.\n", + "\n", + "\n", + "#Step 2 - Set parameters \n", + "plt.plot(range(1, len(dice) + 1), dice)\n", + "\n", + "# Set x-axis ticks starting from 1 with a step of 1\n", + "plt.xticks(range(1, len(dice) + 1))\n", + "\n", + "# Set y-axis ticks starting from 1 with a step of 1\n", + "plt.yticks(range(1, int(dice.max()) + 1))\n", + "\n", + "\n", + "plt.xlabel(\"Index\")\n", + "plt.ylabel(\"Number\")\n", + "plt.title(\"Plot of Sorted 'Number' Values\")\n", + "\n", + "plt.show()\n", + "\n", + "#Here we create a new dataframe, we sort it by column, we reset the index (we wanna get rid of the first column indexed)\n", + "#we give the column name in which we wanna put this value \n", + "#after the reset we add [name of the column] because we put the column values in it." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Plot explanation :\n", + "\n", + "1. The x-axis (horizontal) represents the index values of the DataFrame after resetting the index. These values start from 0 and go up to 9, which correspond to the sorted positions of the 'Number' values in the DataFrame.\n", + "\n", + "2. The y-axis (vertical) represents the actual 'Number' values in your DataFrame, which have been sorted in ascending order.\n", + "\n", + "The plot itself consists of points connected by lines. Each point on the plot represents a 'Number' value from your DataFrame, and the lines connect these points in ascending order." + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "0 1\n", + "1 1\n", + "2 2\n", + "3 3\n", + "4 3\n", + "5 3\n", + "6 4\n", + "7 4\n", + "8 6\n", + "9 6\n", + "Name: Number, dtype: int64" + ] + }, + "execution_count": 36, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dice #Check we now we have the column sorted by ascending order" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'whiskers': [,\n", + " ],\n", + " 'caps': [,\n", + " ],\n", + " 'boxes': [],\n", + " 'medians': [],\n", + " 'fliers': [],\n", + " 'means': []}" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAhYAAAGdCAYAAABO2DpVAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAPmElEQVR4nO3dX4iV9Z/A8c9R6aQ2M5UUOXlyShJHzUqLEtkLywg3JYK6CKcklvhBgpVEkQQpmVNX20UgWVEXUkKI0o0SXWgsZelIIOKklm7WtP5ot+aMfzqxevbiR0Pzy1k9M5+Z4+jrBSHnmefP5yaeN9955jyFarVaDQCABKPqPQAAcPEQFgBAGmEBAKQRFgBAGmEBAKQRFgBAGmEBAKQRFgBAmjHDfcEzZ85EV1dXNDQ0RKFQGO7LAwADUK1Wo6enJ5qbm2PUqP7XJYY9LLq6uqJUKg33ZQGABEePHo1Jkyb1+/NhD4uGhoaI+MdgjY2Nw315AGAAyuVylEql3vt4f4Y9LP749UdjY6OwAIAR5lyPMXh4EwBIIywAgDTCAgBIIywAgDTCAgBIIywAgDTCAgBIIywAgDTCAgBIU3NY/Pjjj9HW1hYTJkyIcePGxW233RYdHR1DMRsAMMLU9JXev/zyS8ybNy/mz58fW7dujWuvvTa+/fbbuPLKK4doPABgJKkpLF5//fUolUrx3nvv9W5raWnJngkAGKFqCouPP/447r///njkkUdix44dcf3118dTTz0VTz75ZL/HVCqVqFQqvZ/L5fLApwXSnTx5Mjo7O1POderUqThy5Ei0tLTE2LFjB32+adOmxbhx4xImA4ZLTWHx3Xffxbp162LFihWxcuXK+Oqrr2L58uVRLBbj8ccfP+sx7e3tsXr16pRhgXydnZ0xZ86ceo9xVh0dHTF79ux6jwHUoFCtVqvnu/Nll10Wd9xxR3z++ee925YvXx67du2KL7744qzHnG3FolQqRXd3t9emwwUgc8Vi//790dbWFhs2bIjW1tZBn8+KBVw4yuVyNDU1nfP+XdOKxcSJE2P69Ol9trW2tsamTZv6PaZYLEaxWKzlMsAwGjduXPqqQGtrq5UGuETV9Oem8+bNi2+++abPtgMHDsTkyZNThwIARqaawuLZZ5+NnTt3xtq1a+PQoUPxwQcfxPr162PZsmVDNR8AMILUFBZ33nlnbN68OT788MOYOXNmvPLKK/HGG2/EkiVLhmo+AGAEqekZi4iIRYsWxaJFi4ZiFgBghPOuEAAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgTU1hsWrVqigUCn3+u+6664ZqNgBghBlT6wEzZsyITz/9tPfz6NGjUwcCAEaumsNizJgxVikAgLOqOSwOHjwYzc3NUSwW46677oq1a9fGTTfd1O/+lUolKpVK7+dyuTywSYE+Dh48GD09PfUeo4/9+/f3+fdC0dDQEDfffHO9x4BLQqFarVbPd+etW7fGyZMnY+rUqXHs2LFYs2ZNdHZ2xr59+2LChAlnPWbVqlWxevXqv2zv7u6OxsbGgU8Ol7CDBw/G1KlT6z3GiHLgwAFxAYNQLpejqanpnPfvmsLin504cSKmTJkSzz//fKxYseKs+5xtxaJUKgkLGIQ9e/bEnDlzYsOGDdHa2lrvcXqdOnUqjhw5Ei0tLTF27Nh6jxMR/1g9aWtri46Ojpg9e3a9x4ER63zDouZfhfzZ+PHj45ZbbomDBw/2u0+xWIxisTiYywD9aG1tveBulvPmzav3CEAdDep7LCqVSuzfvz8mTpyYNQ8AMILVFBbPPfdc7NixIw4fPhxffvllPPzww1Eul2Pp0qVDNR8AMILU9KuQH374IR599NH4+eef45prrom77747du7cGZMnTx6q+QCAEaSmsNi4ceNQzQEAXAS8KwQASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASDOosGhvb49CoRDPPPNM0jgAwEg24LDYtWtXrF+/PmbNmpU5DwAwgg0oLI4fPx5LliyJt99+O6666qrsmQCAEWrMQA5atmxZPPDAA7FgwYJYs2bN/7tvpVKJSqXS+7lcLg/kksCf/NbzP3H7daPiP3d+HGN/PVDvcXpVKpXo6uqK5ubmKBaL9R4nIiL+6/DhuP26UVH439/qPQpcEmoOi40bN8aePXti165d57V/e3t7rF69uubBgP4d2/cfsedvV0T8/d8j/l7vafq6LSLiaJ2H+JPWiPjXv10R31f/u96jwCWhprA4evRoPP300/HJJ5/E5Zdffl7HvPjii7FixYrez+VyOUqlUm1TAn38y0P/Fps3R7S0tJz3/4vD4fDhw/HSSy/FmjVr4sYbb6z3OL3Gjx8fN9x+b73HgEtCoVqtVs935y1btsRDDz0Uo0eP7t12+vTpKBQKMWrUqKhUKn1+djblcjmampqiu7s7GhsbBz45cMHZs2dPzJkzJzo6OmL27Nn1HgdIdL7375pWLO69997Yu3dvn21PPPFETJs2LV544YVzRgUAcHGrKSwaGhpi5syZfbaNHz8+JkyY8JftAMClxzdvAgBpBvTnpn+2ffv2hDEAgIuBFQsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAIE1NYbFu3bqYNWtWNDY2RmNjY8ydOze2bt06VLMBACNMTWExadKkeO2112L37t2xe/fuuOeee+LBBx+Mffv2DdV8AMAIMqaWnRcvXtzn86uvvhrr1q2LnTt3xowZM1IHAwBGnprC4s9Onz4dH330UZw4cSLmzp3b736VSiUqlUrv53K5PNBLAkPg5MmT0dnZmXKu/fv39/l3sKZNmxbjxo1LORcwPGoOi71798bcuXPjt99+iyuuuCI2b94c06dP73f/9vb2WL169aCGBIZOZ2dnzJkzJ/WcbW1tKefp6OiI2bNnp5wLGB6FarVareWA33//Pb7//vv49ddfY9OmTfHOO+/Ejh07+o2Ls61YlEql6O7ujsbGxsFNDwxa5orFqVOn4siRI9HS0hJjx44d9PmsWMCFo1wuR1NT0znv3zWHxT9bsGBBTJkyJd56663UwQCAC8f53r8H/T0W1Wq1z4oEAHDpqukZi5UrV8bChQujVCpFT09PbNy4MbZv3x7btm0bqvkAgBGkprA4duxYPPbYY/HTTz9FU1NTzJo1K7Zt2xb33XffUM0HAIwgNYXFu+++O1RzAAAXAe8KAQDSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADS1PTNmxn+eJlquVwe7ksDAAP0x337XC9FH/aw6OnpiYiIUqk03JcGAAapp6cnmpqa+v15oXqu9Eh25syZ6OrqioaGhigUCsN5aWCIlcvlKJVKcfTo0WhsbKz3OECiarUaPT090dzcHKNG9f8kxbCHBXDxKpfL0dTUFN3d3cICLlEe3gQA0ggLACCNsADSFIvFePnll6NYLNZ7FKBOPGMBAKSxYgEApBEWAEAaYQEApBEWAEAaYQEM2meffRaLFy+O5ubmKBQKsWXLlnqPBNSJsAAG7cSJE3HrrbfGm2++We9RgDob9peQARefhQsXxsKFC+s9BnABsGIBAKQRFgBAGmEBAKQRFgBAGmEBAKTxVyHAoB0/fjwOHTrU+/nw4cPx9ddfx9VXXx033HBDHScDhpu3mwKDtn379pg/f/5fti9dujTef//94R8IqBthAQCk8YwFAJBGWAAAaYQFAJBGWAAAaYQFAJBGWAAAaYQFAJBGWAAAaYQFAJBGWAAAaYQFAJBGWAAAaf4PMLHRcNLeq7QAAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "#Boxplot\n", + "\n", + "# your code here\n", + "sorted_rolls = dice_rolls['Number'].sort_values()\n", + "\n", + "plt.yticks([1,2,3,4,5,6]) #add all values for the plot\n", + "\n", + "plt.boxplot(sorted_rolls)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Line plot:\n", + "It is often used to visualize the trend or pattern in data over a continuous or ordered variable, such as time.\n", + "\n", + "Boxplot (more useful for data summary and comparisons):\n", + "used to visualize the distribution and summary statistics of a dataset.\n", + "useful for comparing the distribution of data between different categories or groups and for identifying the presence of outliers.\n", + "\n" + ] + }, + { + "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": 64, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Define the bin edges to center the bars between integers\n", + "bin_edges = [i - 0.5 for i in range(1, 8)] # Centered between 1 and 6\n", + "\n", + "# Create the histogram with centered columns\n", + "hist_values, bin_edges, _ = plt.hist(dice, bins=bin_edges, rwidth=0.8)\n", + "\n", + "# Calculate the median\n", + "median = np.median(dice)\n", + "\n", + "# Set the y-axis ticks with a step of 1, considering the maximum count in the histogram\n", + "plt.yticks(range(1, int(max(hist_values)) + 1))\n", + "\n", + "plt.xlabel(\"Number\")\n", + "plt.ylabel(\"Frequency\")\n", + "plt.title(\"Histogram of 'Number' Values\")\n", + "\n", + "# Display the median as text on the plot\n", + "plt.text(median, 1, f\"Median: {median}\", ha='center', va='bottom', fontsize=12)\n", + "\n", + "plt.show()\n", + "\n", + "#The [0] is used to access the first element of the return value from plt.hist. \n", + "#The plt.hist function returns a tuple of values, and we're interested in the first element of that tuple, \n", + "#which contains the frequency counts of the histogram.\n", + "\n", + "#plt.hist returns tuples containing 3 elements :\n", + "\n", + "#The histogram values (frequency counts in each bin).\n", + "#The bin edges.\n", + "#The patches (the individual bars in the histogram).\n" + ] + }, + { + "cell_type": "code", + "execution_count": 65, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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N07OnX6zLgAAqBjZ2dkKDAy0/h6/ld9cuCm6FVWzZk3CDQAAd5nSTClhQjEAADAVwg0AADAVwg0AADAVwg0AADAVwg0AADAVwg0AADAVwg0AADAVwg0AADAVwg0AADAVwg0AADAVp4abhQsXqlWrVtavQoiIiNCGDRtuOWbbtm1q3769PDw8dO+992rRokUVVC0AALgbODXcBAQEaMaMGUpNTVVqaqoefvhh9e7dW4cOHSqx/8mTJxUbG6vOnTtr7969mjRpksaMGaPk5OQKrhwAAFRWFsMwDGcX8Ut16tTR7NmzNWzYsGLb/v73v2vt2rU6fPiwtS0uLk779+/Xjh07SrX/7OxseXt76/Lly3xxJgAAd4my/P6uNHNuCgoK9M477+jatWuKiIgosc+OHTsUExNj09a9e3elpqYqLy+vIsoEAACVnIuzCzh48KAiIiJ0/fp11ahRQ6tXr1bz5s1L7JuVlSVfX1+bNl9fX+Xn5+vChQvy8/MrNiYnJ0c5OTnW9ezsbMceAAAAqFScHm5CQ0O1b98+Xbp0ScnJyRo0aJC2bdt204BjsVhs1ovuqv26vUhiYqKmTp3q2KKBChb87Dpnl3DXODXjEWeXAMDJnH5bys3NTY0aNVJ4eLgSExPVunVrvfLKKyX2bdCggbKysmzazp8/LxcXF9WtW7fEMRMnTtTly5etS0ZGhsOPAQAAVB5Ov3Lza4Zh2NxG+qWIiAh9+OGHNm2bNm1SeHi4XF1dSxzj7u4ud3d3h9cJAAAqJ6deuZk0aZI+++wznTp1SgcPHtRzzz2nlJQU9e/fX9KNqy4DBw609o+Li1NaWpri4+N1+PBhLV26VEuWLFFCQoKzDgEAAFQyTr1yc+7cOT311FPKzMyUt7e3WrVqpY0bN6pbt26SpMzMTKWnp1v7h4SEaP369Ro/frwWLFggf39/zZ8/X3379nXWIQAAgEqm0n3OTXnjc25wN2JCcekxoRgwp7vyc24AAAAcgXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMxanhJjExUffff7+8vLzk4+Ojxx57TEePHr3lmJSUFFkslmLLkSNHKqhqAABQmTk13Gzbtk0jR47Uzp07tXnzZuXn5ysmJkbXrl277dijR48qMzPTujRu3LgCKgYAAJWdizNffOPGjTbrSUlJ8vHx0e7du9WlS5dbjvXx8VGtWrXKsToAAHA3qlRzbi5fvixJqlOnzm37tm3bVn5+foqOjtbWrVtv2i8nJ0fZ2dk2CwAAMK9KE24Mw1B8fLw6deqkFi1a3LSfn5+fFi9erOTkZK1atUqhoaGKjo7W9u3bS+yfmJgob29v6xIYGFhehwAAACoBi2EYhrOLkKSRI0dq3bp1+vzzzxUQEFCmsb169ZLFYtHatWuLbcvJyVFOTo51PTs7W4GBgbp8+bJq1qx5x3UDFSH42XXOLuGucWrGI84uAUA5yM7Olre3d6l+f1eKKzejR4/W2rVrtXXr1jIHG0l68MEH9d1335W4zd3dXTVr1rRZAACAeTl1QrFhGBo9erRWr16tlJQUhYSE2LWfvXv3ys/Pz8HVAQCAu5FTw83IkSP11ltv6YMPPpCXl5eysrIkSd7e3vL09JQkTZw4UWfOnNHy5cslSfPmzVNwcLDCwsKUm5urFStWKDk5WcnJyU47DgAAUHk4NdwsXLhQkhQVFWXTnpSUpMGDB0uSMjMzlZ6ebt2Wm5urhIQEnTlzRp6engoLC9O6desUGxtbUWUDAIBKrNJMKK4oZZmQBFQWTCguPSYUA+Z0100oBgAAcBTCDQAAMBXCDQAAMBXCDQAAMBXCDQAAMBXCDQAAMBXCDQAAMBXCDQAAMBXCDQAAMBXCDQAAMBXCDQAAMBXCDQAAMBXCDQAAMBXCDQAAMBXCDQAAMBXCDQAAMBXCDQAAMBXCDQAAMBXCDQAAMBXCDQAAMBXCDQAAMBXCDQAAMBXCDQAAMBXCDQAAMBXCDQAAMBXCDQAAMBXCDQAAMBXCDQAAMBXCDQAAMBXCDQAAMBXCDQAAMBXCDQAAMBXCDQAAMBXCDQAAMBXCDQAAMBXCDQAAMBXCDQAAMBXCDQAAMBXCDQAAMBXCDQAAMBXCDQAAMBXCDQAAMBXCDQAAMBXCDQAAMBXCDQAAMBXCDQAAMBXCDQAAMBXCDQAAMBWnhpvExETdf//98vLyko+Pjx577DEdPXr0tuO2bdum9u3by8PDQ/fee68WLVpUAdUCAIC7gVPDzbZt2zRy5Ejt3LlTmzdvVn5+vmJiYnTt2rWbjjl58qRiY2PVuXNn7d27V5MmTdKYMWOUnJxcgZUDAIDKysWZL75x40ab9aSkJPn4+Gj37t3q0qVLiWMWLVqkhg0bat68eZKkZs2aKTU1VXPmzFHfvn3Lu2QAAFDJVao5N5cvX5Yk1alT56Z9duzYoZiYGJu27t27KzU1VXl5ecX65+TkKDs722YBAADm5dQrN79kGIbi4+PVqVMntWjR4qb9srKy5Ovra9Pm6+ur/Px8XbhwQX5+fjbbEhMTNXXq1HKpuSTBz66rsNe6252a8YizS4AJ8WewbPhzWHq8t0rP2e+rSnPlZtSoUTpw4IDefvvt2/a1WCw264ZhlNguSRMnTtTly5etS0ZGhmMKBgAAlVKluHIzevRorV27Vtu3b1dAQMAt+zZo0EBZWVk2befPn5eLi4vq1q1brL+7u7vc3d0dWi8AAKi8nHrlxjAMjRo1SqtWrdKWLVsUEhJy2zERERHavHmzTdumTZsUHh4uV1fX8ioVAADcJZwabkaOHKkVK1borbfekpeXl7KyspSVlaX//e9/1j4TJ07UwIEDretxcXFKS0tTfHy8Dh8+rKVLl2rJkiVKSEhwxiEAAIBKxqnhZuHChbp8+bKioqLk5+dnXVauXGntk5mZqfT0dOt6SEiI1q9fr5SUFLVp00YvvfSS5s+fz2PgAABAkpPn3BRNBL6VZcuWFWuLjIzUnj17yqEiAABwt6s0T0sBAAA4AuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYCuEGAACYil3h5uTJk46uAwAAwCHsCjeNGjVS165dtWLFCl2/ft3RNQEAANjNrnCzf/9+tW3bVhMmTFCDBg309NNPa9euXY6uDQAAoMzsCjctWrTQ3LlzdebMGSUlJSkrK0udOnVSWFiY5s6dqx9++MHRdQIAAJTKHU0odnFxUZ8+ffTuu+9q5syZOn78uBISEhQQEKCBAwcqMzPTUXUCAACUyh2Fm9TUVI0YMUJ+fn6aO3euEhISdPz4cW3ZskVnzpxR7969HVUnAABAqbjYM2ju3LlKSkrS0aNHFRsbq+XLlys2NlZVqtzISiEhIXrjjTfUtGlThxYLAABwO3aFm4ULF2ro0KEaMmSIGjRoUGKfhg0basmSJXdUHAAAQFnZFW6+++672/Zxc3PToEGD7Nk9AACA3eyac5OUlKT33nuvWPt7772nN998846LAgAAsJdd4WbGjBmqV69esXYfHx9Nnz79josCAACwl13hJi0tTSEhIcXag4KClJ6efsdFAQAA2MuucOPj46MDBw4Ua9+/f7/q1q17x0UBAADYy65w8+STT2rMmDHaunWrCgoKVFBQoC1btmjs2LF68sknHV0jAABAqdn1tNS0adOUlpam6Ohoubjc2EVhYaEGDhzInBsAAOBUdoUbNzc3rVy5Ui+99JL2798vT09PtWzZUkFBQY6uDwAAoEzsCjdFmjRpoiZNmjiqFgAAgDtmV7gpKCjQsmXL9Omnn+r8+fMqLCy02b5lyxaHFAcAAFBWdoWbsWPHatmyZXrkkUfUokULWSwWR9cFAABgF7vCzTvvvKN3331XsbGxjq4HAADgjtj1KLibm5saNWrk6FoAAADumF3hZsKECXrllVdkGIaj6wEAALgjdt2W+vzzz7V161Zt2LBBYWFhcnV1tdm+atUqhxQHAABQVnaFm1q1aqlPnz6OrgUAAOCO2RVukpKSHF0HAACAQ9g150aS8vPz9cknn+iNN97QlStXJElnz57V1atXHVYcAABAWdl15SYtLU2///3vlZ6erpycHHXr1k1eXl6aNWuWrl+/rkWLFjm6TgAAgFKx68rN2LFjFR4erp9++kmenp7W9j59+ujTTz91WHEAAABlZffTUl988YXc3Nxs2oOCgnTmzBmHFAYAAGAPu67cFBYWqqCgoFj76dOn5eXldcdFAQAA2MuucNOtWzfNmzfPum6xWHT16lVNnjyZr2QAAABOZddtqf/3//6funbtqubNm+v69ev685//rO+++0716tXT22+/7egaAQAASs2ucOPv7699+/bp7bff1p49e1RYWKhhw4apf//+NhOMAQAAKppd4UaSPD09NXToUA0dOtSR9QAAANwRu8LN8uXLb7l94MCBdhUDAABwp+wKN2PHjrVZz8vL088//yw3NzdVq1aNcAMAAJzGrqelfvrpJ5vl6tWrOnr0qDp16sSEYgAA4FR2f7fUrzVu3FgzZswodlXnVrZv365evXrJ399fFotFa9asuWX/lJQUWSyWYsuRI0fusHoAAGAWdk8oLknVqlV19uzZUve/du2aWrdurSFDhqhv376lHnf06FHVrFnTul6/fv0y1QkAAMzLrnCzdu1am3XDMJSZmanXXntNDz30UKn306NHD/Xo0aPMr+/j46NatWqVeRwAADA/u8LNY489ZrNusVhUv359Pfzww3r55ZcdUdcttW3bVtevX1fz5s31/PPPq2vXruX+mgAA4O5gV7gpLCx0dB2l4ufnp8WLF6t9+/bKycnRf/7zH0VHRyslJUVdunQpcUxOTo5ycnKs69nZ2RVVLgAAcAKHzrkpb6GhoQoNDbWuR0REKCMjQ3PmzLlpuElMTNTUqVMrqkQAAOBkdoWb+Pj4UvedO3euPS9Rag8++KBWrFhx0+0TJ060qTc7O1uBgYHlWhMAAHAeu8LN3r17tWfPHuXn51uvpBw7dkxVq1ZVu3btrP0sFotjqrxNLX5+fjfd7u7uLnd393KvAwAAVA52hZtevXrJy8tLb775pmrXri3pxgf7DRkyRJ07d9aECRNKtZ+rV6/q+++/t66fPHlS+/btU506ddSwYUNNnDhRZ86csX7dw7x58xQcHKywsDDl5uZqxYoVSk5OVnJysj2HAQAATMiucPPyyy9r06ZN1mAjSbVr19a0adMUExNT6nCTmppq86RT0e2jQYMGadmyZcrMzFR6erp1e25urhISEnTmzBl5enoqLCxM69atU2xsrD2HAQAATMiucJOdna1z584pLCzMpv38+fO6cuVKqfcTFRUlwzBuun3ZsmU2688884yeeeaZMtUKAAB+W+z6+oU+ffpoyJAhev/993X69GmdPn1a77//voYNG6bHH3/c0TUCAACUml1XbhYtWqSEhAQNGDBAeXl5N3bk4qJhw4Zp9uzZDi0QAACgLOwKN9WqVdPrr7+u2bNn6/jx4zIMQ40aNVL16tUdXR8AAECZ3NG3gmdmZiozM1NNmjRR9erVbzl/BgAAoCLYFW4uXryo6OhoNWnSRLGxscrMzJQkDR8+vNRPSgEAAJQHu8LN+PHj5erqqvT0dFWrVs3a3q9fP23cuNFhxQEAAJSVXXNuNm3apI8//lgBAQE27Y0bN1ZaWppDCgMAALCHXVdurl27ZnPFpsiFCxf4qgMAAOBUdoWbLl26WL8SQbrxHVKFhYWaPXu2zScOAwAAVDS7bkvNnj1bUVFRSk1NVW5urp555hkdOnRIP/74o7744gtH1wgAAFBqdl25ad68uQ4cOKAHHnhA3bp107Vr1/T4449r7969uu+++xxdIwAAQKmV+cpNXl6eYmJi9MYbb2jq1KnlURMAAIDdynzlxtXVVd98840sFkt51AMAAHBH7LotNXDgQC1ZssTRtQAAANwxuyYU5+bm6t///rc2b96s8PDwYt8pNXfuXIcUBwAAUFZlCjcnTpxQcHCwvvnmG7Vr106SdOzYMZs+3K4CAADOVKZw07hxY2VmZmrr1q2Sbnzdwvz58+Xr61suxQEAAJRVmebc/Ppbvzds2KBr1645tCAAAIA7YdeE4iK/DjsAAADOVqZwY7FYis2pYY4NAACoTMo058YwDA0ePNj65ZjXr19XXFxcsaelVq1a5bgKAQAAyqBM4WbQoEE26wMGDHBoMQAAAHeqTOEmKSmpvOoAAABwiDuaUAwAAFDZEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpODXcbN++Xb169ZK/v78sFovWrFlz2zHbtm1T+/bt5eHhoXvvvVeLFi0q/0IBAMBdw6nh5tq1a2rdurVee+21UvU/efKkYmNj1blzZ+3du1eTJk3SmDFjlJycXM6VAgCAu4WLM1+8R48e6tGjR6n7L1q0SA0bNtS8efMkSc2aNVNqaqrmzJmjvn37llOVAADgbnJXzbnZsWOHYmJibNq6d++u1NRU5eXllTgmJydH2dnZNgsAADAvp165KausrCz5+vratPn6+io/P18XLlyQn59fsTGJiYmaOnVqRZWIMgh+dp2zSwAAmNBddeVGkiwWi826YRgltheZOHGiLl++bF0yMjLKvUYAAOA8d9WVmwYNGigrK8um7fz583JxcVHdunVLHOPu7i53d/eKKA8AAFQCd9WVm4iICG3evNmmbdOmTQoPD5erq6uTqgIAAJWJU8PN1atXtW/fPu3bt0/SjUe99+3bp/T0dEk3bikNHDjQ2j8uLk5paWmKj4/X4cOHtXTpUi1ZskQJCQnOKB8AAFRCTr0tlZqaqq5du1rX4+PjJUmDBg3SsmXLlJmZaQ06khQSEqL169dr/PjxWrBggfz9/TV//nweAwcAAFZODTdRUVHWCcElWbZsWbG2yMhI7dmzpxyrAgAAd7O7as4NAADA7RBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqTg93Lz++usKCQmRh4eH2rdvr88+++ymfVNSUmSxWIotR44cqcCKAQBAZebUcLNy5UqNGzdOzz33nPbu3avOnTurR48eSk9Pv+W4o0ePKjMz07o0bty4gioGAACVnVPDzdy5czVs2DANHz5czZo107x58xQYGKiFCxfecpyPj48aNGhgXapWrVpBFQMAgMrOaeEmNzdXu3fvVkxMjE17TEyMvvzyy1uObdu2rfz8/BQdHa2tW7fesm9OTo6ys7NtFgAAYF5OCzcXLlxQQUGBfH19bdp9fX2VlZVV4hg/Pz8tXrxYycnJWrVqlUJDQxUdHa3t27ff9HUSExPl7e1tXQIDAx16HAAAoHJxcXYBFovFZt0wjGJtRUJDQxUaGmpdj4iIUEZGhubMmaMuXbqUOGbixImKj4+3rmdnZxNwAAAwMaddualXr56qVq1a7CrN+fPni13NuZUHH3xQ33333U23u7u7q2bNmjYLAAAwL6eFGzc3N7Vv316bN2+2ad+8ebM6duxY6v3s3btXfn5+ji4PAADcpZx6Wyo+Pl5PPfWUwsPDFRERocWLFys9PV1xcXGSbtxSOnPmjJYvXy5JmjdvnoKDgxUWFqbc3FytWLFCycnJSk5OduZhAACASsSp4aZfv366ePGiXnzxRWVmZqpFixZav369goKCJEmZmZk2n3mTm5urhIQEnTlzRp6engoLC9O6desUGxvrrEMAAACVjMUwDMPZRVSk7OxseXt76/Lly+Uy/yb42XUO3ycAlJdTMx5xdgl3Df5+L73yeF+V5fe3079+AQAAwJEINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFScHm5ef/11hYSEyMPDQ+3bt9dnn312y/7btm1T+/bt5eHhoXvvvVeLFi2qoEoBAMDdwKnhZuXKlRo3bpyee+457d27V507d1aPHj2Unp5eYv+TJ08qNjZWnTt31t69ezVp0iSNGTNGycnJFVw5AACorJwabubOnathw4Zp+PDhatasmebNm6fAwEAtXLiwxP6LFi1Sw4YNNW/ePDVr1kzDhw/X0KFDNWfOnAquHAAAVFZOCze5ubnavXu3YmJibNpjYmL05Zdfljhmx44dxfp3795dqampysvLK7daAQDA3cPFWS984cIFFRQUyNfX16bd19dXWVlZJY7JysoqsX9+fr4uXLggPz+/YmNycnKUk5NjXb98+bIkKTs7+04PoUSFOT+Xy34BoDyU19+FZsTf76VXHu+ron0ahnHbvk4LN0UsFovNumEYxdpu17+k9iKJiYmaOnVqsfbAwMCylgoApuM9z9kVwIzK83115coVeXt737KP08JNvXr1VLVq1WJXac6fP1/s6kyRBg0alNjfxcVFdevWLXHMxIkTFR8fb10vLCzUjz/+qLp1694yRNkjOztb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FJvt3377rWJjY1WjRg35+vrqqaee0oULF6zbo6KiNGrUKMXHx6tevXrq1q2b3ecCQPkh3ACoMFWrVtX06dP16quv6vTp03bvZ8uWLTp79qy2b9+uuXPnasqUKerZs6dq166tr776SnFxcYqLi1NGRobNuL/97W+aMGGC9u7dq44dO+rRRx/VxYsXJUmZmZmKjIxUmzZtlJqaqo0bN+rcuXN64oknbPbx5ptvysXFRV988YXeeOMNu48BQPkh3ACoUH369FGbNm00efJku/dRp04dzZ8/X6GhoRo6dKhCQ0P1888/a9KkSWrcuLEmTpwoNzc3ffHFFzbjRo0apb59+6pZs2ZauHChvL29tWTJEknSwoUL1a5dO02fPl1NmzZV27ZttXTpUm3dulXHjh2z7qNRo0aaNWuWQkND1bRpU7uPAUD5IdwAqHAzZ87Um2++qW+//dau8WFhYapS5f/++vL19VXLli2t61WrVlXdunV1/vx5m3ERERHW/3dxcVF4eLgOHz4sSdq9e7e2bt2qGjVqWJei8HL8+HHruPDwcLtqBlBxXJxdAIDfni5duqh79+6aNGmSBg8ebG2vUqWKDMOw6ZuXl1dsvKurq826xWIpsa2wsPC2tRQ9qVVYWKhevXpp5syZxfr4+flZ/7969eq33ScA5yLcAHCKGTNmqE2bNmrSpIm1rX79+srKypJhGNbQ4cjPptm5c6e6dOkiScrPz9fu3bs1atQoSVK7du2UnJys4OBgubjwVyNwN+O2FACnaNmypfr3769XX33V2hYVFaUffvhBs2bN0vHjx7VgwQJt2LDBYa+5YMECrV69WkeOHNHIkSP1008/aejQoZKkkSNH6scff9Sf/vQn7dq1SydOnNCmTZs0dOhQFRQUOKwGAOWPcAPAaV566SWb21DNmjXT66+/rgULFqh169batWuXEhISHPZ6M2bM0MyZM9W6dWt99tln+uCDD1SvXj1Jkr+/v7744gsVFBSoe/fuatGihcaOHStvb2+b+T0AKj+L8esb3AAAAHcx/jkCAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABM5f8Ds2cQesrCHQYAAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "#Class' method\n", + "\n", + "plt.hist(dice, bins = 6, range=(1,6))\n", + "\n", + "plt.xlabel(\"Number\")\n", + "plt.ylabel(\"Frequency\")\n", + "plt.title(\"Histogram of 'Number' Values\")\n", + "\n", + "plt.show()#here plots the frequency distribution directly" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Create frequency distribution " + ] + }, + { + "cell_type": "code", + "execution_count": 66, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Dice number Frequency\n", + "0 1 2\n", + "1 2 1\n", + "2 3 3\n", + "3 4 2\n", + "4 6 2\n" + ] + } + ], + "source": [ + "#https://stackoverflow.com/questions/41551658/how-to-create-a-frequency-distribution-table-on-given-data-with-python-in-jupyte\n", + "\n", + "#Calculate the freq dist and sort by dice number (index)\n", + "frequency_distribution = pd.Series(dice).value_counts().sort_index().reset_index()\n", + "\n", + "#Frequency dist = combien de fois le nombre a été mentionné dans la DF\n", + "#Dans la 1er DF : les index etaient les dice numbers\n", + "#Dans la frequency dist on rajoute une colonne pour les dice numbers\n", + "#sort_index = on trie les valeurs\n", + "#reset_index = pour avoir le dice number comme colonne et pas comme index\n", + "\n", + "frequency_distribution.columns = ['Dice number', 'Frequency']\n", + "\n", + "print(frequency_distribution)" + ] + }, + { + "cell_type": "code", + "execution_count": 67, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAioAAAHFCAYAAADcytJ5AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA7aklEQVR4nO3deVxUZf//8feoMCwCCoqiIhqmuYQbLbiTaYqRS6ZWJm51d7vkWt1637/U8haX9Ku5Vy5ZrplbmZp7eqelmfudmrmlJiYGioEC5/cHMbcjqAwNzkFez8djHnrOuc45nzkzMG+uc50zFsMwDAEAAJhQIVcXAAAAcDsEFQAAYFoEFQAAYFoEFQAAYFoEFQAAYFoEFQAAYFoEFQAAYFoEFQAAYFoEFQAAYFoEFTjd3LlzZbFYsn0MHjzY1eXdV2491h4eHipdurQiIyMVGxuruLi4LOsMHz5cFovFof1cu3ZNw4cP15YtWxxaL7t9VahQQU8//bRD27mbBQsWaOLEidkus1gsGj58uFP352wbN25UeHi4vL29ZbFYtGLFimzbnTx50u71dnNzU0BAgB555BENGDBAhw4dyrLOli1bZLFYHH7t/qoKFSrY1ert7a06depoypQpyu0N0StUqKCuXbvapjOPx9y5c51TNEypiKsLwP1rzpw5euihh+zmlSlTxkXV3N8yj/WNGzcUFxen7du3a8yYMXr33Xe1ePFiPfnkk7a2PXv2VIsWLRza/rVr1zRixAhJUpMmTXK8Xm72lRsLFizQwYMH1b9//yzLduzYoXLlyuV5DbllGIY6dOigypUra9WqVfL29laVKlXuuE7fvn31wgsvKD09Xb///rt++OEHzZ49W5MnT1ZsbKxef/11W9s6depox44dqlatWl4/lSzq16+vd999V5J07tw5TZgwQX379lViYqKGDh16z+tB/kRQQZ6pUaOGwsPDc9T2xo0bslgsKlKEt2Ru3Hqsn332WQ0YMEANGjRQu3btdOzYMZUqVUqSVK5cuTz/4L527Zq8vLzuyb7u5vHHH3fp/u/m3Llzio+PV9u2bdW0adMcrVO+fHm75xUVFaWBAweqXbt2euONN1SjRg21bNlSkuTr6+uyY1CsWDG7fT/55JMqX768Zs6cSVBBjnHqB/dcZlf0xx9/rEGDBqls2bKyWq366aefJEkbNmxQ06ZN5evrKy8vL9WvX18bN27Msp3Vq1erVq1aslqtqlixot59990spxru1DWc3SmBY8eO6YUXXlBgYKCsVquqVq2qqVOnZlv/woUL9c9//lNlypSRr6+vnnzySR05ciTLftauXaumTZvKz89PXl5eqlq1qmJjYyVJH3/8sSwWi3bs2JFlvbfffltubm46d+7cXY9pdsqXL6/x48frypUrmjlzpm1+dqdjNm3apCZNmiggIECenp4qX768nn32WV27dk0nT55UyZIlJUkjRoywdeVndsFnbm/Pnj1q3769ihcvrtDQ0NvuK9Py5csVFhYmDw8PPfDAA3rvvffslmee1jp58qTd/FtPZTRp0kSrV6/WqVOn7E41ZMrudT548KBat26t4sWLy8PDQ7Vq1dJHH32U7X5y+jpnZ/v27WratKl8fHzk5eWlevXqafXq1bblw4cPtwW5N998UxaLRRUqVMjRtm/l6empWbNmyc3NTePGjcvyPG499fPtt98qOjpaAQEB8vDwUGhoaJYeqZz8PDjC19dXlStX1oULF+zmx8fHq1evXipbtqzc3d31wAMP6J///KdSUlIc3sfFixf1yiuvKDg4WFarVSVLllT9+vW1YcOGXNcN1+LPV+SZtLQ0paam2s27ucdkyJAhioiI0IwZM1SoUCEFBgbqk08+UZcuXdS6dWt99NFHcnNz08yZM/XUU09p3bp1tr84N27cqNatWysiIkKLFi1SWlqaxo4dm+UXoCMOHz6sevXq2T7gS5curXXr1um1117Tb7/9pmHDhtm1Hzp0qOrXr68PP/xQiYmJevPNNxUdHa3//ve/Kly4sCRp1qxZevnll9W4cWPNmDFDgYGBOnr0qA4ePChJ6tixo9544w1NnTpVERERtm2npqZq5syZatu27V86XRYVFaXChQvr66+/vm2bkydPqlWrVmrYsKFmz56tYsWK6ezZs1q7dq2uX7+uoKAgrV27Vi1atFCPHj3Us2dPSbKFl0zt2rVTp06d9OqrryopKemOde3du1f9+/fX8OHDVbp0ac2fP1/9+vXT9evXHR7HNG3aNL3yyis6fvy4li9fftf2R44cUb169RQYGKj33ntPAQEB+uSTT9S1a1dduHBBb7zxhl37nLzO2dm6dauaNWumsLAwzZo1S1arVdOmTVN0dLQWLlyojh07qmfPnqpZs6batWtnO51jtVodev43K1OmjOrWratvvvlGqampt+2hXLdunaKjo1W1alVNmDBB5cuX18mTJ/XVV1/Z2jj685ATqampOnPmjCpXrmybl5ycrMjISB0/flwjRoxQWFiYtm3bptjYWO3du9cu2OXESy+9pD179ujf//63KleurN9//1179uzRpUuXHK4XJmEATjZnzhxDUraPGzduGJs3bzYkGY0aNbJbLykpyfD39zeio6Pt5qelpRk1a9Y0Hn30Udu8xx57zChTpozxxx9/2OYlJiYa/v7+xs1v6xMnThiSjDlz5mSpU5IxbNgw2/RTTz1llCtXzkhISLBr16dPH8PDw8OIj483DMOw1R8VFWXXbsmSJYYkY8eOHYZhGMaVK1cMX19fo0GDBkZ6evptj9ewYcMMd3d348KFC7Z5ixcvNiQZW7duve16hvG/Y71r167btilVqpRRtWpVu/3dfIyWLl1qSDL27t17221cvHgxy/G6dXtvvfXWbZfdLCQkxLBYLFn216xZM8PX19dISkqye24nTpywa5d5/Ddv3myb16pVKyMkJCTb2m+tu1OnTobVajVOnz5t165ly5aGl5eX8fvvv9vt526v8+08/vjjRmBgoHHlyhXbvNTUVKNGjRpGuXLlbO+JzPfouHHj7ri9nLbt2LGjIcn2fsrueIWGhhqhoaF2Pz+3yunPw+2EhIQYUVFRxo0bN4wbN24Yp06dMl5++WXDzc3N+OKLL2ztZsyYYUgylixZYrf+mDFjDEnGV199ZbfNmJiYLMfj5p/vokWLGv37979jbchfOPWDPDNv3jzt2rXL7nHzX3jPPvusXftvvvlG8fHxiomJUWpqqu2Rnp6uFi1aaNeuXUpKSlJSUpJ27dqldu3aycPDw7a+j4+PoqOjc1VrcnKyNm7cqLZt28rLy8tu/1FRUUpOTtbOnTvt1nnmmWfspsPCwiRJp06dsj2fxMRE9erV645X2fz973+XJH3wwQe2eVOmTNHDDz+sRo0a5er53My4yxUWtWrVkru7u1555RV99NFH+vnnn3O1n1tfzzupXr26atasaTfvhRdeUGJiovbs2ZOr/efUpk2b1LRpUwUHB9vN79q1q65du5blNNzdXufsJCUl6dtvv1X79u1VtGhR2/zChQvrpZde0i+//JLj00eOutvrffToUR0/flw9evSw+/m5WW5+HrLz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9NJLL+n8+fPy8/NTWFiY1q5dq2bNmrmyLAAAYBIuDSqzZs1y5e4BAIDJufyqHwAAgNshqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANNyaVCJjY3VI488Ih8fHwUGBqpNmzY6cuSIK0sCAAAm4tKgsnXrVvXu3Vs7d+7U+vXrlZqaqubNmyspKcmVZQEAAJOwGIZhuLqITBcvXlRgYKC2bt2qRo0a3bV9YmKi/Pz8lJCQIF9f33tQIZBHLBZXV+Aa5vn1A+AecuTzu8g9qilHEhISJEn+/v7ZLk9JSVFKSoptOjEx8Z7UBQAAXMM0QcUwDA0cOFANGjRQjRo1sm0TGxurESNG3LOa+CMXMDfLli2uLsEljCZNXF1CgbPFssXVJbhM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XJySk5PVrFkzu3WuX7+u2rVr280LDw+/Y21//PGHpIxelFsNGjRIK1eu1OTJk7VmzRqVKFEiSxtPT09du3btjvsAkIGgAtzH/vvf/6pixYrZLvP09Lzjuunp6RoxYoTatWuXZVl2H9CZ3Nzc7KYtFovd1UcWi0WGYdi1uXkMS3bbyQxbt87L6WW+N7ddvXq1ypYta7f81gHG3t7ed9xeQECALBaLLl++nGVZXFycjhw5osKFC+vYsWNq0aJFljbx8fEqWbJkjmoHCjqCCnCf2rRpkw4cOKABAwZkuzwsLEwffvih4uPjs+1VqVOnjo4cOaJKlSo5ta6SJUvq/Pnztuljx445rXdh3759+uOPP2whbOfOnSpatKjKlSun4sWLy2q16vTp03bjUXLD3d1d1apV0+HDh7PcR6V79+6qUaOGXn75ZfXo0UNNmzZVtWrVbMuTk5N1/PjxLL04ALJHUAHuAykpKfr111+VlpamCxcuaO3atYqNjdXTTz+tLl26ZLvO888/r1GjRqlNmzaKjY1VUFCQfvjhB5UpU0YRERF666239PTTTys4OFjPPfecChUqpP379+vAgQMaOXJkrmt94oknNGXKFD3++ONKT0/Xm2++maUXJreuX7+uHj166F//+pdOnTqlYcOGqU+fPipUqJB8fHw0ePBgDRgwQOnp6WrQoIESExP1zTffqGjRooqJiXFoX0899ZS2b9+u/v372+ZNnTpVO3bs0P79+xUcHKw1a9boxRdf1Lfffit3d3dJGeHJarUqIiLCKc8ZuN9xeTJwH1i7dq2CgoJUoUIFtWjRQps3b9Z7772nlStX2o0XuZm7u7u++uorBQYGKioqSg8//LBGjx5ta//UU0/piy++0Pr16/XII4/o8ccf14QJExQSEvKXah0/fryCg4PVqFEjvfDCCxo8ePBtx7s4qmnTpnrwwQfVqFEjdejQQdHR0Ro+fLht+TvvvKO33npLsbGxqlq1qp566il9/vnntz09dicvv/yyvvzySyUkJEiSfvzxR73++uuaNm2agoODJWUEl99//93upnALFy7Uiy++6LTnDNzvLMatJ4sBADnSoUMH1a5dW0OGDMlR+4sXL+qhhx7S7t27cxWOgIKIHhUAyKVx48apaNGiOW5/4sQJTZs2jZACOIAeFQAAYFr0qAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANP6/3SCrnQtZilPAAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Set custom bar colors\n", + "bar_colors = ['b', 'g', 'r', 'c', 'm', 'y']\n", + "\n", + "# Create the bar plot with step size 1 for the y-axis and custom bar colors\n", + "plt.bar(frequency_distribution['Dice number'], frequency_distribution['Frequency'], color=bar_colors)\n", + "\n", + "# Calculate the median\n", + "median = np.median(dice)\n", + "\n", + "plt.xlabel('Dice number (x)')\n", + "plt.ylabel('Frequency (y)')\n", + "plt.title('Frequency Distribution of Dice Rolls')\n", + "\n", + "# Set x-axis ticks with a step size of 1\n", + "plt.xticks(frequency_distribution['Dice number'])\n", + "\n", + "# Set y-axis ticks with a step size of 1\n", + "plt.yticks(range(0, int(max(frequency_distribution['Frequency'])) + 1))\n", + "\n", + "#other way to set scale\n", + "#plt.yticks(range(min(sorted_rolls), max(sorted_rolls) + 1))\n", + "#plt.xticks(range(min(sorted_rolls), max(sorted_rolls) + 1))\n", + "\n", + "# Display the median as text on the plot\n", + "plt.text(median, 1, f\"Median: {median}\", ha='center', va='bottom', fontsize=12)\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Note :\n", + "Frequency distribution is useful to reduce the load time when working with big data set.\n", + "Goal data science = diminuer l'espace des données." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "What is the relation between the frequency distribution plot and the linear plot ? \n", + "\n", + "Both represent the dice distribution\n", + "Both provide info on the shape and tendency of the distribution (We can see that the median is the same on both graphs)\n", + "Show the same percentiles\n", + "Possible to see the interval of the data (example here : no frequency for number 1 and 2)\n", + "\n", + "In plot above : normal distribution, data points pretty equally spreaded. Median is 3, Mode is 3\n", + "The shape of the histogram can be described as right-skewed or positively skewed.\n", + "\n", + "Note : Frequency distribution graph is \"easier to read\" and should be used for data presentation to the stakeholders." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Create superposition to see normal distribution" + ] + }, + { + "cell_type": "code", + "execution_count": 68, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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/jt27dqF//77D8OGDcObN29UY3KqVasGExMTTJo0CQ8ePMDmzZvTDW718PBASEgIgoKC8Pr16wyvWnTv3h1GRkbo3bs3bt68iYCAAIwYMQI9e/ZUXfaRiqSJyurVqxEaGorExERERETg+PHjTFKIiLTM9OnT011+qFSpErZt24atW7eibNmymDx5Mn799dccm4nzMXt7e6xbtw5///03SpcujVmzZmHu3LnZeq7JkyfD2dkZxYsXR8+ePREdHY0TJ05gwoQJmR6TkpKCYcOGoVSpUmjevDlKlCiBpUuXAgBcXFwwbdo0/Pjjj3B0dEw3iyYrZs2aBX9/f3h5eeHs2bPYs2cP7OzsAIiDdTdu3IiDBw+iXLly2LJlC6ZOnap2fMeOHdG8eXM0aNAA9vb22LJlS7pzmJiY4MiRI4iKikKVKlXQqVMnNGrUCEuWLNE43pymEDK6aKglYmJiYGlpiejoaFhYWEgdDlH2cdZPgZKQkICQkBAUKVIERkZGUodDlCs+9z7X5PNb8joqRERERJlhokJERESyxUSFiIiIZIuJChEREckWExUiIolo8VwGoi/Kqfc3ExUiojymrO4ZHx8vcSREuUf5/v60mq2mZFdCn4gov9PV1YWVlZVqrRoTE5NMy5cTaRtBEBAfH4+IiAhYWVl9dSViJipERBJQrmT78cJ6RPmJlZXVZ1dsziomKkREElAoFHB2doaDg0O2FpEjkjN9ff0cW9OJiQoRkYR0dXVzfJE+ovyEg2mJiIhItpioEBERkWwxUSEiIiLZYqJCREREssVEhYiIiGSLiQoRERHJFhMVIiIiki0mKkRERCRbTFSIiIhItpioEBERkWwxUSEiIiLZYqJCREREssVEhYiIiGSLiQoRERHJFhMVIiIiki0mKkRERCRbTFSIiIhItpioEBERkWwxUSEiIiLZYqJCREREssVEhYiIiGSLiQoRERHJFhMVIiIiki0mKkRERCRbTFSIiIhItpioEBERkWwxUSEiIiLZYqJCREREssVEhYiIiGSLiQoRERHJFhMVIiIiki0mKkRERCRbTFSIiIhItpioEBERkWwxUSEiIiLZYqJCREREssVEhYiIiGSLiQoRERHJFhMVIiIiki0mKkRERCRbTFSIiIhItpioEBERkWwxUSEiIiLZYqJCREREssVEhYiIiGSLiQoRERHJFhMV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Ftwvj4QiJVHiyLQfExUiIqIckGTiipDqy5GsbwkAMIsMROGrPwCpSRJHpt2YqBAREeWQRPPiaqX2LV6eguv1KYCQKnFk2ouJChERUQ56b10Oj6ssRKqOPgDA+tl+ON+azXWBsomJChERUQ6Ls6uOJxVnQ/jfx6xd6GY43l3EZCUbmKgQERHlghjnRnjqNU3VdniwGg73l0sYkXZiokJERJRL3rq1xbOyk1Rtx3vLYP9gtYQRaR8mKkRERLkoyqMrnpf+QdV2+m8hbB/9KWFE2oWJChERUS6LLNoT4SVHqdqFbs+BTehW6QLSIkxUiIiI8sDr4v3w0nOoqu1ycyasH2+XMCLtwESFiIgoj0R8MxgRxQeo2i7B02H1ZI+EEckfExUiIqK8olDgZYkReFW0l9iEANfrU2D1dK/EgckXExUiIqK8pFDgRamxeO3RTWwiFa5Bv8A6bJfEgckTExUiIqK8plAgvMwEvPb4VmxCgOuNKRyzkgEmKkRERFJQKBBe5ke8LtJDtck1+FfOBvoEExUiIiKpKBQIL/0DXhXrq9rkcnMm66x8hIkKERGRlBQKvCg5ChHFB6o2Fbo9B3YP10oYlHwwUSEiIpKaQoGXJYbjped3qk3Od/4P9vf/kDAoeWCiQkREJAcKBSI8v8OLEsNVm5zuLobjfwsL9KrLTFSIiIhk5NU3gxBearSq7fBgNZxv+QNCqoRRSYeJChERkcy8LtZXbdVl29AtMH4bLGFE0mGiQkREJENRHl3xxGs6BIUunpWfgvfWXlKHJAk9qQMgIiKijL11a4t4m0r4YOomdSiSYY8KERGRjBXkJAVgokJEREQyxkSFiIiIZIuJChEREckWExUiIiKSLSYqREREJFtMVIiIiEi2mKgQERGRbDFRISIiItliokJERESyxUSFiIiIZIuJChEREckWExUiIiKSLSYqREREJFtMVIiIiEi2mKgQERGRbDFRISIiItliokJERESyxUSFiIiIZIuJChEREckWExUiIiKSLSYqREREJFtMVIiIiEi2mKgQERGRbDFRISIiItliokJERESyxUSFiIiIZIuJChEREckWExUiIiKSLSYqREREJFtMVIiIiEi2mKgQERGRbDFRISIiItliokJERESyxUSFiIiIZIuJChEREckWExUiIiKSLSYqREREJFtMVIiIiEi2mKgQERGR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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import scipy.stats as stats\n", + "\n", + "# Set custom bar colors for the histogram\n", + "bar_colors = ['b', 'g', 'r', 'c', 'm', 'y']\n", + "\n", + "# Create the bar plot with step size 1 for the y-axis and custom bar colors\n", + "plt.bar(frequency_distribution['Dice number'], frequency_distribution['Frequency'], color=bar_colors, alpha=0.7)\n", + "\n", + "# Calculate the median\n", + "median = np.median(dice)\n", + "\n", + "plt.xlabel('Dice number (x)')\n", + "plt.ylabel('Frequency (y)')\n", + "plt.title('Frequency Distribution of Dice Rolls')\n", + "\n", + "# Set x-axis ticks with a step size of 1\n", + "plt.xticks(frequency_distribution['Dice number'])\n", + "\n", + "# Set y-axis ticks with a step size of 1\n", + "plt.yticks(range(0, int(max(frequency_distribution['Frequency'])) + 1))\n", + "\n", + "# Display the median as text on the plot\n", + "plt.text(median, 1, f\"Median: {median}\", ha='center', va='bottom', fontsize=12)\n", + "\n", + "# Create a normal distribution curve using mean and standard deviation of the data\n", + "mean = np.mean(dice)\n", + "std_dev = np.std(dice)\n", + "x = np.linspace(min(dice), max(dice), 1000)\n", + "y = stats.norm.pdf(x, mean, std_dev) * len(dice) # Scale the curve to match the data count\n", + "\n", + "# Plot the normal distribution curve\n", + "plt.plot(x, y, 'r-', linewidth=2, label='Normal Distribution')\n", + "\n", + "# Add a legend\n", + "plt.legend()\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Jesus' observation : \n", + "\n", + "For the LINEAR PLOT, we have dice values of the dice in the y axis. \n", + "For the histogramm (frequency distribution), we have the dice values in the x axis.\n", + "\n", + "--\n", + "\n", + "The difference in the orientation of the axes between a linear plot (line plot) and a histogram (frequency distribution) arises from their distinct purposes and the nature of the data they are visualizing.\n", + "\n", + "Linear Plot (Line Plot):\n", + "\n", + "In a linear plot, you typically have data points or values on both the x-axis and y-axis.\n", + "The x-axis usually represents an independent variable or a continuous range of values.\n", + "The y-axis represents the dependent variable, which is typically a response or outcome based on the values of the independent variable.\n", + "Linear plots are used to show how the dependent variable changes as a function of the independent variable. They are suitable for visualizing relationships, trends, or patterns in data.\n", + "\n", + "Histogram (Frequency Distribution):\n", + "\n", + "In a histogram, the x-axis typically represents different categories or bins into which data is grouped. \n", + "These bins are used to categorize the data or to define intervals.\n", + "The y-axis of a histogram represents the frequency or count of data points that fall into each bin.\n", + "Histograms are used to show the distribution of data, specifically how data points are distributed across different categories or intervals. They help visualize the frequency of occurrence for different values or value ranges." + ] + }, + { + "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": 69, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3.3\n" + ] + } + ], + "source": [ + "# your code here\n", + "def calculate_mean(data):\n", + " mean = sum(data)/len(data)\n", + " return mean\n", + "\n", + "print(calculate_mean(dice))" + ] + }, + { + "cell_type": "code", + "execution_count": 70, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3.3\n" + ] + } + ], + "source": [ + "#Other method - More manual\n", + "\n", + "def mean(data):\n", + " \n", + " total_sum = 0\n", + " len_data = 0\n", + " \n", + " for value in data:\n", + " total_sum += value\n", + " len_data += 1\n", + "\n", + " mean = total_sum / len_data\n", + "\n", + " return mean\n", + "\n", + "print(mean(dice))" + ] + }, + { + "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": 72, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Dice number Frequency\n", + "0 1 2\n", + "1 2 1\n", + "2 3 3\n", + "3 4 2\n", + "4 6 2\n", + "Mean is 3.3\n" + ] + } + ], + "source": [ + "# your code here\n", + "frequency_distribution = dice.value_counts().sort_index().reset_index() #chaining method\n", + "frequency_distribution.columns = ['Dice number', 'Frequency']\n", + "print(frequency_distribution)\n", + "\n", + "#Here we need to adapt the former mean function. \n", + "#We wanna find the mean of the total numbers for the frequency tab (10)\n", + "#we do not wanna calculate the frequency values (5)\n", + "#sum_values = frequency_distribution['Frequency']*frequency_distribution['Dice number']\n", + "\n", + "#Calculate mean by calling function\n", + "\n", + "def mean_freq_dist(tableau):\n", + " \n", + " total_sum = 0\n", + " len_data = 0 # equals to total count\n", + " \n", + " for index, row in tableau.iterrows():\n", + " value = row['Dice number']\n", + " frequency = row['Frequency']\n", + " total_sum += value * frequency #total sum = valeur * tableau['Frequency']\n", + " len_data += frequency\n", + "\n", + " mean = total_sum / len_data\n", + "\n", + " return mean\n", + "\n", + "#mean_frequency_distribution = mean(sum_values) \n", + "print(f'Mean is {mean_freq_dist(frequency_distribution)}')\n", + "\n", + "# Why the result is not the same as when we calculate the mean ?\n", + "\n", + "#Ici on veut trouver la moyenne du tableau de la fréquence (on ne veut pas les valeurs de la fréquence)\n", + "\n", + "#Not possible to use mean otherwise here" + ] + }, + { + "cell_type": "code", + "execution_count": 77, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "({1: 2, 2: 1, 3: 3, 4: 2, 6: 2}, 'Mean is: 3.3')\n" + ] + } + ], + "source": [ + "#Jesus' method\n", + "\n", + "def freq(data):\n", + " freq_dist = {}\n", + " for x in data:\n", + " if x in freq_dist:\n", + " freq_dist[x] = freq_dist[x] + 1 #+=1\n", + " else:\n", + " freq_dist[x] = 1\n", + "#here we go in all value inside data\n", + "#and say if this value is already in the dictionnary, we put it in +1\n", + "#if we did not have the value before, we say it's just 1\n", + "\n", + " return freq_dist, f'Mean is: {sum([k*v for k,v in freq_dist.items()])/sum([v for k,v in freq_dist.items()])}'\n", + "\n", + "#k = first column, which is unique value\n", + "#v = frequency column\n", + "\n", + "#in the for loop we define the column\n", + "#in the dictionary.item (we wanna access the items)\n", + "\n", + "print(freq(dice)) #we create key value" + ] + }, + { + "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": 78, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[1, 1, 2, 3, 3, 3, 4, 4, 6, 6]\n", + "10\n", + "Median is 3.0\n" + ] + } + ], + "source": [ + "# Method without function\n", + "\n", + "# your code here\n", + "\n", + "#Convert values into list to calculate the median\n", + "values_dice = dice.to_list()\n", + "print(values_dice)\n", + "\n", + "print(len(values_dice)) #Median = value in the middle \n", + "\n", + "#If even number, we take the two elements in the list divided by 2\n", + "median = (values_dice[4] + values_dice[5])/2\n", + "print(f'Median is {median}')" + ] + }, + { + "cell_type": "code", + "execution_count": 80, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Median is 3.0\n" + ] + } + ], + "source": [ + "#With function\n", + "\n", + "def median(lst):\n", + " sortedlst = sorted(lst)\n", + " lstlen = len(lst)\n", + " index = (lstlen - 1) // 2\n", + " \n", + " if (lstlen % 2 !=0):\n", + " return sortedlst[index] #if total list values is odd\n", + " else:\n", + " return (sortedlst[index] + sortedlst[index + 1])/2.0 #if total list values is even\n", + "\n", + "\n", + "print(f'Median is {median(values_dice)}')" + ] + }, + { + "cell_type": "code", + "execution_count": 140, + "metadata": {}, + "outputs": [], + "source": [ + "#Jesus' method\n", + "\n", + "def median_2(data):\n", + " if len(data)%2 == 0: #means values in DF are even (so no value is gonna be in the middle)\n", + " return sum(data[int(len(data)/2)-1:int(len(data)/2)+1])/2\n", + " else:\n", + " return data[int(len(data)/2)] #if odd, return number in the middle " + ] + }, + { + "cell_type": "code", + "execution_count": 141, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3.0\n" + ] + } + ], + "source": [ + "print(median_2(dice))" + ] + }, + { + "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": 83, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "the first quartile is 2.25\n", + "the second quartile is 3.0\n", + "the third quartile is 4.0\n", + "the fourth quartile is 6\n" + ] + } + ], + "source": [ + "#Comparing with results given by quantile formula\n", + "\n", + "q1 = np.quantile(dice, 0.25) \n", + "print(\"the first quartile is\", q1)\n", + "q2 = np.quantile(dice, 0.50)\n", + "print(\"the second quartile is\",q2)\n", + "q3 = np.quantile(dice, 0.75)\n", + "print(\"the third quartile is\", q3)\n", + "q4 = np.quantile(dice, 1)\n", + "print(\"the fourth quartile is\", q4)" + ] + }, + { + "cell_type": "code", + "execution_count": 88, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Q1: 2, Q2: 3.0, Q3: 4, Q4: 6\n" + ] + } + ], + "source": [ + "def quartiles(lst):\n", + " lst.sort()\n", + " total_count = len(lst)\n", + " \n", + " # lower quartile (Q1)\n", + " q1_index = total_count // 4\n", + " q1_lower_quartile = lst[q1_index] #here we divid by 4 to get the first 25%\n", + " \n", + " # median (Q2)\n", + " q2_index = median(lst)\n", + "\n", + " # upper quartile (Q3)\n", + " q3_index = (3 * total_count) // 4 #so we have the 3 quarters out of four (=75%)\n", + " q3_upper_quartile = lst[q3_index] \n", + " \n", + " # max (Q4)\n", + " q4 = max(lst)\n", + " \n", + " return q1_lower_quartile, q2_index, q3_upper_quartile, q4\n", + "\n", + "q1_lower_quartile, q2_index, q3_upper_quartile, q4 = quartiles(values_dice)\n", + "print(f'Q1: { q1_lower_quartile}, Q2: {q2_index}, Q3: {q3_upper_quartile}, Q4: {q4}')\n" + ] + }, + { + "cell_type": "code", + "execution_count": 93, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Q1: 2.00, Q2: 3.0, Q3: 4.00, Q4: 6.00\n" + ] + } + ], + "source": [ + "# Find quartiles \n", + "\n", + "def quartiles(lst):\n", + " sortedlst = sorted(lst)\n", + " lstlen = len(lst)\n", + " \n", + " middle = len(lst)//2\n", + "\n", + "# lower quartile\n", + " q1_lower_quartile = median(lst[:middle]) \n", + "\n", + "# median\n", + " q2 = median(lst)\n", + "\n", + "# upper quartile\n", + " q3_upper_quartile = median(lst[middle:]) \n", + "\n", + "#fourth quartile =max value\n", + " q4 = max(lst)\n", + "\n", + " return q1_lower_quartile, q2, q3_upper_quartile, q4\n", + " \n", + "\n", + "q1_lower_quartile, q2, q3_upper_quartile, q4 = quartiles(values_dice)\n", + "print(f'Q1: {q1_lower_quartile:.2f}, Q2: {q2}, Q3: {q3_upper_quartile:.2f}, Q4: {q4:.2f}')" + ] + }, + { + "cell_type": "code", + "execution_count": 145, + "metadata": {}, + "outputs": [], + "source": [ + "def quartiles_2(vals):\n", + " second_quartile = np.median(vals)\n", + " middle = len(vals) // 2\n", + " \n", + " if len(vals) % 2 == 0:\n", + " first_quartile = np.median(vals[:middle])\n", + " third_quartile = np.median(vals[middle:])\n", + " else:\n", + " first_quartile = np.median(vals[:middle])\n", + " third_quartile = np.median(vals[middle:])\n", + " \n", + " return first_quartile, second_quartile, third_quartile" + ] + }, + { + "cell_type": "code", + "execution_count": 146, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(2.0, 3.0, 4.0)\n" + ] + } + ], + "source": [ + "print(quartiles_2(values_dice)) #here won't work with a DF, we need to put it as an array." + ] + }, + { + "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": 110, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Unnamed: 0rollvalue
0001
1112
2226
3331
4446
5555
6662
7772
8884
9991
\n", + "
" + ], + "text/plain": [ + " Unnamed: 0 roll value\n", + "0 0 0 1\n", + "1 1 1 2\n", + "2 2 2 6\n", + "3 3 3 1\n", + "4 4 4 6\n", + "5 5 5 5\n", + "6 6 6 2\n", + "7 7 7 2\n", + "8 8 8 4\n", + "9 9 9 1" + ] + }, + "execution_count": 110, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# your code here\n", + "dice_hundred = pd.read_csv('/Users/amandine/Desktop/Ironhack/03_Week/Descriptive-Stats/data/roll_the_dice_hundred.csv')\n", + "dice_hundred.head(10)" + ] + }, + { + "cell_type": "code", + "execution_count": 106, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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wFqECgAAsBahAgAArEWoAAAAaxEqAADAWoQKAACwFqECAACsRagAAABrESoAAMBahAoAALAWoQIAAKxFqAAAAGsRKgAAwFqECgAAsBahAgAArEWoAAAAaxEqAADAWoQKAACwFqECAACsRagAAABrESoAAMBahAoAALAWoQIAAKxFqAAAAGsRKgAAwFqECgAAsBahAgAArEWoAAAAaxEqAADAWoQKAACwFqECAACsRagAAABrESoAAMBahAoAALAWoQIAAKxFqAAAAGsRKgAAwFqECgAAsBahAgAArEWoAAAAaxEqAADAWoQKAACwFqECAACsRagAAABrESoAAMBahAoAALAWoQIAAKxFqAAAAGsRKgAAwFqECgAAsJajoZKYmKjbb79dwcHBqlu3rnr16qW9e/c6ORIAALCIo6GyadMmDR8+XNu2bdNHH32kCxcu6L777lN2draTYwEAAEv4Ofnga9euLbC8cOFC1a1bV9u3b9cvfvELh6YCAAC2sOoalYyMDElSzZo1HZ4EAADYwNEjKhczxmjs2LG655571Lp16yK38Xq98nq9vmWPx1Ne4wHXtZycHElSSkqKw5P8v3PnziktLU0REREKDAx0ehxJ0u7du50eAah0rAmVESNG6Msvv9SWLVsuu01iYqISEhLKcSqgctizZ48kafDgwQ5PUjEEBwc7PQJQabiMMcbpIUaOHKmVK1dq8+bNuummmy67XVFHVMLDw5WRkaGQkJDyGBW4Ln333XdauXKlWrRooWrVqjk9jqQfjl7ExcXprbfeUmRkpNPj+AQHB6tp06ZOjwFUaB6PR6GhocV6/3b0iIoxRiNHjtSKFSuUlJR0xUiRJLfbLbfbXU7TAZVH7dq19eijjzo9RpEiIyMVHR3t9BgAHOJoqAwfPlzvvPOO/vnPfyo4OFgnTpyQJIWGhlpzThoAADjH0U/9zJ07VxkZGerQoYPq16/v+1u6dKmTYwEAAEs4fuoHAADgcqz6HhUAAICLESoAAMBahAoAALAWoQIAAKxFqAAAAGsRKgAAwFqECgAAsBahAgAArEWoAAAAaxEqAADAWoQKAACwFqECAACsRagAAABrESoAAMBahAoAALAWoQIAAKxFqAAAAGsRKgAAwFqECgAAsBahAgAArEWoAAAAaxEqAADAWoQKAACwFqECAACsRagAAABrESoAAMBa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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.boxplot(dice_hundred['value'])\n", + "plt.xlabel('Rolls')\n", + "plt.ylabel('Value')\n", + "plt.title('Boxplot of Rolls')\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 128, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "image/png": "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U+EozIkTJyocrbls2rRpSk5O9twvLy/XqVOn1Lx580oDyERFRUUKDw9Xfn6+goKC7B7HCOyzmmG/1Qz7rWbYb9V3ve4zy7JUXFyssLCwa67r6Jhp2LChbr/9dm3atEmjR4/2LN+0aZN++tOfXvE5brdbbrfba1mTJk3qckxbBQUFXVf/8tYH9lnNsN9qhv1WM+y36rse99m1jshc5uiYkaTk5GSNHz9eUVFR6t27txYtWqQjR47o0UcftXs0AADgAI6PmYSEBJ08eVLPPfecjh8/ri5duui9995TRESE3aMBAAAHcHzMSNKkSZM0adIku8dwFLfbrZSUlAqn1FA59lnNsN9qhv1WM+y36mOfSS6rKp95AgAAcChHf2keAADAtRAzAADAaMQMAAAwGjEDAACMRswY5sMPP1R8fLzCwsLkcrn09ttv2z2S46Wnp+vHP/6xAgMDFRISolGjRmnfvn12j+V4GRkZ6tatm+eLuHr37q2//vWvdo9llPT0dLlcLk2dOtXuURwtNTVVLpfL6xYaGmr3WEb4+uuvdf/996t58+Zq1KiRevTooV27dtk9Vr0jZgxTUlKi7t27a968eXaPYozs7GwlJSUpJydHmzZt0qVLlzRs2DCVlJTYPZqjtW7dWi+++KJ27typnTt3atCgQfrpT3+qPXv22D2aEXbs2KFFixapW7dudo9ihM6dO+v48eOe2+eff273SI5XWFioPn36yM/PT3/961/15Zdf6tVXX72uv/W+MkZ8zwz+LS4uTnFxcXaPYZT333/f6/7SpUsVEhKiXbt2qX///jZN5Xzx8fFe91944QVlZGQoJydHnTt3tmkqM5w9e1b33XefFi9erOeff97ucYzg6+vL0ZhqeumllxQeHq6lS5d6lt188832DWQjjszgB+fMmTOSpGbNmtk8iTnKysq0evVqlZSUqHfv3naP43hJSUkaMWKEhgwZYvcoxjhw4IDCwsIUGRmpu+++WwcPHrR7JMfLzMxUVFSUfvaznykkJEQ9e/bU4sWL7R7LFsQMflAsy1JycrL69u2rLl262D2O433++edq3Lix3G63Hn30Ua1fv16dOnWyeyxHW716tXbv3q309HS7RzFGdHS0VqxYoQ0bNmjx4sUqKChQTEyMTp48afdojnbw4EFlZGSoXbt22rBhgx599FH98pe/1IoVK+werd5xmgk/KI8//rg+++wzbdu2ze5RjNC+fXvl5ubq9OnTWrt2rRITE5WdnU3QVCI/P19TpkzRxo0bdcMNN9g9jjG+e+q8a9eu6t27t9q2bavly5crOTnZxsmcrby8XFFRUUpLS5Mk9ezZU3v27FFGRoYeeOABm6erXxyZwQ/G5MmTlZmZqaysLLVu3drucYzQsGFD3XLLLYqKilJ6erq6d++uOXPm2D2WY+3atUsnTpzQ7bffLl9fX/n6+io7O1u/+93v5Ovrq7KyMrtHNEJAQIC6du2qAwcO2D2Ko7Vq1arCf1h07NhRR44csWki+3BkBtc9y7I0efJkrV+/Xlu3blVkZKTdIxnLsiyVlpbaPYZjDR48uMKncH7+85+rQ4cO+vWvfy0fHx+bJjNLaWmp9u7dq379+tk9iqP16dOnwtdM7N+/XxERETZNZB9ixjBnz57VV1995bmfl5en3NxcNWvWTG3atLFxMudKSkrSypUr9ec//1mBgYEqKCiQJAUHB8vf39/m6ZzrmWeeUVxcnMLDw1VcXKzVq1dr69atFT4dhn8LDAyscC1WQECAmjdvzjVaV/HUU08pPj5ebdq00YkTJ/T888+rqKhIiYmJdo/maE888YRiYmKUlpamcePG6X/+53+0aNEiLVq0yO7R6p8Fo2RlZVmSKtwSExPtHs2xrrS/JFlLly61ezRHe/DBB62IiAirYcOGVosWLazBgwdbGzdutHss4wwYMMCaMmWK3WM4WkJCgtWqVSvLz8/PCgsLs8aMGWPt2bPH7rGM8M4771hdunSx3G631aFDB2vRokV2j2QLl2VZlk0dBQAA8L1xATAAADAaMQMAAIxGzAAAAKMRMwAAwGjEDAAAMBoxAwAAjEbMAAAAoxEzAIx36NAhuVwu5ebmSpK2bt0ql8ul06dP2zoXgPpBzACw3YQJE+RyueRyueTr66s2bdroscceU2Fhod2jATAAMQPAEYYPH67jx4/r0KFDeuONN/TOO+9o0qRJdo8FwADEDABHcLvdCg0NVevWrTVs2DAlJCRo48aNkqTy8nI999xzat26tdxut3r06FGtH7w8fPiw4uPj1bRpUwUEBKhz585677336uqtAKhn/Go2AMc5ePCg3n//ffn5+UmS5syZo1dffVULFy5Uz549tWTJEv3kJz/Rnj171K5du2tuLykpSRcuXNCHH36ogIAAffnll2rcuHFdvw0A9YSYAeAIf/nLX9S4cWOVlZXp/PnzkqRZs2ZJkl555RX9+te/1t133y1Jeumll5SVlaXZs2dr/vz519z2kSNHNHbsWHXt2lWS9KMf/aiO3gUAOxAzABxh4MCBysjI0Llz5/TGG29o//79mjx5soqKinTs2DH16dPHa/0+ffro008/rdK2f/nLX+qxxx7Txo0bNWTIEI0dO1bdunWri7cBwAZcMwPAEQICAnTLLbeoW7du+t3vfqfS0lLNmDHD87jL5fJa37KsCssqM3HiRB08eFDjx4/X559/rqioKM2dO7dW5wdgH2IGgCOlpKTolVde0dmzZxUWFqZt27Z5Pb59+3Z17NixytsLDw/Xo48+qnXr1unJJ5/U4sWLa3tkADbhNBMAR4qNjVXnzp2VlpamX/3qV0pJSVHbtm3Vo0cPLV26VLm5ufrDH/5QpW1NnTpVcXFxuvXWW1VYWKgtW7ZUK4QAOBsxA8CxkpOT9fOf/1z79+9XUVGRnnzySZ04cUKdOnVSZmZmlT7JJEllZWVKSkrS0aNHFRQUpOHDh+u1116r4+kB1BeXZVmW3UMAAADUFNfMAAAAoxEzAADAaMQMAAAwGjEDAACMRswAAACjETMAAMBoxAwAADAaMQMAAIxGzAAAAKMRMwAAwGjEDAAAMBoxAwAAjPb/TWhp9CS7PYEAAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "bin_edges = [i - 0.5 for i in range(1, 8)]\n", + "\n", + "color = '#FFBB66' # Change to the desired color name\n", + "\n", + "plt.hist(dice_hundred['value'], bins=bin_edges, rwidth=0.8, color=color) \n", + "\n", + "plt.xlabel('Rolls')\n", + "plt.ylabel('Value')\n", + "plt.title('Histogram of Rolls')\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "It appears that the most common value is 6 with a frequency of 23. Mode = 6\n", + "\n", + "Almost Multimodal (having multiple modes) since both 6 and 4 have high frequencies. \n", + "\n", + "Almost perfect normal distribution.\n", + "\n", + "Histogram is pretty symmetric, the mean is often near the peak or center of the distribution. Mean around 3/4." + ] + }, + { + "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": 139, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Mean is 3.74\n" + ] + } + ], + "source": [ + "# your code here\n", + "\n", + "#dice_hundred['value'] = pd.to_numeric(dice_hundred['value']) #convert str into numerical values\n", + "\n", + "print(\"Mean is\", calculate_mean(dice_hundred['value']))" + ] + }, + { + "cell_type": "code", + "execution_count": 138, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3.74\n" + ] + } + ], + "source": [ + "#Check if value with np.mean is the same :\n", + "\n", + "print(np.mean(dice_hundred['value']))" + ] + }, + { + "cell_type": "code", + "execution_count": 143, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Median is 2.5\n" + ] + } + ], + "source": [ + "print('Median is', median_2(dice_hundred['value']))" + ] + }, + { + "cell_type": "code", + "execution_count": 69, + "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", + "
Unnamed: 0rollvalue
count100.000000100.000000100.000000
mean49.50000049.5000003.740000
std29.01149229.0114921.703354
min0.0000000.0000001.000000
25%24.75000024.7500002.000000
50%49.50000049.5000004.000000
75%74.25000074.2500005.000000
max99.00000099.0000006.000000
\n", + "
" + ], + "text/plain": [ + " Unnamed: 0 roll value\n", + "count 100.000000 100.000000 100.000000\n", + "mean 49.500000 49.500000 3.740000\n", + "std 29.011492 29.011492 1.703354\n", + "min 0.000000 0.000000 1.000000\n", + "25% 24.750000 24.750000 2.000000\n", + "50% 49.500000 49.500000 4.000000\n", + "75% 74.250000 74.250000 5.000000\n", + "max 99.000000 99.000000 6.000000" + ] + }, + "execution_count": 69, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "roll_dice_df.describe()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 3.- Now, calculate the frequency distribution.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 151, + "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", + "
ValueFrequency
4112
5512
3314
2217
1422
0623
\n", + "
" + ], + "text/plain": [ + " Value Frequency\n", + "4 1 12\n", + "5 5 12\n", + "3 3 14\n", + "2 2 17\n", + "1 4 22\n", + "0 6 23" + ] + }, + "execution_count": 151, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#Calculate the freq dist and sort by dice number (index)\n", + "\n", + "frequency_distribution = dice_hundred['value'].value_counts().reset_index().sort_values(by='value')\n", + "frequency_distribution.columns = ['Value', 'Frequency']\n", + "\n", + "frequency_distribution" + ] + }, + { + "cell_type": "code", + "execution_count": 158, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Set custom bar colors\n", + "bar_color = 'plum'\n", + "\n", + "# Create the bar plot with step size 1 for the y-axis and custom bar colors\n", + "plt.bar(frequency_distribution['Value'], frequency_distribution['Frequency'], color=bar_color)\n", + "\n", + "# Calculate the median\n", + "median = np.median(dice)\n", + "\n", + "plt.xlabel('Value - Dice number (x)')\n", + "plt.ylabel('Frequency (y)')\n", + "plt.title('Frequency Distribution of Dice Rolls')\n", + "\n", + "# Set x-axis ticks with a step size of 1\n", + "plt.xticks(frequency_distribution['Value'])\n", + "\n", + "# Set y-axis ticks with a step size of 1\n", + "plt.yticks(range(0, int(max(frequency_distribution['Frequency'])) + 1))\n", + "\n", + "#other way to set scale\n", + "#plt.yticks(range(min(sorted_rolls), max(sorted_rolls) + 1))\n", + "#plt.xticks(range(min(sorted_rolls), max(sorted_rolls) + 1))\n", + "\n", + "# Display the median as text on the plot\n", + "plt.text(median, 1, f\"Median: {median}\", ha='center', va='bottom', fontsize=12)\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 173, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjMAAAHFCAYAAAAHcXhbAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA3iElEQVR4nO3deXhU9cH28XuyTRayECAkgRAi+yaLKKsSZJGIlEUrLkiQ0EpByyKPLfj4GCsShUKxoiiIAbRsVgRai4AKCAIaQFYREFklMeyBhEy28/7hm6lDWJIh5MyB7+e6ziVztrlnRpKb8zvnjM0wDEMAAAAW5WV2AAAAgOtBmQEAAJZGmQEAAJZGmQEAAJZGmQEAAJZGmQEAAJZGmQEAAJZGmQEAAJZGmQEAAJZGmQE8xOzZs2Wz2bR58+bLLn/ggQdUu3Ztl3m1a9fWoEGDyvQ8GzZsUHJyss6ePete0FvQwoUL1aRJEwUEBMhms2nbtm0l1hk1apRsNpu+//77K+7n+eefl81m09atW0v93O58xsCthjIDWNjHH3+sF154oUzbbNiwQS+99BJlppROnDihJ554QnXq1NGnn36qjRs3qn79+iXWS0pKkiS99957l91PUVGR5s6dqxYtWqhVq1Y3NDNwq6HMABbWsmVL1alTx+wYZZKfn6+CggKzY5Tavn37lJ+frwEDBqhTp05q27atAgMDS6zXtGlT3XXXXXr//fcv+/pWrlypY8eOOUsPgPJDmQEs7NIhiKKiIo0fP14NGjRQQECAwsLCdPvtt+v111+XJCUnJ+t//ud/JElxcXGy2Wyy2Wxas2aNc/uJEyeqYcOGstvtioiI0MCBA3Xs2DGX5zUMQxMmTFBsbKz8/f3VunVrrVq1SvHx8YqPj3eut2bNGtlsNr3//vt69tlnVaNGDdntdv3www86ceKEhg0bpsaNG6tSpUqKiIjQvffeq3Xr1rk816FDh2Sz2TRp0iS99tprql27tgICAhQfH+8sGn/+858VHR2t0NBQ9e3bV5mZmaV6/5YtW6Z27dopMDBQwcHB6tatmzZu3OhcPmjQIHXs2FGS1L9/f9lsNpfXd6mkpCRlZGRo+fLlJZalpqbKbrfr8ccfV25urp599lm1aNFCoaGhCg8PV7t27bR06dJrZi4ejjx06JDL/OL3uvizLPbZZ5+pS5cuCgkJUWBgoDp06KDPP//8ms8DWAllBvAwhYWFKigoKDGV5gvuJ06cqOTkZD366KP65JNPtHDhQiUlJTmHlIYMGaJnnnlGkrR48WJt3LhRGzdudA57/OEPf9Cf/vQndevWTcuWLdPLL7+sTz/9VO3bt9fJkyedz/P888/r+eefV48ePbR06VINHTpUQ4YM0b59+y6ba+zYsTpy5Ijefvtt/etf/1JERIROnz4tSXrxxRf1ySefKDU1Vbfddpvi4+NL/EKWpDfffFNfffWV3nzzTb377rv6/vvv1atXLyUlJenEiRN67733NHHiRH322WcaMmTINd+refPmqXfv3goJCdH8+fM1a9YsnTlzRvHx8Vq/fr0k6YUXXtCbb74pSZowYYI2btyot95664r7fPTRRxUYGFhiqOnMmTNaunSp+vbtq8qVK8vhcOj06dMaM2aMlixZovnz56tjx47q16+f5s6de83spfXBBx+oe/fuCgkJ0Zw5c7Ro0SKFh4frvvvuo9Dg5mIA8AipqamGpKtOsbGxLtvExsYaiYmJzscPPPCA0aJFi6s+z6RJkwxJxsGDB13m79mzx5BkDBs2zGX+119/bUgyxo0bZxiGYZw+fdqw2+1G//79XdbbuHGjIcno1KmTc97q1asNScY999xzzddfUFBg5OfnG126dDH69u3rnH/w4EFDktG8eXOjsLDQOX/q1KmGJOM3v/mNy35GjhxpSDLOnTt3xecqLCw0oqOjjWbNmrns8/z580ZERITRvn37Eq/hww8/vOZrMAzDSExMNHx9fY2ff/7ZOe+NN94wJBmrVq266mtPSkoyWrZs6bLs0s+4+P+TSz+/4pyrV682DMMwsrOzjfDwcKNXr14lXnvz5s2Nu+66q1SvB7ACjswAHmbu3LlKS0srMRUPd1zNXXfdpe3bt2vYsGFasWKFsrKySv28q1evlqQSV87cddddatSokfNf8ps2bZLD4dDDDz/ssl7btm1LXG1V7MEHH7zs/LffflutWrWSv7+/fHx85Ovrq88//1x79uwpse79998vL6///shq1KiRJKlnz54u6xXPP3LkyBVeqbR3714dP35cTzzxhMs+K1WqpAcffFCbNm1STk7OFbe/mqSkJOXn5+v99993zktNTVVsbKy6dOninPfhhx+qQ4cOqlSpkvO1z5o167Kv3R0bNmzQ6dOnlZiY6HKEr6ioSD169FBaWpqys7PL5bkAs1FmAA/TqFEjtW7dusQUGhp6zW3Hjh2rv/71r9q0aZMSEhJUpUoVdenS5YqXe//aqVOnJElRUVEllkVHRzuXF/+3evXqJda73Lwr7XPKlCn6wx/+oDZt2uijjz7Spk2blJaWph49eujixYsl1g8PD3d57Ofnd9X5ubm5l83y69dwpddaVFSkM2fOXHH7q7n77rtVv359paamSpJ27NihrVu36sknn5TNZpP0yxDfww8/rBo1auiDDz7Qxo0blZaWpsGDB181d1n8/PPPkqSHHnpIvr6+LtNrr70mwzCcQ32A1fmYHQBA+fHx8dHo0aM1evRonT17Vp999pnGjRun++67T0ePHr3sVTjFqlSpIklKT09XzZo1XZYdP35cVatWdVmv+Jflr2VkZFz26EzxL/Ff++CDDxQfH6/p06e7zD9//vzVX2Q5+PVrvdTx48fl5eWlypUru73/wYMH689//rO++eYbzZs3T15eXi5HvD744APFxcVp4cKFLu+Nw+G45r79/f0vu+6vz2mS5Py83njjDbVt2/ay+7pS+QSshiMzwE0qLCxMDz30kIYPH67Tp087r36x2+2SVOLox7333ivpl1+0v5aWlqY9e/Y4h0jatGkju92uhQsXuqy3adMmHT58uNT5bDabM0uxHTt2uFxNdKM0aNBANWrU0Lx581xOrM7OztZHH33kvMLJXYmJifLx8dE777yjf/zjH+rSpYtiY2Ody202m/z8/FyKTEZGRqmuZiouizt27HCZv2zZMpfHHTp0UFhYmL777rvLHulr3bq18ygWYHUcmQFuIr169VLTpk3VunVrVatWTYcPH9bUqVMVGxurevXqSZKaNWsmSXr99deVmJgoX19fNWjQQA0aNNDvf/97vfHGG/Ly8lJCQoIOHTqkF154QTExMRo1apSkX4Z1Ro8erZSUFFWuXFl9+/bVsWPH9NJLLykqKsrlHJSreeCBB/Tyyy/rxRdfVKdOnbR371795S9/UVxc3A2/D42Xl5cmTpyoxx9/XA888ICeeuopORwOTZo0SWfPntWrr756XfuPjIzU/fffr9TUVBmGUeLeMg888IAWL16sYcOG6aGHHtLRo0f18ssvKyoqSvv377/qvu+88041aNBAY8aMUUFBgSpXrqyPP/7YeQVWsUqVKumNN95QYmKi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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "#Jesus' method\n", + "\n", + "bin_edges = [i - 0.5 for i in range(1, 8)]\n", + "\n", + "plt.hist(dice_hundred['value'], bins=bin_edges, rwidth=0.8, color='powderblue')\n", + "\n", + "# Calculate the mean\n", + "mean_value = dice_hundred['value'].mean()\n", + "\n", + "# Display the mean as a vertical line on the histogram\n", + "plt.axvline(mean_value, color='cadetblue', linestyle='dashed', linewidth=2, label=f'Mean: {mean_value}')\n", + "\n", + "# Set labels and title\n", + "plt.xlabel('Value')\n", + "plt.ylabel('Frequency')\n", + "plt.title('Histogram of Value')\n", + "\n", + "# Add a legend\n", + "plt.legend()\n", + "\n", + "# Show the plot\n", + "plt.show()" + ] + }, + { + "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": 174, + "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", + "
Unnamed: 0rollvalue
0005
1116
2221
\n", + "
" + ], + "text/plain": [ + " Unnamed: 0 roll value\n", + "0 0 0 5\n", + "1 1 1 6\n", + "2 2 2 1" + ] + }, + "execution_count": 174, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# your code here\n", + "dice_thousand = pd.read_csv('/Users/amandine/Desktop/Ironhack/03_Week/Descriptive-Stats/data/roll_the_dice_thousand.csv')\n", + "dice_thousand.head(3)" + ] + }, + { + "cell_type": "code", + "execution_count": 175, + "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", + "
Dice NumberFrequency
01175
12167
23175
34168
45149
56166
\n", + "
" + ], + "text/plain": [ + " Dice Number Frequency\n", + "0 1 175\n", + "1 2 167\n", + "2 3 175\n", + "3 4 168\n", + "4 5 149\n", + "5 6 166" + ] + }, + "execution_count": 175, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "frequency_distribution = dice_thousand['value'].value_counts().sort_index().reset_index()\n", + "\n", + "frequency_distribution.columns = ['Dice Number', 'Frequency']\n", + "\n", + "frequency_distribution" + ] + }, + { + "cell_type": "code", + "execution_count": 176, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjsAAAHFCAYAAAAUpjivAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAABAlElEQVR4nO3de3zPdeP/8efHDh/bzOxgtmXWlFMmp1UOlTlbKFQoZbIOLnIR+15Fv27mqsvEhVyUTgxR5LqQK1c5nwpdQxSVkGO2Vk4z47PZ3r8/uvlcfcyGj/H+7O1xv93et7yPn+fnY/H0eh8+NsMwDAEAAFhUBbMDAAAAXE+UHQAAYGmUHQAAYGmUHQAAYGmUHQAAYGmUHQAAYGmUHQAAYGmUHQAAYGmUHQAAYGmUHaCcmDlzpmw2m7Zs2XLJ9V26dNGtt97qsuzWW29Vv379rup1Nm7cqNTUVJ08edK9oDeh+fPnq379+vLz85PNZtP27duLbfPCCy/IZrPphx9+KPE4L7/8smw2m7Zt23bFr+3O7zFws6HsABa2aNEivfLKK1e1z8aNGzV69GjKzhX69ddf9eSTT+q2227T559/rk2bNql27drFtktOTpYkzZgx45LHKSoq0uzZs9WoUSM1adLkumYGbjaUHcDCGjdurNtuu83sGFeloKBA58+fNzvGFfvxxx9VUFCgJ554Qq1atVKzZs3k7+9fbLu4uDjdfffd+uCDDy75/pYvX64jR444SxGAskPZASzs4lMcRUVFeu2111SnTh35+fmpSpUquvPOOzV58mRJUmpqqv7v//5PkhQbGyubzSabzaa1a9c69x83bpzq1q0ru92u8PBw9e3bV0eOHHF5XcMwNGbMGMXExKhixYqKj4/XihUrlJCQoISEBOd2a9eulc1m0wcffKDhw4frlltukd1u1969e/Xrr79q4MCBuuOOO1SpUiWFh4erTZs22rBhg8trHThwQDabTePHj9frr7+uW2+9VX5+fkpISHAWkZdeeklRUVEKCgpS9+7dlZ2dfUWf35IlS9S8eXP5+/srMDBQ7du316ZNm5zr+/Xrp3vvvVeS1KtXL9lsNpf3d7Hk5GRlZWXps88+K7YuPT1ddrtdffr00blz5zR8+HA1atRIQUFBCgkJUfPmzfXJJ59cNvOF050HDhxwWX7hs77we3nBypUr1bZtW1WuXFn+/v5q2bKlVq1addnXAcoTyg5QzhQWFur8+fPFJsMwLrvvuHHjlJqaqscee0xLly7V/PnzlZyc7Dxl9fTTT2vw4MGSpIULF2rTpk3atGmT87TKn/70J7344otq3769lixZoldffVWff/65WrRood9++835Oi+//LJefvllderUSZ988okGDBigp59+Wj/++OMlc40YMUKHDh3S22+/rX//+98KDw/X8ePHJUmjRo3S0qVLlZ6erpo1ayohIaHYX9iS9Oabb+rLL7/Um2++qffff18//PCDunbtquTkZP3666+aMWOGxo0bp5UrV+rpp5++7Gf14Ycf6qGHHlLlypX10Ucfafr06Tpx4oQSEhL0xRdfSJJeeeUVvfnmm5KkMWPGaNOmTXrrrbdKPOZjjz0mf3//YqeyTpw4oU8++UTdu3dXcHCwHA6Hjh8/rpSUFC1evFgfffSR7r33XvXo0UOzZ8++bPYrNWfOHHXo0EGVK1fWrFmz9PHHHyskJEQdO3ak8MBaDADlQnp6uiGp1CkmJsZln5iYGCMpKck536VLF6NRo0alvs748eMNScb+/ftdln///feGJGPgwIEuy7/66itDkjFy5EjDMAzj+PHjht1uN3r16uWy3aZNmwxJRqtWrZzL1qxZY0gy7r///su+//PnzxsFBQVG27Ztje7duzuX79+/35BkNGzY0CgsLHQuf+ONNwxJxoMPPuhynKFDhxqSjFOnTpX4WoWFhUZUVJTRoEEDl2OePn3aCA8PN1q0aFHsPSxYsOCy78EwDCMpKcnw8fExfvnlF+eyKVOmGJKMFStWlPrek5OTjcaNG7usu/j3+MLPycW/fxdyrlmzxjAMwzhz5owREhJidO3atdh7b9iwoXH33Xdf0fsBygNGdoByZvbs2crIyCg2XTidUpq7775bO3bs0MCBA7Vs2TLl5ORc8euuWbNGkord+XP33XerXr16zpGAzZs3y+FwqGfPni7bNWvWrNjdYhc8/PDDl1z+9ttvq0mTJqpYsaK8vb3l4+OjVatW6fvvvy+27QMPPKAKFf73R1q9evUkSZ07d3bZ7sLyQ4cOlfBOpd27d+vo0aN68sknXY5ZqVIlPfzww9q8ebPy8vJK3L80ycnJKigo0AcffOBclp6erpiYGLVt29a5bMGCBWrZsqUqVarkfO/Tp0+/5Ht3x8aNG3X8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0J49e8yO4tEiIyOL/cOjXr16OnTokEmJzMHIDqDfT10NHjxYixYt0tq1axUbG2t2pHLLMAw5HA6zY3istm3bFruL6KmnnlLdunX14osvysvLy6Rk5YvD4dD333+v++67z+woHq1ly5bFHqPx448/KiYmxqRE5qDsWFBubq727t3rnN+/f7+2b9+ukJAQ1ahRw8RknmvQoEH68MMP9cknnygwMFBZWVmSpKCgIPn5+ZmcznONHDlSiYmJio6O1unTpzVv3jytXbu22N1t+J/AwMBi14IFBAQoNDSUa8RKkZKSoq5du6pGjRrKzs7Wa6+9ppycHCUlJZkdzaO98MILatGihcaMGaOePXvqv//9r9599129++67Zke7sQxYzpo1awxJxaakpCSzo3msS31ekoz09HSzo3m0/v37GzExMYavr69RtWpVo23btsby5cvNjlXutGrVyhgyZIjZMTxar169jMjISMPHx8eIiooyevToYezatcvsWOXCv//9byMuLs6w2+1G3bp1jXfffdfsSDeczTAMw6SeBQAAcN1xgTIAALA0yg4AALA0yg4AALA0yg4AALA0yg4AALA0yg4AALA0yg4AALA0yg4Ay0pISNDQoUPNjgHAZJQdAB6pa9euateu3SXXbdq0STabTdu2bbvBqQCUR5QdAB4pOTlZq1ev1sGDB4utmzFjhho1aqQmTZqYkAxAeUPZAeCRunTpovDwcM2cOdNleV5enubPn69u3brpscceU/Xq1eXv768GDRroo48+KvWYNptNixcvdllWpUoVl9f4+eef1atXLwUHBys0NFQPPfSQDhw4UDZvCoApKDsAPJK3t7f69u2rmTNn6o9f4bdgwQLl5+fr6aefVtOmTfXpp59q586devbZZ/Xkk0/qq6++cvs18/Ly1Lp1a1WqVEnr16/XF198oUqVKqlTp07Kz88vi7cFwASUHQAeq3///jpw4IDWrl3rXDZjxgz16NFDt9xyi1JSUtSoUSPVrFlTgwcPVseOHbVgwQK3X2/evHmqUKGC3n//fTVo0ED16tVTenq6Dh065JIBQPnibXYAAChJ3bp11aJFC82YMUOtW7fWvn37tGHDBi1fvlyFhYUaO3as5s+fr59//lkOh0MOh0MBAQFuv97WrVu1d+9eBQYGuiw/d+6c9u3bd61vB4BJKDsAPFpycrKef/55vfnmm0pPT1dMTIzatm2r8ePHa9KkSXrjjTfUoEEDBQQEaOjQoaWebrLZbC6nxCSpoKDA+euioiI1bdpUc+fOLbZv1apVy+5NAbihKDsAPFrPnj01ZMgQffjhh5o1a5aeeeYZ2Ww2bdiwQQ899JCeeOIJSb8XlT179qhevXolHqtq1arKzMx0zu/Zs0d5eXnO+SZNmmj+/PkKDw9X5cqVr9+bAnBDcc0OAI9WqVIl9erVSyNHjtTRo0fVr18/SdLtt9+uFStWaOPGjfr+++/13HPPKSsrq9RjtWnTRlOnTtW2bdu0ZcsWDRgwQD4+Ps71ffr0UVhYmB566CFt2LBB+/fv17p16zRkyBAdOXLker5NANcRZQeAx0tOTtaJEyfUrl071ahRQ5L0yiuvqEmTJurYsaMSEhIUERGhbt26lXqcCRMmKDo6Wvfff78ef/xxpaSkyN/f37ne399f69evV40aNdSjRw/Vq1dP/fv319mzZxnpAcoxm3HxCWwAAAALYWQHAABYGmUHAABYGmUHAABYGmUHAABYGmUHAABYGmUHAABYGmUHAABYGmUHAABYGmUHAABYGmUHAABYGmUHAABYGmUHAABY2v8HOblBgy7naKwAAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "#Jesus' method\n", + "\n", + "bin_edges = [i - 0.5 for i in range(1, 8)]\n", + "\n", + "plt.hist(dice_thousand['value'], bins=bin_edges, rwidth=0.8, color='powderblue')\n", + "\n", + "# Calculate the mean\n", + "mean_value = dice_thousand['value'].mean()\n", + "\n", + "# Display the mean as a vertical line on the histogram\n", + "plt.axvline(mean_value, color='cadetblue', linestyle='dashed', linewidth=2, label=f'Mean: {mean_value}')\n", + "\n", + "# Set labels and title\n", + "plt.xlabel('Value')\n", + "plt.ylabel('Frequency')\n", + "plt.title('Histogram of Value')\n", + "\n", + "# Add a legend\n", + "plt.legend()\n", + "\n", + "# Show the plot\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here we see more uniform chart and mean line closer to the 3.\n", + "Almost all the values will have the same count (more flat/uniform distribution).\n", + "The more values we have, the closer we gonna be to the mean." + ] + }, + { + "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": 235, + "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", + "
observation
068.0
112.0
245.0
338.0
449.0
527.0
639.0
712.0
842.0
933.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\n", + "5 27.0\n", + "6 39.0\n", + "7 12.0\n", + "8 42.0\n", + "9 33.0" + ] + }, + "execution_count": 235, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# your code here\n", + "ages_population_df = pd.read_csv('/Users/amandine/Desktop/Ironhack/03_Week/Descriptive-Stats/data/ages_population.csv')\n", + "ages_population_df.head(10)" + ] + }, + { + "cell_type": "code", + "execution_count": 178, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([68., 12., 45., 38., 49., 27., 39., 42., 33., 30., 25., 44., 53.,\n", + " 46., 50., 22., 6., 29., 35., 28., 26., 60., 41., 52., 32., 23.,\n", + " 15., 40., 63., 31., 34., 61., 64., 37., 56., 14., 13., 51., 36.,\n", + " 18., 48., 58., 20., 54., 19., 62., 55., 21., 43., 17., 7., 47.,\n", + " 1., 16., 24., 59., 57., 8., 67., 2., 66., 4., 73., 82., 70.,\n", + " 5., 71., 9., 69., 11., 10., 65.])" + ] + }, + "execution_count": 178, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ages_population_df['observation'].unique()" + ] + }, + { + "cell_type": "code", + "execution_count": 180, + "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", + "
observation
count1000.0000
mean36.5600
std12.8165
min1.0000
25%28.0000
50%37.0000
75%45.0000
max82.0000
\n", + "
" + ], + "text/plain": [ + " observation\n", + "count 1000.0000\n", + "mean 36.5600\n", + "std 12.8165\n", + "min 1.0000\n", + "25% 28.0000\n", + "50% 37.0000\n", + "75% 45.0000\n", + "max 82.0000" + ] + }, + "execution_count": 180, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ages_population_df.describe()" + ] + }, + { + "cell_type": "code", + "execution_count": 179, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
AgeFrequency
01.02
12.02
24.01
35.02
46.02
.........
6769.01
6870.01
6971.01
7073.01
7182.01
\n", + "

72 rows × 2 columns

\n", + "
" + ], + "text/plain": [ + " Age Frequency\n", + "0 1.0 2\n", + "1 2.0 2\n", + "2 4.0 1\n", + "3 5.0 2\n", + "4 6.0 2\n", + ".. ... ...\n", + "67 69.0 1\n", + "68 70.0 1\n", + "69 71.0 1\n", + "70 73.0 1\n", + "71 82.0 1\n", + "\n", + "[72 rows x 2 columns]" + ] + }, + "execution_count": 179, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "frequency_distribution = ages_population_df['observation'].value_counts().sort_index().reset_index()\n", + "\n", + "frequency_distribution.columns = ['Age', 'Frequency']\n", + "\n", + "frequency_distribution" + ] + }, + { + "cell_type": "code", + "execution_count": 192, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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vLy8nB4jR46UJB0/frzMdQJWxJwZ4Drh6empcePGady4cTp16pQ+++wzTZ48Wd27d9fRo0fl5+dX7GuDgoIkSWlpaapdu7bTtl9++cUxX+Ziv4t/aP8oPT3d5eiMzWYr0vb2228rJiZGCxYscGrPzs4u+SArwB+P9VK//PKLqlSpoho1apR5v6U9pqCgIG3btq3I69PT052eX/yaT5o0Sf3793f5no0aNSpznYAVMTIDXIeqV6+u+++/X0899ZROnjypw4cPS5LsdrskFRn9uPPOOyX9/gf5j5KSkrRv3z517dpVktS+fXvZ7XatWLHCqd/WrVuVmppa6vpsNpujlot27drldDdRZWnUqJFq1aqlZcuWOU2sPnv2rN5//33HHU5lVdpjio6OVnZ2ttasWePUvnz58iJ1RkVFaefOnS5H69q2bauAgIAy1wlYESMzwHXi7rvvVvPmzdW2bVvdeOONSk1N1bx58xQREaGoqChJ0s033yxJeuWVVzRkyBB5eXmpUaNGatSokf70pz/pH//4h6pUqaKePXs67maqU6eOxo4dK+n3yzrjxo1TfHy8atSooX79+unYsWOaNm2awsLCnOaglKRPnz7661//qqlTpyo6Olr79+/XX/7yF0VGRrq8m6siValSRbNnz9bAgQPVp08fjRgxQrm5uZozZ45OnTqlWbNmlWu/pT2mIUOG6OWXX9agQYM0ffp0NWjQQGvWrNGnn37qqO+i119/XT179lT37t01dOhQ1apVSydPntS+ffv07bff6t13372yLwZgFWbPQAZweRfvZkpKSnK5vXfv3pe9m+mll14yOnbsaNSsWdPw9vY26tatawwbNsw4fPiw0+smTZpkhIeHG1WqVDEkGRs2bDAM4/e7fF588UWjYcOGhpeXl1GzZk1j0KBBxtGjR51eX1hYaEyfPt2oXbu24e3tbbRo0cL473//a7Rs2dLprp2S7gTKzc01JkyYYNSqVcvw8fEx2rRpY3z44YfGkCFDnI7z4t1Mc+bMcXp9cfu+3Nfxjz788EOjffv2ho+Pj+Hv72907drV+Oqrr0r1Pq6U9pgMwzCOHDli9O/f36hataoREBBg3HfffcYnn3xiSDI++ugjp747d+40HnzwQSM4ONjw8vIyQkNDjTvvvNNYuHDhZWsCrhU2wyjFAhUAcAVSUlLUuHFjTZ06VZMnTza7HEuaOXOmnn/+eR05cqTIvCXgesdlJgAVaufOnXrnnXfUsWNHVatWTfv379fs2bNVrVo1DRs2zOzyLGH+/PmSpMaNGys/P1+ff/65/v73v2vQoEEEGcAFwgyACuXv76/t27dr0aJFOnXqlAIDAxUTE6MZM2YUe3s2nPn5+enll1/W4cOHlZubq7p16+rZZ5/V888/b3ZpgFviMhMAALA0bs0GAACWRpgBAACWRpgBAACWds1PAC4sLNQvv/yigIAAl8umAwAA92MYhrKzsxUeHn7ZBTev+TDzyy+/qE6dOmaXAQAAyuHo0aOXXZLgmg8zFz+b5OjRo6pWrZrJ1QDW8dz7H+jUuXOq7uurWff1M7scANeZrKws1alTp1SfMXbNh5mLl5aqVatGmAHK4MGOHXQ+P18+Xl787AAwTWmmiFzzYQZA+cQ0amh2CQBQKtzNBAAALI0wAwAALI3LTABcOpWTo0LDUBWbTdX9/MwuBxZXUFCg/Px8s8uAG/Hy8pKHh0eF7IswA8Claf/5WJk5Oarh56eXBzxgdjmwKMMwlJ6erlOnTpldCtxQ9erVFRoaesXrwBFmAACV5mKQCQ4Olp+fH4uXQtLvITcnJ0cZGRmSpLCwsCvaH2EGAFApCgoKHEEmKCjI7HLgZnx9fSVJGRkZCg4OvqJLTkwABgBUiotzZPyYc4ViXPzeuNL5VIQZAECl4tISilNR3xuEGQAAYGmEGQAAYGmEGQAALjF06FDZbDY98cQTRbaNHDlSNptNQ4cOvfqFlUJcXJwaN24sf39/1ahRQ3fddZe++eabIv2+/vpr3XnnnfL391f16tUVExOjc+fOlbhfm83m9AgNDS3Sb9++fbrnnnsUGBiogIAA3XbbbTpy5EiFHuOlCDMAALhQp04dLV++3OkP/Pnz5/XOO++obt26JlZWsoYNG2r+/PnavXu3Nm/erHr16ik2Nla//fabo8/XX3+tHj16KDY2Vtu2bVNSUpJGjRqlKlVKjgXNmjVTWlqa47F7926n7YcOHVKnTp3UuHFjbdy4UTt37tQLL7wgHx+fSjnWiwgzAAC40KZNG9WtW1erVq1ytK1atUp16tRR69atnfoahqHZs2erfv368vX1VcuWLfXee+85thcUFGjYsGGKjIyUr6+vGjVqpFdeecVpH0OHDtW9996rv/3tbwoLC1NQUJCeeuqpMt/p88gjj+iuu+5S/fr11axZM82dO1dZWVnatWuXo8/YsWP19NNP67nnnlOzZs0UFRWl+++/X3a7vcR9e3p6KjQ01PG48cYbnbZPmTJFvXr10uzZs9W6dWvVr19fvXv3VnBwcJmOoawIMwBcmtgjVjPuvUcTe8SaXQpgmscee0wJCQmO52+99ZYef/zxIv2ef/55JSQkaMGCBdqzZ4/Gjh2rQYMGadOmTZKkwsJC1a5dWytXrtTevXv1//7f/9PkyZO1cuVKp/1s2LBBhw4d0oYNG7RkyRItXrxYixcvdmyPi4tTvXr1Sl1/Xl6e3njjDQUGBqply5aSfl/X5ZtvvlFwcLA6duyokJAQRUdHa/PmzZfd38GDBxUeHq7IyEg99NBD+umnnxzbCgsL9fHHH6thw4bq3r27goOD1b59e3344Yelrre8WDQPgEthgYFl6v9RaprT874RV7aiJ65ta7/fo0/37L1sv4igGzTmrq5ObfM+W6/UEycv+9ruzZqqR/Nm5a5Rkh599FFNmjRJhw8fls1m01dffaXly5dr48aNjj5nz57V3Llz9fnnn6tDhw6SpPr162vz5s16/fXXFR0dLS8vL02bNs3xmsjISG3ZskUrV67Ugw8+6GivUaOG5s+fLw8PDzVu3Fi9e/fW+vXr9X//93+SpJo1a+qmm266bN3//e9/9dBDDyknJ0dhYWFKTExUzZo1JckRQOLi4vS3v/1NrVq10tKlS9W1a1d9//33ioqKcrnP9u3ba+nSpWrYsKF+/fVXTZ8+XR07dtSePXsUFBSkjIwMnTlzRrNmzdL06dP14osvau3aterfv782bNig6Ojosn3xy4AwAwC46s7l5yszJ+ey/W7w9y/Sln0+t1SvPVcBH2xZs2ZN9e7dW0uWLJFhGOrdu7cjFFy0d+9enT9/Xt26dXNqz8vLc7octXDhQv3zn/9Uamqqzp07p7y8PLVq1crpNc2aNXNaCTcsLMxpXsqoUaM0atSoy9bdpUsXJScn6/jx43rzzTf14IMPOkZjCgsLJUkjRozQY489Jklq3bq11q9fr7feekvx8fEu99mzZ0/H/998883q0KGDbrrpJi1ZskTjxo1z7Ldv374aO3asJKlVq1basmWLFi5cSJgBAFxbfL28VKMUKwMH+BSdwxHgYy/Va329vMpV26Uef/xxR4B49dVXi2y/+Ef8448/Vq1atZy2XZyDsnLlSo0dO1YvvfSSOnTooICAAM2ZM6fIXUZel9Rss9kc+y8Lf39/NWjQQA0aNNBtt92mqKgoLVq0SJMmTXJ8DlLTpk2dXtOkSZMy3XXk7++vm2++WQcPHpT0e/Dz9PR0ud/SXMK6EoQZAC59fegn5RVckLeHpzrcVN/scnCN6dG8WbkvAV162amy9ejRQ3l5eZKk7t27F9netGlT2e12HTlypNjRhy+//FIdO3bUyJEjHW2HDh2qnIJdMAxDubm5kqR69eopPDxc+/fvd+pz4MABp9GXy8nNzdW+fft0xx13SJK8vb3Vrl07l/uNiIi4wiMoGWEGgEsrt+9QZk6Oavj5EWZwXfPw8NC+ffsc/3+pgIAATZgwQWPHjlVhYaE6deqkrKwsbdmyRVWrVtWQIUPUoEEDLV26VJ9++qkiIyP1r3/9S0lJSYqMjCxTLfPnz9cHH3yg9evXu9x+9uxZzZgxQ/fcc4/CwsJ04sQJvfbaazp27JgeeOABSb+P9jzzzDOaOnWqWrZsqVatWmnJkiX64YcfnO7A6tq1q/r16+cYlZowYYLuvvtu1a1bVxkZGZo+fbqysrI0ZMgQx2ueeeYZDRgwQJ07d1aXLl20du1a/ec//3GaY1QZCDMAAFxGtWrVStz+17/+VcHBwYqPj9dPP/2k6tWrq02bNpo8ebIk6YknnlBycrIGDBggm82mhx9+WCNHjtSaNWvKVMfx48dLHNHx8PDQDz/8oCVLluj48eMKCgpSu3bt9OWXX6pZs/+NhI0ZM0bnz5/X2LFjdfLkSbVs2VKJiYlOk4sPHTqk48ePO54fO3ZMDz/8sI4fP64bb7xRt912m7Zu3eo06tKvXz8tXLhQ8fHxevrpp9WoUSO9//776tSpU5mOs6xshmEYlfoOJsvKylJgYKBOnz592W9GAP8zdsW7jpGZlwc8cNn+3M2ES50/f14pKSmKjIys9EXTYE0lfY+U5e8368wAAABLI8wAAABLI8wAAABLI8wAAABLI8wAACrVNX6fCa5ARX1vEGYAAJXi4mq2OaX46AFcny5+b1y68nFZsc4MAJcCfX2d/guUlYeHh6pXr66MjAxJkp+fn2w2m8lVwR0YhqGcnBxlZGSoevXqLhcjLAvCDACX4u7pY3YJuAaEhoZKkiPQAH9UvXp1x/fIlSDMAAAqjc1mU1hYmIKDg5VfAZ9ijWuHl5fXFY/IXESYAQBUOg8Pjwr7wwVcignAAADA0hiZAeDS4q++1pm8XFX1tmvo7R3MLgcAikWYAeDSzmPHHB80CQDujMtMAADA0ggzAADA0ggzAADA0ggzAADA0ggzAADA0ggzAADA0ggzAADA0ggzAADA0lg0D4BL7etHKic3T352b7NLAYASEWYAuPRQu7ZmlwAApcJlJgAAYGmEGQAAYGmEGQAAYGnMmQHg0nOrPtCpnHOq7uerWf37mV0OABSLkRkALuXmX9D5/Hzl5l8wuxQAKJHbhJn4+HjZbDaNGTPG0WYYhuLi4hQeHi5fX1/FxMRoz5495hUJAADcjluEmaSkJL3xxhtq0aKFU/vs2bM1d+5czZ8/X0lJSQoNDVW3bt2UnZ1tUqUAAMDdmB5mzpw5o4EDB+rNN99UjRo1HO2GYWjevHmaMmWK+vfvr+bNm2vJkiXKycnRsmXLTKwYAAC4E9PDzFNPPaXevXvrrrvucmpPSUlRenq6YmNjHW12u13R0dHasmVLsfvLzc1VVlaW0wMAAFy7TL2bafny5fr222+VlJRUZFt6erokKSQkxKk9JCREqampxe4zPj5e06ZNq9hCAQCA2zJtZObo0aMaPXq03n77bfn4+BTbz2azOT03DKNI2x9NmjRJp0+fdjyOHj1aYTUDAAD3Y9rIzI4dO5SRkaFbbrnF0VZQUKAvvvhC8+fP1/79+yX9PkITFhbm6JORkVFktOaP7Ha77HZ75RUOAADcimkjM127dtXu3buVnJzseLRt21YDBw5UcnKy6tevr9DQUCUmJjpek5eXp02bNqljx45mlQ0AANyMaSMzAQEBat68uVObv7+/goKCHO1jxozRzJkzFRUVpaioKM2cOVN+fn565JFHzCgZuK4M6Xib8i4UyNvTw+xSAKBEbv1xBhMnTtS5c+c0cuRIZWZmqn379lq3bp0CAgLMLg245rWqU8fsEgCgVGyGYRhmF1GZsrKyFBgYqNOnT6tatWpmlwNcsz5KTXN63jcirJieAHB5Zfn7bfo6MwAAAFfCrS8zATDP4eMndKGwQJ5VPFSvZpDZ5QBAsQgzAFx6Zf3nyszJUQ0/P7084AGzywGAYnGZCQAAWBphBgAAWBphBgAAWBphBgAAWBphBgAAWBphBgAAWBphBgAAWBphBgAAWBphBgAAWBorAANwaWb/eyXDkGw2s0sBgBIRZgC45OvlZXYJAFAqXGYCAACWRpgBAACWxmUmAC6t/X6PzuXny9fLSz2aNzO7HAAoFmEGgEuf7tmrzJwc1fDzI8wAcGtcZgIAAJZGmAEAAJZGmAEAAJZGmAEAAJZGmAEAAJZGmAEAAJbGrdkArqqPUtOcnveNCDOpEgDXCkZmAACApTEyA8CliKAbdIO/vwJ87GaXAgAlIswAcGnMXV3NLgEASoXLTAAAwNIIMwAAwNIIMwAAwNKYMwPApXmfrVf2+VwF+NiZPwPArRFmALiUeuKkMnNyVMPPz+xSAKBEXGYCAACWRpgBAACWRpgBAACWRpgBAACWRpgBAACWRpgBAACWRpgBAACWxjozgJv5KDXN6XnfiDCTKgEAayDMAHCpe7OmOpefL18vL7NLAYASEWYAuNSjeTOzSwCAUmHODAAAsDTCDAAAsDQuMwFw6Vx+vmQYks3GvBkAbo0wA8Clyas+dHxq9ssDHjC7HAAoFpeZAACApTEyA1yHWMsGwLWEkRkAAGBphBkAAGBphBkAAGBphBkAAGBphBkAAGBphBkAAGBp3JoNwHSubhXn9nEApUWYAeDS6K536kJhgTyreJhdCgCUiDADwKV6NYPMLgEASoU5MwAAwNIIMwAAwNK4zATApeSjR5V3oUDenh5qVaeO2eUAQLEIMwBcWrJlqzJzclTDz0+tBhBmALgvLjMBAABLY2QGgKSia70AgFUwMgMAACyNMAMAACyNMAMAACzN1DCzYMECtWjRQtWqVVO1atXUoUMHrVmzxrHdMAzFxcUpPDxcvr6+iomJ0Z49e0ysGAAAuBtTw0zt2rU1a9Ysbd++Xdu3b9edd96pvn37OgLL7NmzNXfuXM2fP19JSUkKDQ1Vt27dlJ2dbWbZAADAjZgaZu6++2716tVLDRs2VMOGDTVjxgxVrVpVW7dulWEYmjdvnqZMmaL+/furefPmWrJkiXJycrRs2TIzywYAAG7EbebMFBQUaPny5Tp79qw6dOiglJQUpaenKzY21tHHbrcrOjpaW7ZsKXY/ubm5ysrKcnoAKDu7l6d8vLxk92IFBwDuzfTfUrt371aHDh10/vx5Va1aVR988IGaNm3qCCwhISFO/UNCQpSamlrs/uLj4zVt2rRKrRlwB5euC9M3IqxC9z+rfz/He/zxvfpGhFX6ewNAWZg+MtOoUSMlJydr69atevLJJzVkyBDt3bvXsd1mszn1NwyjSNsfTZo0SadPn3Y8jh49Wmm1AwAA85k+MuPt7a0GDRpIktq2baukpCS98sorevbZZyVJ6enpCgv737/6MjIyiozW/JHdbpfdbq/cogEAgNswfWTmUoZhKDc3V5GRkQoNDVViYqJjW15enjZt2qSOHTuaWCEAAHAnpo7MTJ48WT179lSdOnWUnZ2t5cuXa+PGjVq7dq1sNpvGjBmjmTNnKioqSlFRUZo5c6b8/Pz0yCOPmFk2cF1YnrRd+06ckpeXp25u0MjscgCgWKaGmV9//VWPPvqo0tLSFBgYqBYtWmjt2rXq1q2bJGnixIk6d+6cRo4cqczMTLVv317r1q1TQECAmWUD14VvfkpRZk6OfOx2wgwAt2ZqmFm0aFGJ2202m+Li4hQXF3d1CgIAAJbjdnNmAAAAysL0u5kAVK7rYU2Y6+EYARSPkRkAAGBphBkAAGBphBkAAGBphBkAAGBphBkAAGBp3M0EwKWWtWvrQOZpeXt5mV0KAJSIMAPApaG3dyhyyzMAuCMuMwEAAEsrV5hJSUmp6DoAAADKpVxhpkGDBurSpYvefvttnT9/vqJrAgAAKLVyhZmdO3eqdevWGj9+vEJDQzVixAht27atomsDYKK41f/Vmq82aUPSVrNLAYASlSvMNG/eXHPnztXPP/+shIQEpaenq1OnTmrWrJnmzp2r3377raLrBHCVnT53Tudzc3U+L9fsUgCgRFc0AdjT01P9+vXTypUr9eKLL+rQoUOaMGGCateurcGDBystjTshAABA5bqiMLN9+3aNHDlSYWFhmjt3riZMmKBDhw7p888/188//6y+fftWVJ0AAAAulWudmblz5yohIUH79+9Xr169tHTpUvXq1UtVqvyejSIjI/X666+rcePGFVosAADApcoVZhYsWKDHH39cjz32mEJDQ132qVu3rhYtWnRFxQGwtksX3esbEWZSJQCuZeUKMwcPHrxsH29vbw0ZMqQ8uwcAACi1cs2ZSUhI0Lvvvluk/d1339WSJUuuuCgAAIDSKleYmTVrlmrWrFmkPTg4WDNnzrziogAAAEqrXGEmNTVVkZGRRdojIiJ05MiRKy4KAACgtMo1ZyY4OFi7du1SvXr1nNp37typoKCgiqgLgMkebHuLtmWckEcVD7NLAYASlSvMPPTQQ3r66acVEBCgzp07S5I2bdqk0aNH66GHHqrQAgGYo8NN9ZXh6Wt2GQBwWeUKM9OnT1dqaqq6du0qT8/fd1FYWKjBgwczZwYoJW5bBoCKUa4w4+3trRUrVuivf/2rdu7cKV9fX918882KiIio6PoAAABKVK4wc1HDhg3VsGHDiqoFgBtJO31aWWfOyGazKcDf3+xyAKBY5QozBQUFWrx4sdavX6+MjAwVFhY6bf/8888rpDgA5pm9dp0yc3LkY7er5+3RZpcDAMUqV5gZPXq0Fi9erN69e6t58+ay2WwVXRcAAECplCvMLF++XCtXrlSvXr0quh4AAIAyKdeied7e3mrQoEFF1wIAAFBm5Qoz48eP1yuvvCLDMCq6HgAAgDIp12WmzZs3a8OGDVqzZo2aNWsmLy8vp+2rVq2qkOIAK2L9GAC4usoVZqpXr65+/fpVdC0AAABlVq4wk5CQUNF1AAAAlEu55sxI0oULF/TZZ5/p9ddfV3Z2tiTpl19+0ZkzZyqsOAAAgMsp18hMamqqevTooSNHjig3N1fdunVTQECAZs+erfPnz2vhwoUVXScAAIBL5V40r23bttq5c6eCgoIc7f369dPw4cMrrDgA5pl6d2+tPfori2ICcHvlvpvpq6++kre3t1N7RESEfv755wopDIC5qvv5ydfHx+wyAOCyyjVnprCwUAUFBUXajx07poCAgCsuCgAAoLTKFWa6deumefPmOZ7bbDadOXNGU6dO5SMOgErwUWqa0wMA8D/lusz08ssvq0uXLmratKnOnz+vRx55RAcPHlTNmjX1zjvvVHSNAEywcf8BHcw4IU8PT0XWqm12OQBQrHKFmfDwcCUnJ+udd97Rt99+q8LCQg0bNkwDBw6Ur69vRdcIwAQfJe9UZk6OfOx2wgwAt1auMCNJvr6+evzxx/X4449XZD0AAABlUq4ws3Tp0hK3Dx48uFzFAAAAlFW515n5o/z8fOXk5Mjb21t+fn6EGQAAcNWU626mzMxMp8eZM2e0f/9+derUiQnAAADgqir3ZzNdKioqSrNmzSoyagMAAFCZyj0B2BUPDw/98ssvFblLwK1duuZL34gwkyq5PrhaY6e4rznnBrh+lCvMrF692um5YRhKS0vT/Pnzdfvtt1dIYQAAAKVRrjBz7733Oj232Wy68cYbdeedd+qll16qiLoAAABKpVxhprCwsKLrAOBmQqtV0wWbTXYv78t3BgATVeicGQDXjmd7dudzoABYQrnCzLhx40rdd+7cueV5CwAAgFIpV5j57rvv9O233+rChQtq1KiRJOnAgQPy8PBQmzZtHP1sNlvFVAkAAFCMcoWZu+++WwEBAVqyZIlq1Kgh6feF9B577DHdcccdGj9+fIUWCQAAUJxyhZmXXnpJ69atcwQZSapRo4amT5+u2NhYwgxgkopcW2Xhpi/006kseXt5qV2zFldaGgBUmnKtAJyVlaVff/21SHtGRoays7OvuCgA5tuf/qsyTp7Q8VOZZpcCACUqV5jp16+fHnvsMb333ns6duyYjh07pvfee0/Dhg1T//79K7pGAACAYpXrMtPChQs1YcIEDRo0SPn5+b/vyNNTw4YN05w5cyq0QAAAgJKUK8z4+fnptdde05w5c3To0CEZhqEGDRrI39+/ousDAAAo0RV9anZaWprS0tLUsGFD+fv7yzCMiqoLAACgVMoVZk6cOKGuXbuqYcOG6tWrl9LSfr+DYvjw4dzJBAAArqpyhZmxY8fKy8tLR44ckZ+fn6N9wIABWrt2bYUVBwAAcDnlmjOzbt06ffrpp6pdu7ZTe1RUlFJTUyukMAAAgNIo18jM2bNnnUZkLjp+/LjsdvsVFwUAAFBa5QoznTt31tKlSx3PbTabCgsLNWfOHHXp0qXCigNgnuiGUbqpToTqhde+fGcAMFG5wsycOXP0+uuvq2fPnsrLy9PEiRPVvHlzffHFF3rxxRdLvZ/4+Hi1a9dOAQEBCg4O1r333qv9+/c79TEMQ3FxcQoPD5evr69iYmK0Z8+e8pQNoAzubd1KLaIaqUnkTWaXAgAlKleYadq0qXbt2qVbb71V3bp109mzZ9W/f3999913uumm0v/i27Rpk5566ilt3bpViYmJunDhgmJjY3X27FlHn9mzZ2vu3LmaP3++kpKSFBoaqm7duvGxCQAAQFI5JgDn5+crNjZWr7/+uqZNm3ZFb37pnU8JCQkKDg7Wjh071LlzZxmGoXnz5mnKlCmOj0lYsmSJQkJCtGzZMo0YMeKK3h8AAFhfmUdmvLy89P3338tms1V4MadPn5Yk3XDDDZKklJQUpaenKzY21tHHbrcrOjpaW7ZscbmP3NxcZWVlOT0AAMC1q1yXmQYPHqxFixZVaCGGYWjcuHHq1KmTmjdvLklKT0+XJIWEhDj1DQkJcWy7VHx8vAIDAx2POnXqVGidQHl8lJrm9LCCsSve1Qefr9OarzaZXQoAlKhc68zk5eXpn//8pxITE9W2bdsin8k0d+7cMu9z1KhR2rVrlzZv3lxk26WjQIZhFDsyNGnSJI0bN87xPCsri0ADAMA1rExh5qefflK9evX0/fffq02bNpKkAwcOOPUpz+WnP//5z1q9erW++OILp4X4QkNDJf0+QhMWFuZoz8jIKDJac5HdbmetGwAAriNlCjNRUVFKS0vThg0bJP3+8QV///vfiw0Wl2MYhv785z/rgw8+0MaNGxUZGem0PTIyUqGhoUpMTFTr1q0l/T4qtGnTpjLdAg4AAK5dZQozl34q9po1a5xuoy6rp556SsuWLdNHH32kgIAAxzyYwMBA+fr6ymazacyYMZo5c6aioqIUFRWlmTNnys/PT4888ki53xcAAFw7yjVn5qJLw01ZLViwQJIUExPj1J6QkKChQ4dKkiZOnKhz585p5MiRyszMVPv27bVu3ToFBARc0XsDAIBrQ5nCjM1mKzIn5kpu0S5NGLLZbIqLi1NcXFy53wcAAFy7ynyZaejQoY4JtufPn9cTTzxR5G6mVatWVVyFAAAAJShTmBkyZIjT80GDBlVoMYA7u3R9mL4RYcX0hJW4Oq+ca8BayhRmEhISKqsOAACAcrmiCcAArl1/6nyHvkz7TVWqlGuhcAC4aggzAFxqEhaqA3lXdsciAFwN/JMLAABYGmEGAABYGmEGgEv70tL164nj+i3zpNmlAECJmDMDwKU3vvhSmTk58rHb1fP2aLPLAYBiEWYAF1hnBACsg8tMAADA0ggzAADA0ggzAADA0ggzAADA0ggzAADA0ggzAADA0ggzAADA0lhnBtc91pS5fnCugWsTYQaASy8PeKDIH38AcEdcZgIAAJZGmAEAAJZGmAEAAJbGnBkALn34XbJ2nzglL09PNYm8yexyAKBYhBkALm06cFCZOTnysdsJMwDcGpeZAACApTEyg+uGq9uMWWcEpcUaNYD7YmQGAABYGmEGAABYGmEGAABYGmEGAABYGmEGAABYGmEGAABYGrdmA3CpUWiIfjqVJW8vL7NLue5xWzhQMsIMAJeeiO7scm0eAHA3XGYCAACWRpgBAACWRpgBAACWxpwZAC69uOZTHcvOlt3LW3e0aWd2OQBQLMIMAJfSs7KUnZOjfPsFs0sBgBJxmQkAAFgaIzO4JrEuB8zi6nZ2vv+AysXIDAAAsDTCDAAAsDTCDAAAsDTCDAAAsDTCDAAAsDTCDAAAsDRuzQbgUt9WLbU944Q8Pfg1AcC98VsKlseaMpUjplFDnfYpumYKKo6r712+n4Gy4zITAACwNMIMAACwNMIMAJdO5eTo3PnzOp+ba3YpAFAi5swAcGnafz5WZk6OfOx29bw92uxyAKBYjMwAAABLI8wAAABLI8wAAABLY84MAFwFrB8DVB5GZgAAgKURZgAAgKURZgAAgKURZgAAgKURZgAAgKVxNxMAlyb2iNVnxzJks9nMLgUASkSYAeBSWGCgqp3KMbsMALgswgxK5G5rY7hbPQAA8zFnBgAAWBojMwBc+vrQTzqccUIeVTxUJ5QRMADuy9SRmS+++EJ33323wsPDZbPZ9OGHHzptNwxDcXFxCg8Pl6+vr2JiYrRnzx5zigWuMyu379B3P+zV94cOmF0KAJTI1DBz9uxZtWzZUvPnz3e5ffbs2Zo7d67mz5+vpKQkhYaGqlu3bsrOzr7KlQIAAHdl6mWmnj17qmfPni63GYahefPmacqUKerfv78kacmSJQoJCdGyZcs0YsSIq1kqAABwU247ATglJUXp6emKjY11tNntdkVHR2vLli0mVgYAANyJ204ATk9PlySFhIQ4tYeEhCg1NbXY1+Xm5io3N9fxPCsrq3IKBAAAbsFtw8xFl64+ahhGiSuSxsfHa9q0aZVdFi5xpeu/sH4MAKC83PYyU2hoqKT/jdBclJGRUWS05o8mTZqk06dPOx5Hjx6t1DoBAIC53DbMREZGKjQ0VImJiY62vLw8bdq0SR07diz2dXa7XdWqVXN6AACAa5epl5nOnDmjH3/80fE8JSVFycnJuuGGG1S3bl2NGTNGM2fOVFRUlKKiojRz5kz5+fnpkUceMbFqAADgTkwNM9u3b1eXLl0cz8eNGydJGjJkiBYvXqyJEyfq3LlzGjlypDIzM9W+fXutW7dOAQEBZpUMXDcCfX11rqBAPt52s0sBgBKZGmZiYmJkGEax2202m+Li4hQXF3f1igIgSYq7p0+RidkA4I7cds4MAABAabj9rdkA4K5YUgBwD4zMAAAAS2NkBoBLi7/6WgcyT8vby0utGzc1uxwAKBZhBoBLO48dU2ZOjnzs3M0EwL1xmQkAAFgaYQYAAFgaYQYAAFgaYQYAAFgaE4BRaVytHts3Ioy1OYCrqLifQ+BawsgMAACwNMIMAACwNMIMAACwNObMAHCpff1I7TtxSl5e/JoA4N74LQXApYfatXU5eRQA3A2XmQAAgKURZgAAgKVxmQlui/VogOK5+vm4Wj8z/GzC3RBmALj03KoPdPzMWfnY7ep2WyezywGAYnGZCYBLufkXdKGgQBcKCswuBQBKRJgBAACWRpgBAACWRpgBAACWRpgBAACWRpgBAACWxq3ZKDPWmAAAuBNGZgAAgKURZgAAgKVxmQmAS0M63qYt6cdVpYqH2aUAQIkIMwBcalWnjlIL+RUBwP1xmQkAAFgaYQYAAFgaYQaAS4ePn9CJ06eUmZVldikAUCIuiF9jWAMGFeWV9Z8rMydHPna7et4ebXY5AFAsRmYAAIClEWYAAIClEWYAAIClEWYAAIClEWYAAIClEWYAAIClcWs2AFyHSruMw9Va7oFlJXAlGJkBAACWRpgBAACWxmUmAC7N7H+vPj6SbnYZAHBZhBkALvl6ecnLk18RANwfl5kAAIClEWYAAIClMYYMwKW13+/Rvt9OytPTU1F165ldDgAUizBznXK1pgPrPOCPPt2zV5k5OfKx2wkzqDBl+T3D7ySUFpeZAACApRFmAACApRFmAACApRFmAACApRFmAACApRFmAACApRFmAACApbHOzBWq6PVaKmP9F9ZqAFAa7va7CygtwgwAlyKCbpA8vWT39ja7FAAoEWEGgEtj7upa5F/WAOCOmDMDAAAsjTADAAAsjTADAAAsjTkzAFya99l6pZ7Olt3bWx1atDa7HAAoFmEGgEupJ04qMydHPna72aUAQIkIMyaq6DUdAOBaV9r1bEr7O9LKv0utXHtFY84MAACwNMIMAACwNEuEmddee02RkZHy8fHRLbfcoi+//NLskgAAgJtw+zCzYsUKjRkzRlOmTNF3332nO+64Qz179tSRI0fMLg0AALgBtw8zc+fO1bBhwzR8+HA1adJE8+bNU506dbRgwQKzSwMAAG7ArcNMXl6eduzYodjYWKf22NhYbdmyxaSqAACAO3HrW7OPHz+ugoIChYSEOLWHhIQoPT3d5Wtyc3OVm5vreH769GlJUlZWVqXUmJOd7fQ8K8vfZduVvLYs71HR+6zINuq5fJvkPucwNydHeefOqUpBgdM2d/qauVs9VqjR3eq5mt/3rpS2nzuycu2lcfHvtmEYl+3r1mHmIpvN5vTcMIwibRfFx8dr2rRpRdrr1KlTKbUB14MEswsAcN3Kzs5WYGBgiX3cOszUrFlTHh4eRUZhMjIyiozWXDRp0iSNGzfO8bywsFAnT55UUFBQsQGotLKyslSnTh0dPXpU1apVu6J9oWJxbtwX58Z9cW7cE+fld4ZhKDs7W+Hh4Zft69ZhxtvbW7fccosSExPVr18/R3tiYqL69u3r8jV2u132S5Zfr169eoXWVa1atev6G8ydcW7cF+fGfXFu3BPnRZcdkbnIrcOMJI0bN06PPvqo2rZtqw4dOuiNN97QkSNH9MQTT5hdGgAAcANuH2YGDBigEydO6C9/+YvS0tLUvHlzffLJJ4qIiDC7NAAA4AbcPsxI0siRIzVy5Eizy5DdbtfUqVOLXMaC+Tg37otz4744N+6J81J2NqM09zwBAAC4KbdeNA8AAOByCDMAAMDSCDMAAMDSCDMAAMDSCDNl8NprrykyMlI+Pj665ZZb9OWXX5pd0nUlPj5e7dq1U0BAgIKDg3Xvvfdq//79Tn0Mw1BcXJzCw8Pl6+urmJgY7dmzx6SKr1/x8fGy2WwaM2aMo41zY56ff/5ZgwYNUlBQkPz8/NSqVSvt2LHDsZ1zc/VduHBBzz//vCIjI+Xr66v69evrL3/5iwoLCx19OC9lYKBUli9fbnh5eRlvvvmmsXfvXmP06NGGv7+/kZqaanZp143u3bsbCQkJxvfff28kJycbvXv3NurWrWucOXPG0WfWrFlGQECA8f777xu7d+82BgwYYISFhRlZWVkmVn592bZtm1GvXj2jRYsWxujRox3tnBtznDx50oiIiDCGDh1qfPPNN0ZKSorx2WefGT/++KOjD+fm6ps+fboRFBRk/Pe//zVSUlKMd99916hataoxb948Rx/OS+kRZkrp1ltvNZ544gmntsaNGxvPPfecSRUhIyPDkGRs2rTJMAzDKCwsNEJDQ41Zs2Y5+pw/f94IDAw0Fi5caFaZ15Xs7GwjKirKSExMNKKjox1hhnNjnmeffdbo1KlTsds5N+bo3bu38fjjjzu19e/f3xg0aJBhGJyXsuIyUynk5eVpx44dio2NdWqPjY3Vli1bTKoKp0+fliTdcMMNkqSUlBSlp6c7nSe73a7o6GjO01Xy1FNPqXfv3rrrrruc2jk35lm9erXatm2rBx54QMHBwWrdurXefPNNx3bOjTk6deqk9evX68CBA5KknTt3avPmzerVq5ckzktZWWIFYLMdP35cBQUFRT6pOyQkpMgneuPqMAxD48aNU6dOndS8eXNJcpwLV+cpNTX1qtd4vVm+fLm+/fZbJSUlFdnGuTHPTz/9pAULFmjcuHGaPHmytm3bpqefflp2u12DBw/m3Jjk2Wef1enTp9W4cWN5eHiooKBAM2bM0MMPPyyJn5myIsyUgc1mc3puGEaRNlwdo0aN0q5du7R58+Yi2zhPV9/Ro0c1evRorVu3Tj4+PsX249xcfYWFhWrbtq1mzpwpSWrdurX27NmjBQsWaPDgwY5+nJura8WKFXr77be1bNkyNWvWTMnJyRozZozCw8M1ZMgQRz/OS+lwmakUatasKQ8PjyKjMBkZGUVSMyrfn//8Z61evVobNmxQ7dq1He2hoaGSxHkywY4dO5SRkaFbbrlFnp6e8vT01KZNm/T3v/9dnp6ejq8/5+bqCwsLU9OmTZ3amjRpoiNHjkji58YszzzzjJ577jk99NBDuvnmm/Xoo49q7Nixio+Pl8R5KSvCTCl4e3vrlltuUWJiolN7YmKiOnbsaFJV1x/DMDRq1CitWrVKn3/+uSIjI522R0ZGKjQ01Ok85eXladOmTZynSta1a1ft3r1bycnJjkfbtm01cOBAJScnq379+pwbk9x+++1FljA4cOCAIiIiJPFzY5acnBxVqeL8J9jDw8NxazbnpYxMnHxsKRdvzV60aJGxd+9eY8yYMYa/v79x+PBhs0u7bjz55JNGYGCgsXHjRiMtLc3xyMnJcfSZNWuWERgYaKxatcrYvXu38fDDD3Mro0n+eDeTYXBuzLJt2zbD09PTmDFjhnHw4EHj3//+t+Hn52e8/fbbjj6cm6tvyJAhRq1atRy3Zq9atcqoWbOmMXHiREcfzkvpEWbK4NVXXzUiIiIMb29vo02bNo5bgnF1SHL5SEhIcPQpLCw0pk6daoSGhhp2u93o3LmzsXv3bvOKvo5dGmY4N+b5z3/+YzRv3tyw2+1G48aNjTfeeMNpO+fm6svKyjJGjx5t1K1b1/Dx8THq169vTJkyxcjNzXX04byUns0wDMPMkSEAAIArwZwZAABgaYQZAABgaYQZAABgaYQZAABgaYQZAABgaYQZAABgaYQZAABgaYQZAABgaYQZAG5py5Yt8vDwUI8ePcwuBYCbYwVgAG5p+PDhqlq1qv75z39q7969qlu3rtklAXBTjMwAcDtnz57VypUr9eSTT6pPnz5avHix0/bVq1crKipKvr6+6tKli5YsWSKbzaZTp045+mzZskWdO3eWr6+v6tSpo6efflpnz569ugcC4KogzABwOytWrFCjRo3UqFEjDRo0SAkJCbo4iHz48GHdf//9uvfee5WcnKwRI0ZoypQpTq/fvXu3unfvrv79+2vXrl1asWKFNm/erFGjRplxOAAqGZeZALid22+/XQ8++KBGjx6tCxcuKCwsTO+8847uuusuPffcc/r444+1e/duR//nn39eM2bMUGZmpqpXr67BgwfL19dXr7/+uqPP5s2bFR0drbNnz8rHx8eMwwJQSRiZAeBW9u/fr23btumhhx6SJHl6emrAgAF66623HNvbtWvn9Jpbb73V6fmOHTu0ePFiVa1a1fHo3r27CgsLlZKScnUOBMBV42l2AQDwR4sWLdKFCxdUq1YtR5thGPLy8lJmZqYMw5DNZnN6zaUDzIWFhRoxYoSefvrpIvtnIjFw7SHMAHAbFy5c0NKlS/XSSy8pNjbWadt9992nf//732rcuLE++eQTp23bt293et6mTRvt2bNHDRo0qPSaAZiPOTMA3MaHH36oAQMGKCMjQ4GBgU7bpkyZok8++USrVq1So0aNNHbsWA0bNkzJyckaP368jh07plOnTikwMFC7du3Sbbfdpscee0z/93//J39/f+3bt0+JiYn6xz/+YdLRAagszJkB4DYWLVqku+66q0iQkX4fmUlOTlZmZqbee+89rVq1Si1atNCCBQscdzPZ7XZJUosWLbRp0yYdPHhQd9xxh1q3bq0XXnhBYWFhV/V4AFwdjMwAsLwZM2Zo4cKFOnr0qNmlADABc2YAWM5rr72mdu3aKSgoSF999ZXmzJnDGjLAdYwwA8ByDh48qOnTp+vkyZOqW7euxo8fr0mTJpldFgCTcJkJAABYGhOAAQCApRFmAACApRFmAACApRFmAACApRFmAACApRFmAACApRFmAACApRFmAACApRFmAACApf1/rzAiU85PZS0AAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "bin_edges = [i - 0.5 for i in range(1, 90)]\n", + "\n", + "plt.hist(ages_population_df, bins=bin_edges, rwidth=0.8, color='powderblue')\n", + "\n", + "# Calculate the mean\n", + "mean_value = ages_population_df['observation'].mean()\n", + "\n", + "# Display the mean as a vertical line on the histogram\n", + "plt.axvline(mean_value, color='cadetblue', linestyle='dashed', linewidth=2, label=f'Mean: {mean_value}')\n", + "\n", + "plt.xlabel('Age')\n", + "plt.ylabel('Frequency')\n", + "plt.title('Histogram of age')\n", + "\n", + "plt.legend()\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 193, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Maximum Frequency: 45\n", + "Age Associated with Maximum Frequency: 39.0\n" + ] + } + ], + "source": [ + "max_frequency = frequency_distribution['Frequency'].max()\n", + "index_of_max_frequency = frequency_distribution['Frequency'].idxmax()\n", + "age_associated_with_max_frequency = frequency_distribution.loc[index_of_max_frequency, 'Age']\n", + "\n", + "print(\"Maximum Frequency:\", max_frequency)\n", + "print(\"Age Associated with Maximum Frequency:\", age_associated_with_max_frequency)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Mean is generally around the most frequent values, so ages around 40/45.\n", + "\n", + "Data are pretty sparse, so we can expect the standard deviation to be pretty high, around 10/15." + ] + }, + { + "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": 198, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The mean age is 36.56\n", + "The standard deviation for age is 12.82\n" + ] + } + ], + "source": [ + "mean_age = ages_population_df['observation'].mean()\n", + "print(f\"The mean age is {mean_age:.2f}\")\n", + "\n", + "\n", + "std_age = ages_population_df['observation'].std()\n", + "print(f\"The standard deviation for age is {std_age:.2f}\")" + ] + }, + { + "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": 199, + "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", + "
observation
025.0
131.0
229.0
331.0
429.0
529.0
628.0
730.0
824.0
926.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\n", + "5 29.0\n", + "6 28.0\n", + "7 30.0\n", + "8 24.0\n", + "9 26.0" + ] + }, + "execution_count": 199, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# your code here\n", + "ages_population2_df = pd.read_csv('/Users/amandine/Desktop/Ironhack/03_Week/Descriptive-Stats/data/ages_population2.csv')\n", + "ages_population2_df.head(10)" + ] + }, + { + "cell_type": "code", + "execution_count": 201, + "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", + "
observation
count1000.000000
mean27.155000
std2.969814
min19.000000
25%25.000000
50%27.000000
75%29.000000
max36.000000
\n", + "
" + ], + "text/plain": [ + " observation\n", + "count 1000.000000\n", + "mean 27.155000\n", + "std 2.969814\n", + "min 19.000000\n", + "25% 25.000000\n", + "50% 27.000000\n", + "75% 29.000000\n", + "max 36.000000" + ] + }, + "execution_count": 201, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ages_population2_df.describe()" + ] + }, + { + "cell_type": "code", + "execution_count": 200, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
AgeFrequency
019.03
120.013
221.017
322.035
423.041
524.078
625.098
726.0120
827.0125
928.0139
1029.0115
1130.090
1231.061
1332.031
1433.022
1534.07
1635.03
1736.02
\n", + "
" + ], + "text/plain": [ + " Age Frequency\n", + "0 19.0 3\n", + "1 20.0 13\n", + "2 21.0 17\n", + "3 22.0 35\n", + "4 23.0 41\n", + "5 24.0 78\n", + "6 25.0 98\n", + "7 26.0 120\n", + "8 27.0 125\n", + "9 28.0 139\n", + "10 29.0 115\n", + "11 30.0 90\n", + "12 31.0 61\n", + "13 32.0 31\n", + "14 33.0 22\n", + "15 34.0 7\n", + "16 35.0 3\n", + "17 36.0 2" + ] + }, + "execution_count": 200, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "frequency_distribution = ages_population2_df['observation'].value_counts().sort_index().reset_index()\n", + "\n", + "frequency_distribution.columns = ['Age', 'Frequency']\n", + "\n", + "frequency_distribution" + ] + }, + { + "cell_type": "code", + "execution_count": 204, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjsAAAHFCAYAAAAUpjivAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAABCJUlEQVR4nO3df3yPdf////vLfrz2wwxb+8XMypAfiZRImWQsIuqkIpQ6lVTCWS05TacIZ0tvijoTqlOok/I5S1nMSnLmN6lT0sxkO1eZbcZe+3V8//D1qlczZl5zbMdu18vluOR1HM/j2ON1dGT3ns/ncRw2wzAMAQAAWFQ9swsAAACoToQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdwCKWLFkim82mbdu2nXV7//791bx5c5d1zZs316hRoy7o52zevFmJiYk6fvx41Qqtg1asWKG2bdvK19dXNptNu3btMrskoE4h7AB12OrVqzVlypQL2mfz5s2aNm0aYaeSfv75Z91777264oor9Mknn+irr75Sy5YtzS4LqFM8zS4AgHk6duxodgkXrLi4WDabTZ6eteOvr++//17FxcUaPny4evToYXY5QJ1Ezw5Qh/1xGKusrEzTp09Xq1at5Ovrq4YNG+qqq67Syy+/LElKTEzUX/7yF0lSdHS0bDabbDabNm7c6Nx/9uzZat26tex2u0JCQjRixAgdOXLE5ecahqEZM2YoKipKPj4+6ty5s5KTkxUbG6vY2Fhnu40bN8pms+ntt9/WxIkT1aRJE9ntdv3www/6+eefNXbsWLVp00b169dXSEiIbr75Zn3xxRcuP+vQoUOy2WyaM2eOZs2apebNm8vX11exsbHOIPL0008rIiJCgYGBGjRokLKzsyt1/tasWaOuXbvKz89PAQEB6t27t7766ivn9lGjRql79+6SpKFDh8pms7l8vz+q7HeSpCNHjujOO+9UQECAGjZsqGHDhmnr1q2y2WxasmSJS9tt27ZpwIABaty4sXx8fNSxY0etXLmyUt8RsILa8b9GACqttLRUJSUl5dYbhnHefWfPnq3ExEQ9++yzuummm1RcXKz//ve/ziGrBx54QMeOHdO8efO0atUqhYeHS5LatGkjSXr44Yf1+uuva9y4cerfv78OHTqkKVOmaOPGjdqxY4eCg4MlSZMnT9bMmTP15z//WYMHD1ZGRoYeeOABFRcXn3WIJyEhQV27dtXChQtVr149hYSE6Oeff5YkTZ06VWFhYTpx4oRWr16t2NhYrV+/vlyoeOWVV3TVVVfplVde0fHjxzVx4kTddttt6tKli7y8vPTmm28qPT1dkyZN0gMPPKA1a9ac81wtW7ZMw4YNU1xcnN599105HA7Nnj3b+fO7d++uKVOm6LrrrtMjjzyiGTNmqGfPnmrQoEGFxzx27FilvlNBQYF69uypY8eOadasWWrRooU++eQTDR06tNwxU1JS1LdvX3Xp0kULFy5UYGCgli9frqFDh+rkyZMXPGcLqJUMAJawePFiQ9I5l6ioKJd9oqKijJEjRzo/9+/f37j66qvP+XPmzJljSDLS0tJc1n/33XeGJGPs2LEu6//zn/8YkoxnnnnGMAzDOHbsmGG3242hQ4e6tPvqq68MSUaPHj2c61JSUgxJxk033XTe719SUmIUFxcbvXr1MgYNGuRcn5aWZkgyOnToYJSWljrXz50715BkDBgwwOU448ePNyQZubm5Ff6s0tJSIyIiwmjfvr3LMfPz842QkBCjW7du5b7De++9d97vUNnv9MorrxiSjLVr17q0HzNmjCHJWLx4sXNd69atjY4dOxrFxcUubfv372+Eh4e71A9YFcNYgMW89dZb2rp1a7nlzHDKuVx33XXavXu3xo4dq08//VR5eXmV/rkpKSmSVK6n4LrrrtOVV16p9evXS5K2bNkih8OhIUOGuLS7/vrry90tdsYdd9xx1vULFy5Up06d5OPjI09PT3l5eWn9+vX67rvvyrW99dZbVa/eb3/lXXnllZKkfv36ubQ7s/7w4cMVfFNp//79Onr0qO69916XY9avX1933HGHtmzZopMnT1a4/7lU5julpqYqICBAffv2ddn37rvvdvn8ww8/6L///a+GDRsmSSopKXEut956qzIzM7V///4q1QnUJoQdwGKuvPJKde7cudwSGBh43n0TEhL097//XVu2bFF8fLyCgoLUq1evCm9n/71ff/1VkpxDW78XERHh3H7mn6GhoeXanW1dRcdMSkrSww8/rC5duuhf//qXtmzZoq1bt6pv3746depUufaNGzd2+ezt7X3O9YWFhWet5fffoaLvWlZWppycnAr3r0hlv9Ovv/5aqfP3v//9T5I0adIkeXl5uSxjx46VJP3yyy8XXCdQ2zBnB4CTp6enJkyYoAkTJuj48eP67LPP9Mwzz6hPnz7KyMiQn59fhfsGBQVJkjIzM9W0aVOXbUePHnXO1znT7swv4t/Lyso6a++OzWYrt+6dd95RbGysFixY4LI+Pz//3F/SDX7/Xf/o6NGjqlevnho1anTBx63sdwoKCtLXX39dbv+srCyXz2fOeUJCggYPHnzWn9mqVasLrhOobejZAXBWDRs21J133qlHHnlEx44d06FDhyRJdrtdksr1ntx8882STv/C/r2tW7fqu+++U69evSRJXbp0kd1u14oVK1zabdmyRenp6ZWuz2azOWs5Y8+ePS53Q1WXVq1aqUmTJlq2bJnLxO+CggL961//ct6hdaEq+5169Oih/Px8rV271mX98uXLy9UZExOj3bt3n7W3r3PnzgoICLjgOoHahp4dAE633Xab2rVrp86dO+uyyy5Tenq65s6dq6ioKMXExEiS2rdvL0l6+eWXNXLkSHl5ealVq1Zq1aqV/vznP2vevHmqV6+e4uPjnXdjRUZG6oknnpB0ethowoQJmjlzpho1aqRBgwbpyJEjmjZtmsLDw13mwJxL//799be//U1Tp05Vjx49tH//fj333HOKjo4+691o7lSvXj3Nnj1bw4YNU//+/TVmzBg5HA7NmTNHx48f1wsvvFCl41b2O40cOVIvvfSShg8frunTp6tFixZau3atPv30U2d9Z7z22muKj49Xnz59NGrUKDVp0kTHjh3Td999px07dui99967uJMB1AZmz5AG4B5n7sbaunXrWbf369fvvHdjvfjii0a3bt2M4OBgw9vb22jWrJkxevRo49ChQy77JSQkGBEREUa9evUMSUZKSophGKfvUpo1a5bRsmVLw8vLywgODjaGDx9uZGRkuOxfVlZmTJ8+3WjatKnh7e1tXHXVVca///1vo0OHDi53HZ3rTiaHw2FMmjTJaNKkieHj42N06tTJ+OCDD4yRI0e6fM8zd2PNmTPHZf+Kjn2+8/h7H3zwgdGlSxfDx8fH8Pf3N3r16mV8+eWXlfo5Z1PZ72QYhnH48GFj8ODBRv369Y2AgADjjjvuMD7++GNDkvHhhx+6tN29e7cxZMgQIyQkxPDy8jLCwsKMm2++2Vi4cOF5awKswGYYlXj4BgBUs7S0NLVu3VpTp07V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GKjk5GSXdfPmzdN1112nw4cPq1mzZsrNzdWiRYv09ttv65ZbbpEkvfPOO4qMjNRnn32mPn36VPt3AAAANVutmqCcm5srm82mhg0bSpK2b9+u4uJixcXFOdtERESoXbt22rx5c4XHcTgcysvLc1kAANaUk5enX3OPK4e/6+usWjNBubCwUE8//bTuueceNWjQQJKUlZUlb29vNWrUyKVtaGiosrKyKjzWzJkzNW3atGqtFwBQNed6qecfVealnlv27lShwyEfu13xN/S4mNJQS9WKnp3i4mLdddddKisr06uvvnre9oZhyGazVbg9ISFBubm5ziUjI8Od5QIAgBqkxoed4uJiDRkyRGlpaUpOTnb26khSWFiYioqKlJOT47JPdna2QkNDKzym3W5XgwYNXBYAAGBNNTrsnAk6Bw4c0GeffaagoCCX7ddcc428vLxcJjJnZmbqm2++Ubdu3S51uQAAoAYydc7OiRMn9MMPPzg/p6WladeuXWrcuLEiIiJ05513aseOHfr3v/+t0tJS5zycxo0by9vbW4GBgRo9erQmTpyooKAgNW7cWJMmTVL79u2dd2cBAIC6zdSws23bNvXs2dP5ecKECZKkkSNHKjExUWvWrJEkXX311S77paSkKDY2VpL00ksvydPTU0OGDNGpU6fUq1cvLVmyRB4ePCkTAACYHHZiY2NlGEaF28+17QwfHx/NmzdP8+bNc2dpAADAImr0nB0AAICLRdgBAACWRtgBAACWVmueoAwAQFXc0uUGs0uAyQg7AABL8/LkV11dxxUAAMAFcPe7u1D9mLMDAAAsjZ4dAIClHTh8SCUlJfL09FRMs+ZmlwMTEHYAAJb2Q0a6Ch0O+djthJ06imEsAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaTxUEABgaQ0DGshhL5Ld29vsUmASwg4AwNK6XtXR7BJgMoaxAACApRF2AACApRF2AACApTFnBwBgaV/t2SlH0ekJyszfqZsIOwAASzuen6dCh0M+drvZpcAkDGMBAABLI+wAAABLI+wAAABLI+wAAABLI+wAAABLI+wAAABLI+wAAABLI+wAAABL46GCAABLaxEZpZKSEnl68iuvruLfPADA0mKaNTe7BJiMYSwAAGBphB0AAGBpDGMBACytuKTE+Wcv5u3USfxbBwBY2mf/+dL51vP4G3qYXQ5MwDAWAACwNFPDzueff67bbrtNERERstls+uCDD1y2G4ahxMRERUREyNfXV7Gxsdq3b59LG4fDoUcffVTBwcHy9/fXgAEDdOTIkUv4LQAAQE1matgpKChQhw4dNH/+/LNunz17tpKSkjR//nxt3bpVYWFh6t27t/Lz851txo8fr9WrV2v58uXatGmTTpw4of79+6u0tPRSfQ0AAFCDmTpnJz4+XvHx8WfdZhiG5s6dq8mTJ2vw4MGSpKVLlyo0NFTLli3TmDFjlJubq0WLFuntt9/WLbfcIkl65513FBkZqc8++0x9+vS5ZN8FAADUTDV2zk5aWpqysrIUFxfnXGe329WjRw9t3rxZkrR9+3YVFxe7tImIiFC7du2cbc7G4XAoLy/PZQEAANZUY8NOVlaWJCk0NNRlfWhoqHNbVlaWvL291ahRowrbnM3MmTMVGBjoXCIjI91cPQAAqClqbNg5w2azuXw2DKPcuj86X5uEhATl5uY6l4yMDLfUCgAAap4aG3bCwsIkqVwPTXZ2trO3JywsTEVFRcrJyamwzdnY7XY1aNDAZQEAANZUY8NOdHS0wsLClJyc7FxXVFSk1NRUdevWTZJ0zTXXyMvLy6VNZmamvvnmG2cbAABQt5l6N9aJEyf0ww8/OD+npaVp165daty4sZo1a6bx48drxowZiomJUUxMjGbMmCE/Pz/dc889kqTAwECNHj1aEydOVFBQkBo3bqxJkyapffv2zruzAAB12/XtO6rMKFM9W439/3tUM1PDzrZt29SzZ0/n5wkTJkiSRo4cqSVLlujJJ5/UqVOnNHbsWOXk5KhLly5at26dAgICnPu89NJL8vT01JAhQ3Tq1Cn16tVLS5YskYeHxyX/PgCAmqcRUxXqPJthGIbZRZgtLy9PgYGBys3NZf4OALjRh+mZlWo3MCr8gvf5/X5V2edC9rvY+lA9Kvv7mz49AABgabz1HABgaZm//KyyslLVq+eh8ODLzC4HJiDsAAAsbdf+b1XocMjHbld4cA+zy4EJGMYCAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAFiap4eHc0HdxBOUAQCW1vv67maXAJPRswMAACyNsAMAACyNsAMAACyNOTsAAEvb+8N+FReXyMvLU+1btDK7HJiAnh0AgKUd+V+W0jN/0pH/ZZldCkxC2AEAAJbGMBYAANXsw/TMSrcdGBVejZXUTfTsAAAASyPsAAAASyPsAAAASyPsAAAASyPsAAAASyPsAAAAS+PWcwCApYUFXaai4mJ5e3mZXQpMQtgBAFhax9ZtzC4BJmMYCwAAWFqVwk5aWpq76wAAAKgWVQo7LVq0UM+ePfXOO++osLDQ3TUBAAC4TZXCzu7du9WxY0dNnDhRYWFhGjNmjL7++mt31wYAwEVL2bpFa79MVcrWLWaXApNUKey0a9dOSUlJ+umnn7R48WJlZWWpe/fuatu2rZKSkvTzzz+7u04AAKqksMihQodDhUUOs0uBSS5qgrKnp6cGDRqklStXatasWTp48KAmTZqkpk2basSIEcrMrPxbXgEAAKrDRYWdbdu2aezYsQoPD1dSUpImTZqkgwcPasOGDfrpp580cOBAd9UJAABQJVV6zk5SUpIWL16s/fv369Zbb9Vbb72lW2+9VfXqnc5O0dHReu2119S6dWu3FgsAAHChqhR2FixYoPvvv1/33XefwsLCztqmWbNmWrRo0UUVBwAAcLGqFHYOHDhw3jbe3t4aOXJkVQ4PAADgNlWas7N48WK999575da/9957Wrp06UUXBQAA4C5VCjsvvPCCgoODy60PCQnRjBkzLrooAAAAd6lS2ElPT1d0dHS59VFRUTp8+PBFF3VGSUmJnn32WUVHR8vX11eXX365nnvuOZWVlTnbGIahxMRERUREyNfXV7Gxsdq3b5/bagAAALVblebshISEaM+ePWrevLnL+t27dysoKMgddUmSZs2apYULF2rp0qVq27attm3bpvvuu0+BgYF6/PHHJUmzZ89WUlKSlixZopYtW2r69Onq3bu39u/fr4CAALfVAgCondpd0VKlZaXyqOdhdikwSZXCzl133aXHHntMAQEBuummmyRJqampevzxx3XXXXe5rbivvvpKAwcOVL9+/SRJzZs317vvvqtt27ZJOt2rM3fuXE2ePFmDBw+WJC1dulShoaFatmyZxowZ47ZaAAC1U2RYuNklwGRVGsaaPn26unTpol69esnX11e+vr6Ki4vTzTff7NY5O927d9f69ev1/fffSzrdc7Rp0ybdeuutkk6/fT0rK0txcXHOfex2u3r06KHNmzdXeFyHw6G8vDyXBQAAWFOVena8vb21YsUK/e1vf9Pu3bvl6+ur9u3bKyoqyq3FPfXUU8rNzVXr1q3l4eGh0tJSPf/887r77rslSVlZWZKk0NBQl/1CQ0OVnp5e4XFnzpypadOmubVWAABQM1Up7JzRsmVLtWzZ0l21lLNixQq98847WrZsmdq2batdu3Zp/PjxioiIcHmGj81mc9nPMIxy634vISFBEyZMcH7Oy8tTZGSk+78AAMB0+QUFzt8LAf7+ZpcDE1Qp7JSWlmrJkiVav369srOzXe6OkqQNGza4pbi//OUvevrpp53zgNq3b6/09HTNnDlTI0eOdD69OSsrS+Hhv43JZmdnl+vt+T273S673e6WGgEANdumXdtU6HDIx25X/A09zC4HJqhS2Hn88ce1ZMkS9evXT+3atTtnL8rFOHnypPN9W2d4eHg4w1V0dLTCwsKUnJysjh07SpKKioqUmpqqWbNmVUtNAACgdqlS2Fm+fLlWrlzpnChcXW677TY9//zzatasmdq2baudO3cqKSlJ999/v6TTw1fjx4/XjBkzFBMTo5iYGM2YMUN+fn665557qrU2AABQO1R5gnKLFi3cXUs58+bN05QpUzR27FhlZ2crIiJCY8aM0V//+ldnmyeffFKnTp3S2LFjlZOToy5dumjdunU8YwcA3OjD9MxKtx0Yxa3eqFmqdOv5xIkT9fLLL8swDHfX4yIgIEBz585Venq6Tp06pYMHD2r69Ony9vZ2trHZbEpMTFRmZqYKCwuVmpqqdu3aVWtdAACg9qhSz86mTZuUkpKitWvXqm3btvLy8nLZvmrVKrcUBwAAcLGqFHYaNmyoQYMGubsWAAAAt6tS2Fm8eLG76wAAAKgWVZqzI51+I/lnn32m1157Tfn5+ZKko0eP6sSJE24rDgAA4GJVqWcnPT1dffv21eHDh+VwONS7d28FBARo9uzZKiws1MKFC91dJwAAQJVU+aGCnTt31u7duxUUFORcP2jQID3wwANuKw4AgIvVs/P1532NEKytyndjffnlly63gEtSVFSUfvrpJ7cUBgCAO/jweqA6r0pzdsrKylRaWlpu/ZEjR3iYHwAAqFGqFHZ69+6tuXPnOj/bbDadOHFCU6dOrfZXSAAAAFyIKg1jvfTSS+rZs6fatGmjwsJC3XPPPTpw4ICCg4P17rvvurtGAACqLO2nIyopLZGnh6eimzQ1uxyYoEphJyIiQrt27dK7776rHTt2qKysTKNHj9awYcPk6+vr7hoBAKiy/x46qEKHQz52O2GnjqpS2JEkX19f3X///c43kAMAANREVQo7b7311jm3jxgxokrFAAAAuFuVn7Pze8XFxTp58qS8vb3l5+dH2AEAADVGle7GysnJcVlOnDih/fv3q3v37kxQBgAANUqV3431RzExMXrhhRfK9foAAACYyW1hR5I8PDx09OhRdx4SAADgolRpzs6aNWtcPhuGoczMTM2fP1833HCDWwoDAABwhyqFndtvv93ls81m02WXXaabb75ZL774ojvqAgAAcIsqhZ2ysjJ31wEAQLWo7+snL09P2b28z98YllTlhwoCAFAb3NjpWrNLgMmqFHYmTJhQ6bZJSUlV+REAAABuUaWws3PnTu3YsUMlJSVq1aqVJOn777+Xh4eHOnXq5Gxns9ncUyUAAEAVVSns3HbbbQoICNDSpUvVqFEjSacfNHjffffpxhtv1MSJE91aJAAAQFVVKey8+OKLWrdunTPoSFKjRo00ffp0xcXFEXYAADXG1n17VFRcLG8vL13b9iqzy4EJqvRQwby8PP3vf/8rtz47O1v5+fkXXRQAAO7yy/EcZR/7Vb8czzG7FJikSmFn0KBBuu+++/T+++/ryJEjOnLkiN5//32NHj1agwcPdneNAAAAVValYayFCxdq0qRJGj58uIqLi08fyNNTo0eP1pw5c9xaIAAAwMWoUtjx8/PTq6++qjlz5ujgwYMyDEMtWrSQv7+/u+sDAAC4KBf1ItDMzExlZmaqZcuW8vf3l2EY7qoLAADALaoUdn799Vf16tVLLVu21K233qrMzExJ0gMPPMCdWAAAoEapUth54okn5OXlpcOHD8vPz8+5fujQofrkk0/cVhwAAMDFqtKcnXXr1unTTz9V06ZNXdbHxMQoPT3dLYUBAAC4Q5V6dgoKClx6dM745ZdfZLfbL7ooAAAAd6lS2Lnpppv01ltvOT/bbDaVlZVpzpw56tmzp9uKAwDgYjWPaKorIqPUPKLp+RvDkqo0jDVnzhzFxsZq27ZtKioq0pNPPql9+/bp2LFj+vLLL91dIwAAVXZl9BVmlwCTValnp02bNtqzZ4+uu+469e7dWwUFBRo8eLB27typK67gogIAADXHBffsFBcXKy4uTq+99pqmTZtWHTUB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sAMAACyNsAMAACyNsAMAACyNsAMAACyNsAMAACyNsAMAACyNsAOg1tq8ebM8PDzUt29fs0sBUIPxBGUAtdYDDzyg+vXr64033tC3336rZs2amV0SgBqInh0AtVJBQYFWrlyphx9+WP3799eSJUtctq9Zs0YxMTHy9fVVz549tXTpUtlsNh0/ftzZZvPmzbrpppvk6+uryMhIPfbYYyooKLi0XwRAtSPsAKiVVqxYoVatWqlVq1YaPny4Fi9erDMd1YcOHdKdd96p22+/Xbt27dKYMWM0efJkl/337t2rPn36aPDgwdqzZ49WrFihTZs2ady4cWZ8HQDViGEsALXSDTfcoCFDhujxxx9XSUmJwsPD9e677+qWW27R008/rY8++kh79+51tn/22Wf1/PPPKycnRw0bNtSIESPk6+ur1157zdlm06ZN6tGjhwoKCuTj42PG1wJQDejZAVDr7N+/X19//bXuuusuSZKnp6eGDh2qN99807n92muvddnnuuuuc/m8fft2LVmyRPXr13cuffr0UVlZmdLS0i7NFwFwSXiaXQAAXKhFixappKRETZo0ca4zDENeXl7KycmRYRiy2Wwu+/yxE7usrExjxozRY489Vu74THQGrIWwA6BWKSkp0VtvvaUXX3xRcXFxLtvuuOMO/fOf/1Tr1q318ccfu2zbtm2by+dOnTpp3759atGiRbXXDMBczNkBUKt88MEHGjp0qLKzsxUYGOiybfLkyfr444+1atUqtWrVSk888YRGjx6tXbt2aeLEiTpy5IiOHz+uwMBA7dmzR9dff73uu+8+Pfjgg/L399d3332n5ORkzZs3z6RvB6A6MGcHQK2yaNEi3XLLLeWCjnS6Z2fXrl3KycnR+++/r1WrVumqq67SggULnHdj2e12SdJVV12l1NRUHThwQDfeeKM6duyoKVOmKDw8/JJ+HwDVj54dAHXC888/r4ULFyojI8PsUgBcYszZAWBJr776qq699loFBQXpyy+/1Jw5c3iGDlBHEXYAWNKBAwc0ffp0HTt2TM2aNdPEiROVkJBgdlkATMAwFgAAsDQmKAMAAEsj7AAAAEsj7AAAAEsj7AAAAEsj7AAAAEsj7AAAAEsj7AAAAEsj7AAAAEsj7AAAAEv7/wCei+V6zVCUlAAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "bin_edges = [i - 0.5 for i in range(1, 36)]\n", + "\n", + "plt.hist(ages_population2_df, bins=bin_edges, rwidth=0.8, color='powderblue')\n", + "\n", + "# Calculate the mean\n", + "mean_value = ages_population2_df['observation'].mean()\n", + "\n", + "# Display the mean as a vertical line on the histogram\n", + "plt.axvline(mean_value, color='cadetblue', linestyle='dashed', linewidth=2, label=f'Mean: {mean_value}')\n", + "\n", + "plt.xlabel('Age')\n", + "plt.ylabel('Frequency')\n", + "plt.title('Histogram of age')\n", + "\n", + "plt.legend()\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 4.- What do you see? Is there any difference with the frequency distribution in step 1?" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The distribution appears to be unimodal (having one mode) and skewed to the right. Vs almost perfect normal distribution in the previous graph.\n", + "\n", + "This means that the majority of individuals in the dataset are concentrated in the younger age groups, with fewer individuals in the older age groups. Vs previous graph where age distribution is more sparsed.\n", + "\n", + "The mode appears to be in the age group around 26.0.\n", + "\n", + "There are very few individuals in the age groups 19.0, 34.0, 35.0, and 36.0, which can be considered outliers or less common age groups in the dataset. There is less outliers value in the previous data set (one above 80)\n", + "\n", + "Standard deviation is very narrowed, compared to previous distribution where the spread was large." + ] + }, + { + "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": 205, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The mean age is 27.16\n", + "The standard deviation for age is 2.969813932689186\n" + ] + } + ], + "source": [ + "# your code here\n", + "mean_age = ages_population2_df['observation'].mean()\n", + "print(f\"The mean age is {mean_age:.2f}\")\n", + "\n", + "\n", + "std_age = ages_population2_df['observation'].std()\n", + "print(f\"The standard deviation for age is {std_age}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Age mean is younger and the spread is very narrowed, indicated high concentration of individuals around the mean." + ] + }, + { + "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": 207, + "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", + "
observation
021.0
121.0
224.0
331.0
454.0
552.0
637.0
769.0
836.0
930.0
\n", + "
" + ], + "text/plain": [ + " observation\n", + "0 21.0\n", + "1 21.0\n", + "2 24.0\n", + "3 31.0\n", + "4 54.0\n", + "5 52.0\n", + "6 37.0\n", + "7 69.0\n", + "8 36.0\n", + "9 30.0" + ] + }, + "execution_count": 207, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# your code here\n", + "ages_population3 = pd.read_csv('/Users/amandine/Desktop/Ironhack/03_Week/Descriptive-Stats/data/ages_population3.csv')\n", + "ages_population3.head(10)" + ] + }, + { + "cell_type": "code", + "execution_count": 209, + "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", + "
observation
count1000.000000
mean41.989000
std16.144706
min1.000000
25%30.000000
50%40.000000
75%53.000000
max77.000000
\n", + "
" + ], + "text/plain": [ + " observation\n", + "count 1000.000000\n", + "mean 41.989000\n", + "std 16.144706\n", + "min 1.000000\n", + "25% 30.000000\n", + "50% 40.000000\n", + "75% 53.000000\n", + "max 77.000000" + ] + }, + "execution_count": 209, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ages_population3.describe()" + ] + }, + { + "cell_type": "code", + "execution_count": 208, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
AgeFrequency
01.01
12.02
24.02
35.01
47.01
.........
7073.06
7174.06
7275.02
7376.01
7477.02
\n", + "

75 rows × 2 columns

\n", + "
" + ], + "text/plain": [ + " Age Frequency\n", + "0 1.0 1\n", + "1 2.0 2\n", + "2 4.0 2\n", + "3 5.0 1\n", + "4 7.0 1\n", + ".. ... ...\n", + "70 73.0 6\n", + "71 74.0 6\n", + "72 75.0 2\n", + "73 76.0 1\n", + "74 77.0 2\n", + "\n", + "[75 rows x 2 columns]" + ] + }, + "execution_count": 208, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "frequency_distribution = ages_population3['observation'].value_counts().sort_index().reset_index()\n", + "\n", + "frequency_distribution.columns = ['Age', 'Frequency']\n", + "\n", + "frequency_distribution" + ] + }, + { + "cell_type": "code", + "execution_count": 210, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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CAkJMbKzs02s/NryzTffGI0aNTLatGljjB071rGea2OO48ePG+Hh4cawYcOMr7/+2khNTTX+85//GD/++KOjDdem+k2bNs2oW7eu8e9//9tITU013nvvPaNmzZrG3LlzHW24LuVHmCmnW2+91XjkkUec1jVr1sx4+umnTaoIWVlZhiRj06ZNhmEYRnFxsREcHGzMnDnT0ebcuXNGQECAMX/+fLPKvKacPn3aaNKkibF27VqjS5cujjDDtTHPU089ZXTq1KnM7Vwbc/Tt29d46KGHnNYNHDjQGDx4sGEYXJeK4jZTOeTn52vHjh2KiYlxWh8TE6MtW7aYVBVOnTolSapTp44kKTU1VZmZmU7XyW63q0uXLlynajJ69Gj17dtXPXr0cFrPtTHPqlWrFBUVpbvvvltBQUFq27at/vGPfzi2c23M0alTJ61bt04//PCDJGnnzp3avHmz+vTpI4nrUlGWmAHYbL/99puKiopKvKm7Xr16Jd7ojephGIYmTJigTp06qVWrVpLkuBalXae0tLRqr/Fas3TpUn377bfatm1biW1cG/P89NNPmjdvniZMmKDJkyfrm2++0eOPPy673a6hQ4dybUzy1FNP6dSpU2rWrJnc3d1VVFSk6dOn67777pPEz0xFEWYqwGazOS0bhlFiHarHmDFjtGvXLm3evLnENq5T9UtPT9fYsWP12Wefydvbu8x2XJvqV1xcrKioKM2YMUOS1LZtW+3Zs0fz5s3T0KFDHe24NtVr2bJleuedd7RkyRK1bNlSKSkpGjdunEJDQxUfH+9ox3UpH24zlUNgYKDc3d1L9MJkZWWVSM248h577DGtWrVKGzZsUIMGDRzrg4ODJYnrZIIdO3YoKytLN998szw8POTh4aFNmzbplVdekYeHh+Pvn2tT/UJCQtSiRQundc2bN9fhw4cl8XNjlieeeEJPP/207r33XrVu3VpDhgzR+PHjlZSUJInrUlGEmXLw8vLSzTffrLVr1zqtX7t2rTp27GhSVdcewzA0ZswYrVixQuvXr1dERITT9oiICAUHBztdp/z8fG3atInrdIV1795du3fvVkpKiuMTFRWlBx54QCkpKbr++uu5Nia5/fbbS0xh8MMPPyg8PFwSPzdmyc3NlZub8z/B7u7ujkezuS4VZOLgY0s5/2j2ggULjL179xrjxo0zatSoYRw6dMjs0q4Zjz76qBEQEGBs3LjRyMjIcHxyc3MdbWbOnGkEBAQYK1asMHbv3m3cd999PMpokj8+zWQYXBuzfPPNN4aHh4cxffp048CBA8a//vUvw9fX13jnnXccbbg21S8+Pt6oX7++49HsFStWGIGBgcaTTz7paMN1KT/CTAW89tprRnh4uOHl5WW0a9fO8UgwqoekUj/JycmONsXFxcZzzz1nBAcHG3a73ejcubOxe/du84q+hl0YZrg25vnf//1fo1WrVobdbjeaNWtmvPnmm07buTbVLzs72xg7dqzRsGFDw9vb27j++uuNKVOmGHl5eY42XJfysxmGYZjZMwQAAHA5GDMDAAAsjTADAAAsjTADAAAsjTADAAAsjTADAAAsjTADAAAsjTADAAAsjTADAAAsjTADwCVt2bJF7u7u6t27t9mlAHBxzAAMwCWNGDFCNWvW1FtvvaW9e/eqYcOGZpcEwEXRMwPA5eTk5Gj58uV69NFHdccdd2jhwoVO21etWqUmTZrIx8dHXbt21aJFi2Sz2XTy5ElHmy1btqhz587y8fFRWFiYHn/8ceXk5FTviQCoFoQZAC5n2bJlioyMVGRkpAYPHqzk5GSd70Q+dOiQ/vznP+uuu+5SSkqKRo4cqSlTpjjtv3v3bvXq1UsDBw7Url27tGzZMm3evFljxowx43QAXGHcZgLgcm6//Xbdc889Gjt2rAoLCxUSEqJ3331XPXr00NNPP62PP/5Yu3fvdrR/5plnNH36dJ04cUK1atXS0KFD5ePjozfeeMPRZvPmzerSpYtycnLk7e1txmkBuELomQHgUvbv369vvvlG9957ryTJw8NDcXFx+uc//+nYfssttzjtc+uttzot79ixQwsXLlTNmjUdn169eqm4uFipqanVcyIAqo2H2QUAwB8tWLBAhYWFql+/vmOdYRjy9PTUiRMnZBiGbDab0z4XdjAXFxdr5MiRevzxx0scn4HEwNWHMAPAZRQWFmrx4sV68cUXFRMT47Rt0KBB+te//qVmzZrpk08+cdq2fft2p+V27dppz549aty48RWvGYD5GDMDwGV8+OGHiouLU1ZWlgICApy2TZkyRZ988olWrFihyMhIjR8/XsOHD1dKSoomTpyoI0eO6OTJkwoICNCuXbt022236cEHH9TDDz+sGjVqaN++fVq7dq3+/ve/m3R2AK4UxswAcBkLFixQjx49SgQZ6feemZSUFJ04cULvv/++VqxYoTZt2mjevHmOp5nsdrskqU2bNtq0aZMOHDigP/3pT2rbtq2effZZhYSEVOv5AKge9MwAsLzp06dr/vz5Sk9PN7sUACZgzAwAy3n99dd1yy23qG7duvryyy81e/Zs5pABrmGEGQCWc+DAAU2bNk3Hjx9Xw4YNNXHiRCUkJJhdFgCTcJsJAABYGgOAAQCApRFmAACApRFmAACApRFmAACApRFmAACApRFmAACApRFmAACApRFmAACApRFmAACApf0/7kGgZz9zfCQAAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "bin_edges = [i - 0.5 for i in range(1, 90)]\n", + "\n", + "plt.hist(ages_population3, bins=bin_edges, rwidth=0.8, color='powderblue')\n", + "\n", + "# Calculate the mean\n", + "mean_value = ages_population3['observation'].mean()\n", + "\n", + "# Display the mean as a vertical line on the histogram\n", + "plt.axvline(mean_value, color='cadetblue', linestyle='dashed', linewidth=2, label=f'Mean: {mean_value}')\n", + "\n", + "plt.xlabel('Age')\n", + "plt.ylabel('Frequency')\n", + "plt.title('Histogram of age')\n", + "\n", + "plt.legend()\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here we have two maximum.\n", + "\n", + "Normal distribution skewed to the right.\n", + "\n", + "Mean around 40/50 but withhigher standard deviation.\n", + "\n", + "Because if we look at the right, we have lots of values away from the mean, on the left we have values close to the mean." + ] + }, + { + "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": 212, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The mean age is 41.99\n", + "The standard deviation for age is 16.14\n" + ] + } + ], + "source": [ + "# your code here\n", + "mean_age = ages_population3['observation'].mean()\n", + "print(f\"The mean age is {mean_age:.2f}\")\n", + "\n", + "\n", + "std_age = ages_population3['observation'].std()\n", + "print(f\"The standard deviation for age is {std_age: .2f}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Value more sparsed and far away from the mean.\n", + "\n", + "Spread is larger." + ] + }, + { + "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": 213, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "the first quartile is 30.0\n", + "the second quartile is 40.0\n", + "the third quartile is 53.0\n", + "the fourth quartile is 77.0\n" + ] + } + ], + "source": [ + "# your code here\n", + "\n", + "sorted_ages = ages_population3['observation'].sort_values()\n", + "\n", + "q1 = np.quantile(sorted_ages, 0.25) \n", + "print(\"the first quartile is\", q1)\n", + "q2 = np.quantile(sorted_ages, 0.50)\n", + "print(\"the second quartile is\",q2)\n", + "q3 = np.quantile(sorted_ages, 0.75)\n", + "print(\"the third quartile is\", q3)\n", + "q4 = np.quantile(sorted_ages, 1)\n", + "print(\"the fourth quartile is\", q4)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Difference = |Mean - Median| = |41.99 - 40.0| = 1.99\n", + "\n", + "The result show that the data set is positively skewed. \n", + "\n", + "The small difference suggest a cluster around the median (40 yo).\n", + "\n", + "Very reduced spread, values highly concentrated around the median." + ] + }, + { + "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": 222, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "10th Percentile: 22.000\n", + "90th Percentile: 67.000\n" + ] + } + ], + "source": [ + "# Jesus' method\n", + "\n", + "#print(np.percentile(name of dataframe, % we want))\n", + "\n", + "percentiles = np.percentile(sorted_ages, [10, 90])\n", + "\n", + "print(f\"10th Percentile: {percentiles[0]:.3f}\")\n", + "print(f\"90th Percentile: {percentiles[1]:.3f}\")\n", + "\n", + "#Very skewed, difference between 2nd and 3rd quartile is lower than diff between 3rd and 4th quartile.\n", + "\n", + "#10th and 90th percentile are useful to identify outliers. Those are very far away from the mean and the IQR." + ] + }, + { + "cell_type": "code", + "execution_count": 243, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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wNLSEo8fP4YQAiqVSus1b3bEp6SkoH///hg2bFia43NAOZHxY9JEREYvKSkJ69evx4IFC9CkSROt59q3b4/vv/8e5cuXx969e7WeO3PmjNbX3t7euHz5MsqUKZPjMRNR3sMxTURk9Hbu3InOnTsjKioKDg4OWs9NmjQJe/fuxfbt21GuXDmMHDkSffv2RXh4OAIDA/Hvv//iyZMncHBwwMWLF1GrVi307t0b/fr1g52dHa5evYqQkBB88803Cl0dEeUWjmkiIqMXHByMRo0apUmYANnTFB4ejsePH2Pr1q3Yvn07qlatiqCgIM3sOSsrKwBA1apVERoaiuvXr8PPzw9eXl747LPP4OrqmqvXQ0TKYE8TEVEGvvjiCyxfvhx37txROhQiygM4pomI6P+WLVuGGjVqoHDhwjh+/DjmzZvHGkxEpMGkiYjo/65fv46ZM2fi0aNHKFmyJAIDAzFhwgSlwyKiPIK354iIiIh0wIHgRERERDpg0kRERESkAyZNRERERDpg0kRERESkAyZNRERERDpg0kRERESkAyZNRERERDpg0kRERESkAyZNRERERDr4HztO3TmyFIx7AAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "#Here we can try to do normal distribution to see if it's gonna be skewed to the left\n", + "\n", + "from scipy.stats import norm\n", + "\n", + "#ages_population3_bis = np.array(ages_population3, dtype=float)\n", + "\n", + "mean = np.mean(ages_population3)\n", + "std_dev = np.std(ages_population3)\n", + "\n", + "# Create a range of x-values (ages)\n", + "x = np.linspace(min(ages_population3), max(ages_population3), 1000)\n", + "\n", + "# Calculate the corresponding y-values using the normal distribution\n", + "y = norm.pdf(x, mean, std_dev)\n", + "\n", + "# Plot the normal distribution curve\n", + "plt.plot(x, y, 'b-', label='Normal Distribution')\n", + "\n", + "# Set the x-axis and y-axis labels\n", + "plt.xlabel('Age')\n", + "plt.ylabel('Probability Density')\n", + "plt.title('Normal Distribution of Age Data')\n", + "\n", + "# Add a legend\n", + "plt.legend()\n", + "\n", + "# Show the plot\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "\"\"\"\n", + "your comments here\n", + "\"\"\"\n", + "#Steps to analyse\n", + "\n", + "#1 do some cleaning\n", + "#2 do EDA -> Try to do something general for everything\n", + "#3 analysis\n", + "\n", + "#with enumerate function = make sure all the values are numerical\n", + "#but better to use enumerate(num) -> better to have random value so it is template \n", + "#then put num = name of the dataframe =ages3.np.select_dtypes(np.number) ???\n", + "#num = ages3.select_dtypes(np.number)" + ] + }, + { + "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": 283, + "metadata": {}, + "outputs": [], + "source": [ + "#we can put a function with \"warning ignore\" to ignore the warning function in Python" + ] + }, + { + "cell_type": "code", + "execution_count": 289, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Statistics for Neighborhood 1:\n", + " observation\n", + "count 1000.0000\n", + "mean 36.5600\n", + "std 12.8165\n", + "min 1.0000\n", + "25% 28.0000\n", + "50% 37.0000\n", + "75% 45.0000\n", + "max 82.0000\n", + "Statistics for Neighborhood 2:\n", + " observation\n", + "count 1000.000000\n", + "mean 27.155000\n", + "std 2.969814\n", + "min 19.000000\n", + "25% 25.000000\n", + "50% 27.000000\n", + "75% 29.000000\n", + "max 36.000000\n", + "Statistics for Neighborhood 3:\n", + " observations\n", + "count 1000.000000\n", + "mean 41.989000\n", + "std 16.144706\n", + "min 1.000000\n", + "25% 30.000000\n", + "50% 40.000000\n", + "75% 53.000000\n", + "max 77.000000\n" + ] + } + ], + "source": [ + "# Create a list of DataFrame objects for the three neighborhoods\n", + "neighborhoods = [ages_population_df, ages_population2_df, ages_population3] \n", + "\n", + "# Define the attributes you want to analyze\n", + "attributes = ['mean', 'std', 'min', 'max'] # Replace with actual attribute names from your dataset\n", + "\n", + "# Create a dictionary to store statistics for each neighborhood\n", + "neighborhood_stats = {}\n", + "\n", + "# Create string identifiers for neighborhoods\n", + "neighborhood_names = ['Neighborhood 1', 'Neighborhood 2', 'Neighborhood 3']\n", + "\n", + "# Calculate and store basic statistics for each attribute in each neighborhood\n", + "for i, neighborhood in enumerate(neighborhoods):\n", + " stats = neighborhood.describe()\n", + " neighborhood_stats[neighborhood_names[i]] = stats\n", + "\n", + "# Print and display statistics for each neighborhood and attribute\n", + "for neighborhood, stats in neighborhood_stats.items():\n", + " print(f\"Statistics for {neighborhood}:\")\n", + " print(stats)" + ] + }, + { + "cell_type": "code", + "execution_count": 292, + "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", + "
Neighborhood 1Neighborhood 2Neighborhood 3
mean36.560027.15500041.989000
std12.81652.96981416.144706
min1.000019.0000001.000000
25%28.000025.00000030.000000
50%37.000027.00000040.000000
75%45.000029.00000053.000000
max82.000036.00000077.000000
\n", + "
" + ], + "text/plain": [ + " Neighborhood 1 Neighborhood 2 Neighborhood 3\n", + "mean 36.5600 27.155000 41.989000\n", + "std 12.8165 2.969814 16.144706\n", + "min 1.0000 19.000000 1.000000\n", + "25% 28.0000 25.000000 30.000000\n", + "50% 37.0000 27.000000 40.000000\n", + "75% 45.0000 29.000000 53.000000\n", + "max 82.0000 36.000000 77.000000" + ] + }, + "execution_count": 292, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "data = {\n", + " 'Neighborhood 1': [36.5600, 12.8165, 1.0000, 28.0000, 37.0000, 45.0000, 82.0000],\n", + " 'Neighborhood 2': [27.1550, 2.969814, 19.0000, 25.0000, 27.0000, 29.0000, 36.0000],\n", + " 'Neighborhood 3': [41.9890, 16.144706, 1.0000, 30.0000, 40.0000, 53.0000, 77.0000]\n", + "}\n", + "\n", + "# Define attributes and create a DataFrame with neighborhoods as columns\n", + "attributes = ['mean', 'std', 'min', '25%', '50%', '75%', 'max']\n", + "neighborhood_stats_df = pd.DataFrame(data, index=attributes)\n", + "\n", + "# Display the DataFrame\n", + "neighborhood_stats_df" + ] + }, + { + "cell_type": "code", + "execution_count": 295, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAApMAAAHFCAYAAACuKXKKAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAABlOUlEQVR4nO3deVxN+f8H8NeVut1WtEcqJFu2yVIZZcluDDNjpzAxRcRghgbXMEUzlvlibENirDODse+yZcm+ZS/yJRlKIa2f3x9+93y7CnVVN7yej8d96HzO53zO+5z7ufe+fc4mE0IIEBERERFpoIy2AyAiIiKi9xeTSSIiIiLSGJNJIiIiItIYk0kiIiIi0hiTSSIiIiLSGJNJIiIiItIYk0kiIiIi0hiTSSIiIiLSGJNJIiIiItIYk8kicv78eQwYMACOjo7Q19eHkZERGjZsiLCwMDx+/Fjb4RU7X19fODg4aDuMd3bmzBl4enrC1NQUMpkMs2fPfusy//77L+RyOWQyGU6ePFn8Qb4jmUyGYcOGFVl7z58/h1KpRGRkZJG1+b7Ir9/LZDIolUq1sr1798LV1RWGhoaQyWTYuHEjAGDt2rWoXbs2FAoFZDIZzp49WyJxF1Zh3+O4uDjIZDLIZDKsWbMmz3ylUgmZTIZ///230LEsW7YMMpkMcXFxhV42MjISMpkMf/3111vrenl5oU6dOoVehyZU21Savj8+lO90KhlltR3Ah2Dx4sUICAiAs7MzxowZg1q1aiEzMxMnT57EggULcPToUWzYsEHbYRarCRMmYMSIEdoO450NHDgQz549w5o1a1C+fPkCfZmuWLECGRkZAIAlS5bA1dW1mKMsXZ4/f47JkycDePkD/LE7evQoKlWqJE0LIdC9e3dUr14dmzZtgqGhIZydnfHw4UP069cP7dq1w2+//Qa5XI7q1atrMfLXe5f3ODg4GF988QV0dXWLJJaOHTvi6NGjsLGxKZL2iOjdMZl8R0ePHoW/vz+8vb2xceNGyOVyaZ63tze+/fZb7NixQ4sRFq/nz5/DwMAAVatW1XYoReLixYvw8/ND+/btC7zM0qVLYWlpCXt7e6xevRozZ86EQqEoxiipNGvatKna9L179/D48WN07doVrVq1ksqPHDmCzMxM9O3bF56enkWy7rS0NOjr60MmkxVJe++qffv22L59OxYsWIDAwMAiadPCwgIWFhZF0pa2CSHw4sULbYdB9M54mPsdhYSEQCaTYdGiRWqJpIqenh4+++wzaTonJwdhYWGoUaMG5HI5LC0t0b9/f9y9e1dtOdUhlqNHj8Ld3R0KhQIODg4IDw8HAGzduhUNGzaEgYEBXFxc8iSsqsNIZ86cQbdu3WBiYgJTU1P07dsXDx8+VKu7du1atGnTBjY2NlAoFKhZsya+//57PHv2TK2er68vjIyMcOHCBbRp0wbGxsbSj2N+h0T+/PNPNGnSBKampjAwMECVKlUwcOBAtTp37txB3759YWlpCblcjpo1a2LGjBnIycmR6qgOmf3yyy+YOXMmHB0dYWRkBDc3Nxw7duxNb4/k4sWL6NKlC8qXLw99fX3Ur18fERER0nzVYaasrCzMnz9fOkT3NsePH8fFixfRr18/+Pn54cmTJ/j777/z1BNCICQkBPb29tDX14erqyt2794NLy+vPCM9KSkpGD16NBwdHaGnp4eKFSsiKCgoz/tRkP37JgsXLkT16tUhl8tRq1atfA9HJiQkYMiQIahUqRL09PTg6OiIyZMnIysrC8DL90b1wz558mRpv/n6+uLSpUuQyWT4888/pfZOnToFmUyG2rVrq63ns88+wyeffKJWtnbtWri5ucHQ0BBGRkZo27Ytzpw5kyfGkydP4rPPPkOFChWgr6+PBg0aYN26dWp1VO/v/v374e/vD3Nzc5iZmaFbt264d+9egfbXsmXL4OzsLPXT5cuX51sv92FupVIpjVJ+9913kMlkcHBwgK+vL5o1awYA6NGjB2QymVo/KMw27dq1CwMHDoSFhQUMDAyQnp5e4P2n+kzfuHEDHTp0gJGREezs7PDtt99K7bzpPX6bli1bom3btpgyZQpSU1PfWn/Pnj1o1aoVTExMYGBgAA8PD+zduzff7c59mLswny8AyMzMRHBwMGxtbWFiYoLWrVvj6tWr+cZ06NAhNG3aFAqFAhUrVsSECROQnZ2tVufx48cICAhAxYoVoaenhypVqiA4OFjahyqqU0wWLFiAmjVrQi6Xq30PpaamvrV/FvQ3BHj5H9169epBX18fFSpUQNeuXRETE5OnXkH79vz581GvXj0YGRnB2NgYNWrUwPjx4/OtSx8ZQRrLysoSBgYGokmTJgVeZvDgwQKAGDZsmNixY4dYsGCBsLCwEHZ2duLhw4dSPU9PT2FmZiacnZ3FkiVLxM6dO0WnTp0EADF58mTh4uIiVq9eLbZt2yaaNm0q5HK5+O9//ystP2nSJAFA2NvbizFjxoidO3eKmTNnCkNDQ9GgQQORkZEh1Z0yZYqYNWuW2Lp1q4iMjBQLFiwQjo6OokWLFmqx+/j4CF1dXeHg4CBCQ0PF3r17xc6dO6V59vb2Ut2oqCghk8lEz549xbZt28S+fftEeHi46Nevn1QnMTFRVKxYUVhYWIgFCxaIHTt2iGHDhgkAwt/fX6oXGxsrAAgHBwfRrl07sXHjRrFx40bh4uIiypcvL5KTk9+4z69cuSKMjY1F1apVxfLly8XWrVtFr169BAAxffp0KZajR48KAOLLL78UR48eFUePHn3r++nn5ycAiEuXLomUlBRhYGAgvLy88tQbN26cACAGDx4sduzYIRYvXiwqV64sbGxshKenp1Tv2bNnon79+sLc3FzMnDlT7NmzR/z666/C1NRUtGzZUuTk5BR4/74OAGFnZydq1aolVq9eLTZt2iTatWsnAIg///xTqnf//n1hZ2cn7O3txcKFC8WePXvElClThFwuF76+vkIIIV68eCF27NghAIhBgwZJ++3GjRtCCCFsbGzE4MGDpTanTZsmFAqFACD118zMTGFiYiLGjh0r1fvpp5+ETCYTAwcOFFu2bBHr168Xbm5uwtDQUFy6dEmqt2/fPqGnpyc+/fRTsXbtWrFjxw7h6+srAIjw8HCpXnh4uAAgqlSpIgIDA8XOnTvF77//LsqXL5+nn+dHtXyXLl3E5s2bxR9//CGqVasm7Z9X9++kSZOEEELEx8eL9evXCwAiMDBQHD16VJw+fVrcuHFDzJs3TwAQISEh4ujRo9J2FXabKlasKAYPHiy2b98u/vrrL5GVlVXg/efj4yP09PREzZo1xS+//CL27NkjJk6cKGQymZg8eXKB3uP8qD6zP//8szh79qyQyWRiwoQJ0nzV91Pu77wVK1YImUwmPv/8c7F+/XqxefNm0alTJ6GjoyP27NmTZ7tjY2OlsoJ+vvbv3y99l/Tp00ds3bpVrF69WlSuXFk4OTmJrKwsqa7qO9jW1lb85z//ETt37hTDhw8XAMTQoUOlemlpaaJu3brC0NBQ/PLLL2LXrl1iwoQJomzZsqJDhw55+kbFihVF3bp1xapVq8S+ffvExYsXC9U/C/obEhISIgCIXr16ia1bt4rly5eLKlWqCFNTU3Ht2rU8+/NtfXv16tVSP961a5fYs2ePWLBggRg+fPhr+wF9PJhMvoOEhAQBQPTs2bNA9WNiYgQAERAQoFZ+/PhxAUCMHz9eKvP09BQAxMmTJ6WyR48eCR0dHaFQKNQSx7NnzwoA4j//+Y9UpvqyHjlypNq6Vq5cKQCIP/74I98Yc3JyRGZmpjhw4IAAIM6dOyfN8/HxEQDE0qVL8yz3ajL5yy+/CABvTPS+//57AUAcP35crdzf31/IZDJx9epVIcT/fphcXFzUvuxPnDghAIjVq1e/dh1CCNGzZ08hl8vFnTt31Mrbt28vDAwM1GJ89YfiTZ49eyZMTExE06ZNpTIfHx8hk8nUfmgfP34s5HK56NGjh9ryquQ1949daGioKFOmjIiOjlar+9dffwkAYtu2bUKIgu3f1wEgFAqFSEhIkMqysrJEjRo1RLVq1aSyIUOGCCMjI3H79m215VXrViUlDx8+VEugcuvbt6+oUqWKNN26dWvh5+cnypcvLyIiIoQQQhw5ckQAELt27RJCCHHnzh1RtmxZERgYqNZWamqqsLa2Ft27d5fKatSoIRo0aCAyMzPV6nbq1EnY2NiI7OxsIcT/fjBf/eyFhYUJAOL+/fuv3V/Z2dnC1tZWNGzYUErmhRAiLi5O6OrqvjGZFEI9scpNldjkTuA12ab+/fur1SvM/lN9ptetW6dWt0OHDsLZ2VmaftN7nJ9Xt7lPnz7C0NBQ2s+vJpPPnj0TFSpUEJ07d1ZrJzs7W9SrV080btxYKns1mSzM50u1z19N8tatWycAqP0HUvUd/M8//6jV9fPzE2XKlJE+FwsWLMh3H06fPl2tXwvxsm+YmpqKx48fq9UtaP8s6G9IUlKSUCgUebbzzp07Qi6Xi969ewshCte3hw0bJsqVKyeI8sPD3CVo//79AJDn8FDjxo1Rs2bNPIdzbGxs1A79VahQAZaWlqhfvz5sbW2l8po1awIAbt++nWedffr0UZvu3r07ypYtK8UCALdu3ULv3r1hbW0NHR0d6OrqSudw5XdI5IsvvnjrtjZq1Eha37p16/Df//43T519+/ahVq1aaNy4sVq5r68vhBDYt2+fWnnHjh2ho6MjTdetWxdA/tv96npatWoFOzu7POt5/vw5jh49+tbtyc+6deuQkpKidmh54MCBEEJIpyMAwLFjx5Ceno7u3burLd+0adM8pwZs2bIFderUQf369ZGVlSW92rZtC5lMJl1NW5D9+yatWrWClZWVNK2jo4MePXrgxo0b0uGyLVu2oEWLFrC1tVWLRXU+6YEDBwq0nlu3biE2NhYvXrzA4cOH0a5dO7Ro0QK7d+8G8PLQplwulw777ty5E1lZWejfv7/aevX19eHp6Sntgxs3buDKlStSH89dt0OHDrh//36eQ5e5TzkBCtaHrl69inv37qF3795qpz7Y29vD3d39rfugMDTZplc/jwXdfyoymQydO3dWK6tbt+5bP1eFMXXqVGRmZkoX8bwqKioKjx8/ho+Pj1rMOTk5aNeuHaKjo/Oc5qFSmM+XSkH7gbGxcZ66vXv3Rk5ODg4ePAjg5feLoaEhvvzyS7V6qu/5V7/XW7ZsifLly2sUV0F/Q44ePYq0tLQ89ezs7NCyZUupXmH6duPGjZGcnIxevXrhn3/+0ehKfPpwMZl8B+bm5jAwMEBsbGyB6j969AgA8r0K0dbWVpqvUqFChTz19PT08pTr6ekBQL4ncltbW6tNly1bFmZmZtK6nj59ik8//RTHjx/H1KlTERkZiejoaKxfvx7AyxP6czMwMICJickbtxMAmjdvjo0bN0o/apUqVUKdOnWwevVqqc6jR49euy9U83MzMzNTm1ado/pqjK8q7HoKasmSJdDX10e7du2QnJyM5ORk1K1bFw4ODli2bJl0XpWq/dzJm8qrZQ8ePMD58+ehq6ur9jI2NoYQQvoCL8j+fZNX+0XuMlW8Dx48wObNm/PEojrfsSA/Jq1btwbwMmE8fPgwMjMz0bJlS7Ru3Vr6QduzZw88PDyki5YePHgA4GXC/Oq6165dK61XVW/06NF56gUEBOQboyZ9SLU/3rTPioom2/Rq3y7o/lMxMDCAvr6+WplcLi/SC0McHBwQEBCA33//HdevX88zXxXzl19+mSfm6dOnQwjx2lusFebzpVLQfpDf8q9+Th49egRra+s851hbWlqibNmyeb5f3nQV+tviKuhvSGHrFaRv9+vXD0uXLsXt27fxxRdfwNLSEk2aNJH+U0gfN17N/Q50dHTQqlUrbN++HXfv3lW7HUh+VF8U9+/fz1P33r17MDc3L/IYExISULFiRWk6KysLjx49kmLZt28f7t27h8jISLUrSpOTk/NtrzBXiXbp0gVdunRBeno6jh07htDQUPTu3RsODg5wc3ODmZkZ7t+/n2c51QnnRbU/imM9165dw+HDhwEAlStXzrfOzp070aFDB2lfq34wc0tISFAbPTE3N4dCocDSpUvzbTN3rG/bv2+SkJDw2jJVvObm5qhbty5++umnfNvIPTr+OpUqVUL16tWxZ88eODg4wNXVFeXKlUOrVq0QEBCA48eP49ixY2ojVqpt/Ouvv2Bvb//atlX1xo0bh27duuVbx9nZ+a0xvo1qf7xpnxUVTbbp1c9kQfdfSfvhhx+wdOlSjB8/Ps8FWKqY58yZk+dqeJW3JYYF+XwV1uvazL1eMzMzHD9+HEIItfciMTERWVlZeb5f3uVK+4L+huSu96r86hW0bw8YMAADBgzAs2fPcPDgQUyaNAmdOnXCtWvXSlVfo5LHZPIdjRs3Dtu2bYOfnx/++ecfaZRQJTMzEzt27EDnzp3RsmVLAMAff/whHaYEgOjoaMTExCA4OLjI41u5cqXaofJ169YhKytLusJR9cX26pXoCxcuLLIY5HI5PD09Ua5cOezcuRNnzpyBm5sbWrVqhdDQUJw+fRoNGzaU6i9fvhwymQwtWrQokvW3atUKGzZswL1799QSoOXLl8PAwOC1P15vsmTJEgAv7zFarVo1tXlpaWno0qULli5dig4dOqBJkyaQy+VYu3atWoJw7Ngx3L59W+3HrlOnTggJCYGZmRkcHR0LFMvr9u+b7N27Fw8ePJB+oLOzs7F27VpUrVpV+pHq1KkTtm3bhqpVq772sJxq/artzk/r1q2xbt062NnZoWPHjgCA6tWro3Llypg4cSIyMzOlEUwAaNu2LcqWLYubN2++8ZQKZ2dnODk54dy5cwgJCXnj9r4LZ2dn2NjYYPXq1Rg1apT0mbl9+zaioqIKlFQXZl3vuk0F3X+FUdCjAG9iZmaG7777DsHBwXkOWXt4eKBcuXK4fPlyoW+oX5jPV2GlpqZi06ZNaoefV61ahTJlyqB58+YAXn6/rFu3Dhs3bkTXrl2leqoronPfDupdFfQ3xM3NDQqFAn/88Qe++uorqd7du3exb98+6ZC8pn3b0NAQ7du3R0ZGBj7//HNcunSJyeRHjsnkO3Jzc8P8+fMREBCATz75BP7+/qhduzYyMzNx5swZLFq0CHXq1EHnzp3h7OyMwYMHY86cOShTpgzat2+PuLg4TJgwAXZ2dhg5cmSRx7d+/XqULVsW3t7euHTpEiZMmIB69epJ5xe5u7ujfPny+OabbzBp0iTo6upi5cqVOHfu3Dutd+LEibh79y5atWqFSpUqITk5Gb/++qva+ZgjR47E8uXL0bFjR/z444+wt7fH1q1b8dtvv8Hf37/IbuA8adIk6fy/iRMnokKFCli5ciW2bt2KsLAwmJqaFqq9rKwsLF++HDVr1sTXX3+db53OnTtj06ZNePjwISwsLDBq1CiEhoaifPny6Nq1K+7evYvJkyfDxsYGZcr872yToKAg/P3332jevDlGjhyJunXrIicnB3fu3MGuXbvw7bffokmTJgXav29ibm6Oli1bYsKECTA0NMRvv/2GK1euqN0e6Mcff8Tu3bvh7u6O4cOHw9nZGS9evEBcXBy2bduGBQsWoFKlSjA2Noa9vT3++ecftGrVChUqVIC5ubn0I96qVSv89ttv+Pfff9WeKNSqVSuEh4ejfPnyav/hcXBwwI8//ojg4GDcunUL7dq1Q/ny5fHgwQOcOHEChoaG0kjmwoUL0b59e7Rt2xa+vr6oWLEiHj9+jJiYGJw+fVrttkSaKlOmDKZMmYKvv/4aXbt2hZ+fH5KTk6FUKov8MDfw7ttUmP1XUG97jwsqKCgI8+bNw/bt29XKjYyMMGfOHPj4+ODx48f48ssvYWlpiYcPH+LcuXN4+PAh5s+fn2+bFSpUKPDnq7DMzMzg7++PO3fuoHr16ti2bRsWL14Mf39/6YhE//79MW/ePPj4+CAuLg4uLi44fPgwQkJC0KFDB7X/KL2rgv6GlCtXDhMmTMD48ePRv39/9OrVC48ePcLkyZOhr6+PSZMmAShc3/bz84NCoYCHhwdsbGyQkJCA0NBQmJqaqiW29JHS6uU/H5CzZ88KHx8fUblyZaGnpyfdgmfixIkiMTFRqpednS2mT58uqlevLnR1dYW5ubno27eviI+PV2vP09NT1K5dO8967O3tRceOHfOU45WrkFVXS546dUp07txZGBkZCWNjY9GrVy/x4MEDtWWjoqKEm5ubMDAwEBYWFuLrr78Wp0+fznMrEh8fH2FoaJjv9r96NfeWLVtE+/btRcWKFYWenp6wtLQUHTp0EIcOHVJb7vbt26J3797CzMxM6OrqCmdnZ/Hzzz9LV6wK8fqrYVXbXZArTC9cuCA6d+4sTE1NhZ6enqhXr57atuVu721Xc2/cuFEAELNnz35tHdWtVGbMmCGEeHmV/NSpU0WlSpWEnp6eqFu3rtiyZYuoV6+e6Nq1q9qyT58+FT/88INwdnYWenp6wtTUVLi4uIiRI0dKV2AXdP/mR7WNv/32m6hatarQ1dUVNWrUECtXrsxT9+HDh2L48OHC0dFR6OrqigoVKohPPvlEBAcHi6dPn0r19uzZIxo0aCDkcrkAIHx8fKR5SUlJokyZMsLQ0FDtllSqOwt069bttfu5RYsWwsTERMjlcmFvby++/PJLtdvECCHEuXPnRPfu3YWlpaXQ1dUV1tbWomXLlmLBggVSHdXVsq9eJa+6unf//v1v3W+///67cHJyEnp6eqJ69epi6dKlefq9EO9+Nfe7bpNKQfbf6z7Tqu+P3N70Hr/qTZ/ZRYsWCQB5bg0khBAHDhwQHTt2FBUqVBC6urqiYsWKomPHjmr7KL9bAxX08/W6fa6KN/d3guo7ODIyUri6ugq5XC5sbGzE+PHj81xp/+jRI/HNN98IGxsbUbZsWWFvby/GjRsnXrx4oVbvdd8vhemfBf0NEeJln61bt670PdKlSxe1W0Plrve2vh0RESFatGghrKyshJ6enrC1tRXdu3cX58+fz9MefXxkQghRMmkrlSSlUonJkyfj4cOHxXIuJr272NhY1KhRA5MmTeKNf4mKGD9fRCWHh7mJSsC5c+ewevVquLu7w8TEBFevXkVYWBhMTEwwaNAgbYdH9F7j54tIu5hMEpUAQ0NDnDx5EkuWLEFycjJMTU3h5eWFn3766bVXqRJRwfDzRaRdPMxNRERERBrjTcuJiIiISGNMJomIiIhIY0wmiYiIiEhjH/wFODk5Obh37x6MjY3f6TFWREREVHKEEEhNTYWtre073Xyeit8Hn0zeu3cPdnZ22g6DiIiINBAfH5/nWeRUunzwyaSxsTGAl53RxMREy9EQERFRQaSkpMDOzk76HafS64NPJlWHtk1MTJhMEhERvWd4ilrpx5MQiIiIiEhjTCaJiIiISGNMJomIiIhIYx/8OZNERET04crOzkZmZqa2w/jg6OnpFfiWTEwmiYiI6L0jhEBCQgKSk5O1HcoHqUyZMnB0dISent5b6zKZJCIioveOKpG0tLSEgYEBr/ouQqoHvty/fx+VK1d+675lMklERETvlezsbCmRNDMz03Y4HyQLCwvcu3cPWVlZ0NXVfWNdXoBDRERE7xXVOZIGBgZajuTDpTq8nZ2d/da6TCaJiIjovcRD28WnMPuWySQRERERaYzJJBEREdE78vLyQlBQkDTt4OCA2bNnay2eksRkkoiIiD4KUVFR0NHRQbt27dTKlUol6tevn6e+TCbDxo0bC9T2+vXrMWXKlCKI8n8iIyMhk8lK/e2PmEwSERHRR2Hp0qUIDAzE4cOHcefOnSJpU3UxUIUKFWBsbFwkbb5vmEwSERHRB+/Zs2dYt24d/P390alTJyxbtgwAsGzZMkyePBnnzp2DTCaDTCbDsmXL4ODgAADo2rUrZDKZNK0axVy6dCmqVKkCuVwOIUSew9wAkJqait69e8PIyAi2traYM2eONC8uLg4ymQxnz56VypKTkyGTyRAZGYm4uDi0aNECAFC+fHnIZDL4+voCeHnD9rCwMFSpUgUKhQL16tXDX3/9JbWTlJSEPn36wMLCAgqFAk5OTggPDy/S/Zkb7zNJREREH7y1a9fC2dkZzs7O6Nu3LwIDAzFhwgT06NEDFy9exI4dO7Bnzx4AgKmpKTp27AhLS0uEh4ejXbt20NHRkdq6ceMG1q1bh7///lut/FU///wzxo8fD6VSiZ07d2LkyJGoUaMGvL293xqvnZ0d/v77b3zxxRe4evUqTExMoFAoAAA//PAD1q9fj/nz58PJyQkHDx5E3759YWFhAU9PT0yYMAGXL1/G9u3bYW5ujhs3biAtLe0d9+DrMZmkUu/u94cKVb/StE+LKRIiInpfLVmyBH379gUAtGvXDk+fPsXevXvRunVrGBkZoWzZsrC2tpbqqxK3cuXKqZUDQEZGBlasWAELC4s3rtPDwwPff/89AKB69eo4cuQIZs2aVaBkUkdHBxUqVAAAWFpaoly5cgBejrDOnDkT+/btg5ubGwCgSpUqOHz4MBYuXAhPT0/cuXMHDRo0gKurKwBIo6rFhYe5iYiI6IN29epVnDhxAj179gQAlC1bFj169MDSpUs1as/e3v6tiSQAKdnLPR0TE6PROlUuX76MFy9ewNvbG0ZGRtJr+fLluHnzJgDA398fa9asQf369TF27FhERUW90zrfhiOTRERE9EFbsmQJsrKyULFiRalMCAFdXV0kJSUVuj1DQ0ONY1HdDLxMmTJSHCqqi3neJCcnBwCwdetWte0BALlcDgBo3749bt++ja1bt2LPnj1o1aoVhg4dil9++UXjuN+EySQRERF9sLKysrB8+XLMmDEDbdq0UZv3xRdfYOXKldDT08v3sYG6uroFepzg6xw7dizPdI0aNQBAGtm8f/8+GjRoAABqF+MA+T/SsFatWpDL5bhz5w48PT1fu24LCwv4+vrC19cXn376KcaMGVNsyaRWD3NnZWXhhx9+gKOjIxQKBapUqYIff/xRyrqBlxm7UqmEra0tFAoFvLy8cOnSJS1GTURERO+LLVu2ICkpCYMGDUKdOnXUXl9++SWWLFkCBwcHxMbG4uzZs/j333+Rnp4O4OW5hnv37kVCQoJGI5hHjhxBWFgYrl27hnnz5uHPP//EiBEjALw8J7Np06aYNm0aLl++jIMHD+KHH35QW97e3h4ymQxbtmzBw4cP8fTpUxgbG2P06NEYOXIkIiIicPPmTZw5cwbz5s1DREQEAGDixIn4559/cOPGDVy6dAlbtmxBzZo133FPvp5Wk8np06djwYIFmDt3LmJiYhAWFoaff/5Z7dL5sLAwzJw5E3PnzkV0dDSsra3h7e2N1NRULUZORERE74MlS5agdevWMDU1zTPviy++wNmzZ1G1alW0a9cOLVq0gIWFBVavXg0AmDFjBnbv3g07Oztp9LAwvv32W5w6dQoNGjTAlClTMGPGDLRt21aav3TpUmRmZsLV1RUjRozA1KlT1ZavWLEiJk+ejO+//x5WVlYYNmwYAGDKlCmYOHEiQkNDUbNmTbRt2xabN2+Go6MjgJcjmuPGjUPdunXRvHlz6OjoYM2aNYWOv6BkIvfB+hLWqVMnWFlZYcmSJVLZF198AQMDA6xYsQJCCNja2iIoKAjfffcdACA9PR1WVlaYPn06hgwZ8tZ1pKSkwNTUFE+ePIGJiUmxbQsVH17NTUT08XnT7/eLFy8QGxsLR0dH6OvraynCD1th9rFWRyabNWuGvXv34tq1awCAc+fO4fDhw+jQoQMAIDY2FgkJCWrnOMjlcnh6er72yqT09HSkpKSovYiIiIioeGj1ApzvvvsOT548QY0aNaCjo4Ps7Gz89NNP6NWrFwAgISEBAGBlZaW2nJWVFW7fvp1vm6GhoZg8eXLxBk5EREREALQ8Mrl27Vr88ccfWLVqFU6fPo2IiAj88ssv0gmkKqrL6FWEEHnKVMaNG4cnT55Ir/j4+GKLn4iIiOhjp9WRyTFjxuD777+XbiLq4uKC27dvIzQ0FD4+PtId5xMSEmBjYyMtl5iYmGe0UkUul0v3WSIiIiKi4qXVkcnnz59LN+1U0dHRkW4N5OjoCGtra+zevVuan5GRgQMHDsDd3b1EYyUiIiKivLQ6Mtm5c2f89NNPqFy5MmrXro0zZ85g5syZGDhwIICXh7eDgoIQEhICJycnODk5ISQkBAYGBujdu7c2QyciIiIiaDmZnDNnDiZMmICAgAAkJibC1tYWQ4YMwcSJE6U6Y8eORVpaGgICApCUlIQmTZpg165dMDY21mLkRERERARo+T6TJYH3mXz/8T6TREQfH95nUrvem/tMEhEREdH7jckkEREREWlMq+dMEhERERUlh++3lti64qZ1LLF1lWYcmSQiIiIijTGZJCIiIiohXl5eCAwMRFBQEMqXLw8rKyssWrQIz549w4ABA2BsbIyqVati+/bt0jKXL19Ghw4dYGRkBCsrK/Tr1w///vuvNH/Hjh1o1qwZypUrBzMzM3Tq1Ak3b96U5sfFxUEmk2H9+vVo0aIFDAwMUK9ePRw9erRItonJJBEREVEJioiIgLm5OU6cOIHAwED4+/vjq6++gru7O06fPo22bduiX79+eP78Oe7fvw9PT0/Ur18fJ0+exI4dO/DgwQN0795dau/Zs2cYNWoUoqOjsXfvXpQpUwZdu3aVHgKjEhwcjNGjR+Ps2bOoXr06evXqhaysrHfeHt4aiEo93hqIiOjtPrTvSk1vDVTaz5n08vJCdnY2Dh16+X5lZ2fD1NQU3bp1w/LlywH87zHSR48exbZt23D8+HHs3LlTauPu3buws7PD1atXUb169TzrePjwISwtLXHhwgXUqVMHcXFxcHR0xO+//45BgwYBeDnaWbt2bcTExKBGjRp52uCtgYiIiIhKqbp160p/6+jowMzMDC4uLlKZlZUVACAxMRGnTp3C/v37YWRkJL1UyZ/qUPbNmzfRu3dvVKlSBSYmJnB0dAQA3Llz57XrtbGxkdbxrng1NxEREVEJ0tXVVZuWyWRqZTKZDACQk5ODnJwcdO7cGdOnT8/Tjioh7Ny5M+zs7LB48WLY2toiJycHderUQUZGxmvXm3sd74rJJBEREVEp1bBhQ/z9999wcHBA2bJ507ZHjx4hJiYGCxcuxKefvjx14fDhwyUaIw9zExEREZVSQ4cOxePHj9GrVy+cOHECt27dwq5duzBw4EBkZ2ejfPnyMDMzw6JFi3Djxg3s27cPo0aNKtEYmUwSERERlVK2trY4cuQIsrOz0bZtW9SpUwcjRoyAqakpypQpgzJlymDNmjU4deoU6tSpg5EjR+Lnn38u0Rh5mJuIiIg+GKX9qTSRkZF5yuLi4vKU5b7ZjpOTE9avX//aNlu3bo3Lly+/dnkHBwe8evOecuXK5SnTFEcmiYiIiEhjTCaJiIiISGNMJomIiIhIY0wmiYiIiEhjTCaJiIiISGNMJomIiIhIY0wmiYiIiEhjTCaJiIiISGNMJomIiIhIY0wmiYiIiN4TcXFxkMlkOHv2rLZDkfBxikRERPThUJqW4LqeFFlTvr6+SE5OxsaNG4uszZLCkUkiIiIi0hiTSSIiIqIS8tdff8HFxQUKhQJmZmZo3bo1xowZg4iICPzzzz+QyWSQyWSIjIwEAJw4cQINGjSAvr4+XF1dcebMGe1uQD54mJuIiIioBNy/fx+9evVCWFgYunbtitTUVBw6dAj9+/fHnTt3kJKSgvDwcABAhQoV8OzZM3Tq1AktW7bEH3/8gdjYWIwYMULLW5EXk0kiIiKiEnD//n1kZWWhW7dusLe3BwC4uLgAABQKBdLT02FtbS3VX7ZsGbKzs7F06VIYGBigdu3auHv3Lvz9/bUS/+vwMDcRERFRCahXrx5atWoFFxcXfPXVV1i8eDGSkpJeWz8mJgb16tWDgYGBVObm5lYSoRYKk0kiIiKiEqCjo4Pdu3dj+/btqFWrFubMmQNnZ2fExsbmW18IUcIRaobJJBEREVEJkclk8PDwwOTJk3HmzBno6elhw4YN0NPTQ3Z2tlrdWrVq4dy5c0hLS5PKjh07VtIhvxWTSSIiIqIScPz4cYSEhODkyZO4c+cO1q9fj4cPH6JmzZpwcHDA+fPncfXqVfz777/IzMxE7969UaZMGQwaNAiXL1/Gtm3b8Msvv2h7M/LQajLp4OAgXQKf+zV06FAAL4d3lUolbG1toVAo4OXlhUuXLmkzZCIiIiKNmJiY4ODBg+jQoQOqV6+OH374ATNmzED79u3h5+cHZ2dnuLq6wsLCAkeOHIGRkRE2b96My5cvo0GDBggODsb06dO1vRl5aPVq7ujoaLUh3YsXL8Lb2xtfffUVACAsLAwzZ87EsmXLUL16dUydOhXe3t64evUqjI2NtRU2ERERlVZF+FSaolazZk3s2LEj33kWFhbYtWtXnvKmTZvmeXRiaTuXUqsjkxYWFrC2tpZeW7ZsQdWqVeHp6QkhBGbPno3g4GB069YNderUQUREBJ4/f45Vq1ZpM2wiIiIi+n+l5pzJjIwM/PHHHxg4cCBkMhliY2ORkJCANm3aSHXkcjk8PT0RFRX12nbS09ORkpKi9iIiIiKi4lFqksmNGzciOTkZvr6+AICEhAQAgJWVlVo9KysraV5+QkNDYWpqKr3s7OyKLWYiIiKij12pSSaXLFmC9u3bw9bWVq1cJpOpTQsh8pTlNm7cODx58kR6xcfHF0u8RERERFRKHqd4+/Zt7NmzB+vXr5fKVI8TSkhIgI2NjVSemJiYZ7QyN7lcDrlcXnzBEhEREZGkVIxMhoeHw9LSEh07dpTKHB0dYW1tjd27d0tlGRkZOHDgANzd3bURJhERERG9Qusjkzk5OQgPD4ePjw/Klv1fODKZDEFBQQgJCYGTkxOcnJwQEhICAwMD9O7dW4sRExEREZGK1pPJPXv24M6dOxg4cGCeeWPHjkVaWhoCAgKQlJSEJk2aYNeuXbzHJBEREVEpofVksk2bNq+9+aZMJoNSqYRSqSzZoIiIiIioQErFOZNERERElFdkZCRkMhmSk5O1HcpraX1kkoiIiKiouES4lNi6LvhcKPZ1uLu74/79+zA1NS32dWmKySQRERFRKaWnpyfdLrG04mFuIiIiohLi5eWFwMBABAUFoXz58rCyssKiRYvw7NkzDBgwAMbGxqhatSq2b98OIO9h7mXLlqFcuXLYuXMnatasCSMjI7Rr1w7379/X2jYxmSQiIiIqQRERETA3N8eJEycQGBgIf39/fPXVV3B3d8fp06fRtm1b9OvXD8+fP893+efPn+OXX37BihUrcPDgQdy5cwejR48u4a34HyaTRERERCWoXr16+OGHH+Dk5IRx48ZBoVDA3Nwcfn5+cHJywsSJE/Ho0SOcP38+3+UzMzOxYMECuLq6omHDhhg2bBj27t1bwlvxP0wmiYiIiEpQ3bp1pb91dHRgZmYGF5f/XTikemx0YmJivssbGBigatWq0rSNjc1r65YEJpNEREREJUhXV1dtWiaTqZXJZDIAL58SWNDlX3fP7pLAZJKIiIiINMZkkoiIiIg0xvtMEhER0QejJG4kTuqYTBIRERGVkMjIyDxlcXFxecpynwOZ+29fX1/4+vqq1f388895ziQRERERvZ+YTBIRERGRxphMEhEREZHGmEwSERERkcaYTBIRERGRxphMEhEREZHGmEwSERERkcaYTBIRERGRxphMEhEREZHGmEwSERERkcb4OEUiIiL6YMTUqFli66p5JaZQ9UNDQ7F+/XpcuXIFCoUC7u7umD59OpydnaU6vr6+iIiIUFuuSZMmOHbsmDQ9atQoLFu2DEZGRggLC0PPnj2leevWrcOKFSuwefNmDbeq8JhMEhEREZWAAwcOYOjQoWjUqBGysrIQHByMNm3a4PLlyzA0NJTqtWvXDuHh4dK0np6e9PfmzZuxatUq7Nq1C9evX8eAAQPg7e0NMzMzJCcnIzg4GHv37i3R7WIySURERFQCduzYoTYdHh4OS0tLnDp1Cs2bN5fK5XI5rK2t820jJiYGXl5ecHV1haurK4KCgnDr1i2YmZlh7NixCAgIQOXKlYt1O17FcyaJiIiItODJkycAgAoVKqiVR0ZGwtLSEtWrV4efnx8SExOlefXq1cPJkyeRlJSEU6dOIS0tDdWqVcPhw4dx+vRpDB8+vES3AWAySURERFTihBAYNWoUmjVrhjp16kjl7du3x8qVK7Fv3z7MmDED0dHRaNmyJdLT0wEAbdu2Rd++fdGoUSPp/EpDQ0P4+/tj4cKFmD9/PpydneHh4YFLly6VyLbwMDcRERFRCRs2bBjOnz+Pw4cPq5X36NFD+rtOnTpwdXWFvb09tm7dim7dugEAlEollEqlVE+pVKJ169bQ1dXF1KlTceHCBWzZsgX9+/fHqVOnin1bODJJREREVIICAwOxadMm7N+/H5UqVXpjXRsbG9jb2+P69ev5zr9y5QpWrlyJKVOmIDIyEs2bN4eFhQW6d++O06dPIyUlpTg2QQ1HJomIiIhKgBACgYGB2LBhAyIjI+Ho6PjWZR49eoT4+HjY2Njk297gwYMxY8YMGBkZITs7G5mZmQAg/ZuTk1O0G5EPjkwSERERlYChQ4fijz/+wKpVq2BsbIyEhAQkJCQgLS0NAPD06VOMHj0aR48eRVxcHCIjI9G5c2eYm5uja9euedpbvHgxLC0t8dlnnwEAPDw8sG/fPhw7dgyzZs1CrVq1UK5cuWLfLo5MEhER0QejsDcSL0nz588HAHh5eamVh4eHw9fXFzo6Orhw4QKWL1+O5ORk2NjYoEWLFli7di2MjY3Vlnnw4AFCQkIQFRUllTVu3BjffvstOnbsCEtLyzw3Py8uWh+Z/O9//4u+ffvCzMwMBgYGqF+/vtrJokIIKJVK2NraQqFQwMvLq8SuTiIiIiIqKkKIfF++vr4AAIVCgZ07dyIxMREZGRm4ffs2li1bBjs7uzxtWVlZIS4uDra2tmrlEydOxKNHjxATE4PGjRuXxGZpN5lMSkqCh4cHdHV1sX37dly+fBkzZsxQG5INCwvDzJkzMXfuXERHR8Pa2hre3t5ITU3VXuBEREREBEDLh7mnT58OOzs7tUcGOTg4SH8LITB79mwEBwdLl8NHRETAysoKq1atwpAhQ0o6ZCIiIiLKRasjk5s2bYKrqyu++uorWFpaokGDBli8eLE0PzY2FgkJCWjTpo1UJpfL4enpqXaOQG7p6elISUlRexERERFR8dBqMnnr1i3Mnz8fTk5O2LlzJ7755hsMHz4cy5cvBwAkJCQAeHleQG5WVlbSvFeFhobC1NRUeuV3ngERERERFQ2tJpM5OTlo2LAhQkJC0KBBAwwZMgR+fn7S1U4qMplMbVoIkadMZdy4cXjy5In0io+PL7b4iYiIiD52Wk0mbWxsUKtWLbWymjVr4s6dOwAAa2trAMgzCpmYmJhntFJFLpfDxMRE7UVERERExUOryaSHhweuXr2qVnbt2jXY29sDABwdHWFtbY3du3dL8zMyMnDgwAG4u7uXaKxERERElJdWr+YeOXIk3N3dERISgu7du+PEiRNYtGgRFi1aBODl4e2goCCEhITAyckJTk5OCAkJgYGBAXr37q3N0ImIiIgIWk4mGzVqhA0bNmDcuHH48ccf4ejoiNmzZ6NPnz5SnbFjxyItLQ0BAQFISkpCkyZNsGvXrjx3giciIiKikqf1xyl26tQJnTp1eu18mUwGpVIJpVJZckERERERUYFoPZkkIiIiKirzvtlXYusauqBloeorlUpMnjxZrSz37Q6FEJg8eTIWLVokHY2dN28eateuLdUfNWoUli1bBiMjI4SFhaFnz57SvHXr1mHFihXYvHnzO2xV4Wn92dxEREREH4vatWvj/v370uvChQvSvLc9Qnrz5s1YtWoVdu3ahenTp2PAgAF49OgRACA5ORnBwcGYN29eiW8Tk0kiIiKiElK2bFlYW1tLLwsLCwB5HyFdp04dRERE4Pnz51i1ahUAICYmBl5eXnB1dUWvXr1gYmKCW7duAXh5jUlAQAAqV65c4tvEZJKIiIiohFy/fh22trZwdHREz549pWSwII+QrlevHk6ePImkpCScOnUKaWlpqFatGg4fPozTp09j+PDhWtkmJpNEREREJaBJkyZYvnw5du7cicWLFyMhIQHu7u549OhRgR4h3bZtW/Tt2xeNGjWCr68vIiIiYGhoCH9/fyxcuBDz58+Hs7MzPDw8cOnSpRLbLl6AQ0RERFQC2rdvL/3t4uICNzc3VK1aFREREWjatCmAtz9C+tU73CiVSrRu3Rq6urqYOnUqLly4gC1btqB///44depU8W7Q/+PIJBEREZEWGBoawsXFBdevX9foEdJXrlzBypUrMWXKFERGRqJ58+awsLBA9+7dcfr0aaSkpBT7NgBMJomIiIi0Ij09HTExMbCxsSn0I6SFEBg8eDBmzJgBIyMjZGdnIzMzEwCkf3NyckpkO5hMEhEREZWA0aNH48CBA4iNjcXx48fx5ZdfIiUlBT4+PmqPkN6wYQMuXrwIX1/f1z5CevHixbC0tMRnn30GAPDw8MC+fftw7NgxzJo1C7Vq1UK5cuVKZLt4ziQRERF9MAp7I/GSdPfuXfTq1Qv//vsvLCws0LRpUxw7dgz29vYACv4I6QcPHiAkJES6yhsAGjdujG+//RYdO3aEpaUlIiIiSmy7ZEIIUWJr04KUlBSYmpriyZMnMDEx0XY4pIG73x8qVP1K0z4tpkiIiEqvD+278k2/3y9evEBsbCwcHR2hr6+vpQg/bIXZxzzMTUREREQaYzJJRERERBpjMklEREREGmMySUREREQaYzJJRERERBpjMklEREREGmMySUREREQaYzJJRERERBpjMklEREREGmMySUREREQa47O5iYiI6IMxo0enElvXt2u3FHoZBwcH3L59O095QEAA5s2bB19f3zzP1W7SpAmOHTsmTY8aNQrLli2DkZERwsLC0LNnT2neunXrsGLFCmzevLnQsWmKySQRERFRCYmOjkZ2drY0ffHiRXh7e+Orr76Sytq1a4fw8HBpWk9PT/p78+bNWLVqFXbt2oXr169jwIAB8Pb2hpmZGZKTkxEcHIy9e/eWzMb8PyaTREREpVBhR9h6OH5XTJFQUbKwsFCbnjZtGqpWrQpPT0+pTC6Xw9raOt/lY2Ji4OXlBVdXV7i6uiIoKAi3bt2CmZkZxo4di4CAAFSuXLlYt+FVPGeSiIiISAsyMjLwxx9/YODAgZDJZFJ5ZGQkLC0tUb16dfj5+SExMVGaV69ePZw8eRJJSUk4deoU0tLSUK1aNRw+fBinT5/G8OHDS3w7mEwSERERacHGjRuRnJwMX19fqax9+/ZYuXIl9u3bhxkzZiA6OhotW7ZEeno6AKBt27bo27cvGjVqJJ1faWhoCH9/fyxcuBDz58+Hs7MzPDw8cOnSpRLZDh7mJiIiItKCJUuWoH379rC1tZXKevToIf1dp04duLq6wt7eHlu3bkW3bt0AAEqlEkqlUqqnVCrRunVr6OrqYurUqbhw4QK2bNmC/v3749SpU8W+HRyZJCIiIipht2/fxp49e/D111+/sZ6NjQ3s7e1x/fr1fOdfuXIFK1euxJQpUxAZGYnmzZvDwsIC3bt3x+nTp5GSklIc4athMklERERUwsLDw2FpaYmOHTu+sd6jR48QHx8PGxubPPOEEBg8eDBmzJgBIyMjZGdnIzMzEwCkf3Nycoo++FcwmSQiIiIqQTk5OQgPD4ePjw/Klv3fGYdPnz7F6NGjcfToUcTFxSEyMhKdO3eGubk5unbtmqedxYsXw9LSEp999hkAwMPDA/v27cOxY8cwa9Ys1KpVC+XKlSv27eE5k0RERPTB0ORG4iVtz549uHPnDgYOHKhWrqOjgwsXLmD58uVITk6GjY0NWrRogbVr18LY2Fit7oMHDxASEoKoqCiprHHjxvj222/RsWNHWFpa5rn5eXFhMklERERUgtq0aQMhRJ5yhUKBnTt3FqgNKysrxMXF5SmfOHEiJk6c+K4hFopWD3MrlUrIZDK1V+6bdAohoFQqYWtrC4VCAS8vrxK7zJ2IiIiI3k7r50zWrl0b9+/fl14XLlyQ5oWFhWHmzJmYO3cuoqOjYW1tDW9vb6SmpmoxYiIiIiJS0XoyWbZsWVhbW0sv1WOGhBCYPXs2goOD0a1bN9SpUwcRERF4/vw5Vq1apeWoiYiIiAgoBcnk9evXYWtrC0dHR/Ts2RO3bt0CAMTGxiIhIQFt2rSR6srlcnh6eqqdbPqq9PR0pKSkqL2IiIiIqHhoNZls0qQJli9fjp07d2Lx4sVISEiAu7s7Hj16hISEBAAvTzDNzcrKSpqXn9DQUJiamkovOzu7Yt0GIiIioo+ZVpPJ9u3b44svvoCLiwtat26NrVu3AoDapey5H3wOvDz8/WpZbuPGjcOTJ0+kV3x8fPEET0RERETaP8ydm6GhIVxcXHD9+nXpqu5XRyETExPzjFbmJpfLYWJiovYiIiIiouJRqpLJ9PR0xMTEwMbGBo6OjrC2tsbu3bul+RkZGThw4ADc3d21GCURERERqWj1puWjR49G586dUblyZSQmJmLq1KlISUmBj48PZDIZgoKCEBISAicnJzg5OSEkJAQGBgbo3bu3NsMmIiIiov+n1WTy7t276NWrF/79919YWFigadOmOHbsGOzt7QEAY8eORVpaGgICApCUlIQmTZpg165deR4pRERERETaodVkcs2aNW+cL5PJoFQqoVQqSyYgIiIieq/d/f5Qia2r0rRPS2xdpVmpOmeSiIiI6EPm5eWFwMBABAUFoXz58rCyssKiRYvw7NkzDBgwAMbGxqhatSq2b98OAMjOzsagQYPg6OgIhUIBZ2dn/Prrr1J7L168QO3atTF48GCpLDY2Fqampli8eHGJbBOTSSIiIqISFBERAXNzc5w4cQKBgYHw9/fHV199BXd3d5w+fRpt27ZFv3798Pz5c+Tk5KBSpUpYt24dLl++jIkTJ2L8+PFYt24dAEBfXx8rV65EREQENm7ciOzsbPTr1w8tWrSAn59fiWwPk0kiIiKiElSvXj388MMPcHJywrhx46BQKGBubg4/Pz84OTlh4sSJePToEc6fPw9dXV1MnjwZjRo1gqOjI/r06QNfX18pmQSA+vXrY+rUqfDz88PIkSNx8+ZN/P777yW2PVo9Z5KIiIjoY1O3bl3pbx0dHZiZmcHFxUUqU91POzExEQCwYMEC/P7777h9+zbS0tKQkZGB+vXrq7X57bff4p9//sGcOXOwfft2mJubF/+G/D+OTBIRERGVIF1dXbVpmUymVqZ60l9OTg7WrVuHkSNHYuDAgdi1axfOnj2LAQMGICMjQ62NxMREXL16FTo6Orh+/Xrxb0QuHJkkIiIiKqUOHToEd3d3BAQESGU3b97MU2/gwIGoU6cO/Pz8MGjQILRq1Qq1atUqkRg1GpnMysrCnj17sHDhQqSmpgIA7t27h6dPnxZpcEREREQfs2rVquHkyZPYuXMnrl27hgkTJiA6Olqtzrx583D06FEsX74cvXv3xpdffok+ffrkGb0sLoVOJm/fvg0XFxd06dIFQ4cOxcOHDwEAYWFhGD16dJEHSERERPSx+uabb9CtWzf06NEDTZo0waNHj9RGKa9cuYIxY8bgt99+g52dHYCXyWVycjImTJhQIjEW+jD3iBEj4OrqinPnzsHMzEwq79q1K77++usiDY6IiIioMEr7jcQjIyPzlMXFxeUpE0JIf4eHhyM8PFxtfmhoKACgRo0aeP78udo8ExMTxMbGvnuwBVToZPLw4cM4cuQI9PT01Mrt7e3x3//+t8gCIyIiIqLSr9CHuXNycpCdnZ2n/O7du3xmNhEREdFHptDJpLe3N2bPni1Ny2QyPH36FJMmTUKHDh2KMjYiIiIiKuUKfZh71qxZaNGiBWrVqoUXL16gd+/euH79OszNzbF69eriiJGIiIiISqlCJ5O2trY4e/YsVq9ejdOnTyMnJweDBg1Cnz59oFAoiiNGIiIiIiqlNLppuUKhwMCBAzFw4MCijoeIiIioQHJf8UxFqzD7ttDJ5PLly984v3///oVtkj4yM3p0KlT9Ho7fFVMkRET0PlI9evD58+c8KlpMVDc819HReWtdje4zmVtmZiaeP38OPT09GBgYMJkkIiKiYqWjo4Ny5cohMTERAGBgYCA9z5reXU5ODh4+fAgDAwOULfv2VLHQyWRSUlKesuvXr8Pf3x9jxowpbHNEREREhWZtbQ0AUkJJRatMmTKoXLlygZJ0jc6ZfJWTkxOmTZuGvn374sqVK0XRJBEREdFryWQy2NjYwNLSEpmZmdoO54Ojp6eHMmUKdgfJIkkmgZdDzvfu3Suq5oiIiIjeSkdHp0Dn9VHxKXQyuWnTJrVpIQTu37+PuXPnwsPDo8gCIyIiIqLSr9DJ5Oeff642LZPJYGFhgZYtW2LGjBlFFRcRERERvQcKnUzm5OQURxxERERE9B4q9LO5iYiIiIhUCjQyOWrUqAI3OHPmTI2DISIiIqL3S4GSyTNnzhSoMd4wlIiIiOjjUqBkcv/+/cUdBxERERG9h4rsPpNERETFzeH7rYWqHzetYzFFQkQqGiWT0dHR+PPPP3Hnzh3pQeAq69evL5LAiIiIiKj0K/TV3GvWrIGHhwcuX76MDRs2IDMzE5cvX8a+fftgampaHDESERERUSlV6GQyJCQEs2bNwpYtW6Cnp4dff/0VMTEx6N69OypXrlwcMRIRERFRKVXoZPLmzZvo2PHlOShyuRzPnj2DTCbDyJEjsWjRoiIPkIiIiIhKr0InkxUqVEBqaioAoGLFirh48SIAIDk5Gc+fP9c4kNDQUMhkMgQFBUllQggolUrY2tpCoVDAy8sLly5d0ngdRERERFS0CpxMnj17FgDw6aefYvfu3QCA7t27Y8SIEfDz80OvXr3QqlUrjYKIjo7GokWLULduXbXysLAwzJw5E3PnzkV0dDSsra3h7e0tJbNEREREpF0FTiYbNmyITz75BDVr1kSvXr0AAOPGjcPo0aPx4MEDdOvWDUuWLCl0AE+fPkWfPn2wePFilC9fXioXQmD27NkIDg5Gt27dUKdOHUREROD58+dYtWpVoddDREREREWvwMnkkSNH0LBhQ/zyyy+oWrUq+vbtiwMHDmDs2LHYtGkTZs6cqZYMFtTQoUPRsWNHtG7dWq08NjYWCQkJaNOmjVQml8vh6emJqKio17aXnp6OlJQUtRcRERERFY8C32fSzc0Nbm5u+M9//oN169YhPDwcrVu3hoODAwYOHAgfHx9UqlSpUCtfs2YNTp8+jejo6DzzEhISAABWVlZq5VZWVrh9+/Zr2wwNDcXkyZMLFQcREVFxm/fNPm2HQFQsCn0BjkKhgI+PDyIjI3Ht2jX06tULCxcuhKOjIzp06FDgduLj4zFixAj88ccf0NfXf229V5/3LYR44zPAx40bhydPnkiv+Pj4AsdERERERIXzTo9TrFq1Kr7//nvY2dlh/Pjx2LlzZ4GXPXXqFBITE/HJJ59IZdnZ2Th48CDmzp2Lq1evAng5QmljYyPVSUxMzDNamZtcLodcLtdga4iIiIiosAo9Mqly4MAB+Pj4wNraGmPHjkW3bt1w5MiRAi/fqlUrXLhwAWfPnpVerq6u6NOnD86ePYsqVarA2tpaunIcADIyMnDgwAG4u7trGjYRERERFaFCjUzGx8dj2bJlWLZsGWJjY+Hu7o45c+age/fuMDQ0LNSKjY2NUadOHbUyQ0NDmJmZSeVBQUEICQmBk5MTnJycEBISAgMDA/Tu3btQ6yIiIiKi4lHgZNLb2xv79++HhYUF+vfvj4EDB8LZ2bk4Y8PYsWORlpaGgIAAJCUloUmTJti1axeMjY2Ldb1EREREVDAFTiYVCgX+/vtvdOrUCTo6OsUSTGRkpNq0TCaDUqmEUqkslvURERER0bspcDK5adOm4oyDiIiIiN5DGl+AQ0RERETEZJKIiIiINMZkkoiIiIg0xmSSiIiIiDTGZJKIiIiINPZOj1MkUpn3zT5th0BERERawJFJIiIiItIYRyZLCYfvtxaqfty0jsUUCREREVHBcWSSiIiIiDTGkUkiIg3c/f5QgetWmvZpMUZCRKRdHJkkIiIiIo0xmSQiIiIijTGZJCIiIiKNMZkkIiIiIo0xmSQiIiIijTGZJCIiIiKNMZkkIiIiIo0xmSQiIiIijTGZJCIiIiKNMZkkIiIiIo0xmSQiIiIijTGZJCIiIiKNMZkkIiIiIo0xmSQiIiIijTGZJCIiIiKNMZkkIiIiIo0xmSQiIiIijTGZJCIiIiKNMZkkIiIiIo0xmSQiIiIijTGZJCIiIiKNaTWZnD9/PurWrQsTExOYmJjAzc0N27dvl+YLIaBUKmFrawuFQgEvLy9cunRJixETERERUW5aTSYrVaqEadOm4eTJkzh58iRatmyJLl26SAljWFgYZs6ciblz5yI6OhrW1tbw9vZGamqqNsMmIiIiov+n1WSyc+fO6NChA6pXr47q1avjp59+gpGREY4dOwYhBGbPno3g4GB069YNderUQUREBJ4/f45Vq1ZpM2wiIiIi+n+l5pzJ7OxsrFmzBs+ePYObmxtiY2ORkJCANm3aSHXkcjk8PT0RFRX12nbS09ORkpKi9iIiIiKi4lFW2wFcuHABbm5uePHiBYyMjLBhwwbUqlVLShitrKzU6ltZWeH27duvbS80NBSTJ08u1piJiIhiatQs3AJe84onECIt0/rIpLOzM86ePYtjx47B398fPj4+uHz5sjRfJpOp1RdC5CnLbdy4cXjy5In0io+PL7bYiYiIiD52Wh+Z1NPTQ7Vq1QAArq6uiI6Oxq+//orvvvsOAJCQkAAbGxupfmJiYp7RytzkcjnkcnnxBk1EREREAErByOSrhBBIT0+Ho6MjrK2tsXv3bmleRkYGDhw4AHd3dy1GSEREREQqWh2ZHD9+PNq3bw87OzukpqZizZo1iIyMxI4dOyCTyRAUFISQkBA4OTnByckJISEhMDAwQO/evbUZNhF9gGb06FSo+j0cvyumSIiI3i9aTSYfPHiAfv364f79+zA1NUXdunWxY8cOeHt7AwDGjh2LtLQ0BAQEICkpCU2aNMGuXbtgbGyszbCJiIiI6P9pNZlcsmTJG+fLZDIolUoolcqSCYiIiIiICqXUnTNJRERERO8PJpNEREREpDGt3xqISifejJeIiIgKgiOTRERERKQxJpNEREREpDEe5iai13L4fmuh6sdN61hMkRARUWnFZJKIPkjzvtmn7RCIiD4KPMxNRERERBpjMklEREREGmMySUREREQaYzJJRERERBpjMklEREREGmMySUREREQaYzJJRERERBrjfSaJ6L3A58UTEZVOHJkkIiIiIo0xmSQiIiIijTGZJCIiIiKNMZkkIiIiIo0xmSQiIiIijTGZJCIiIiKNMZkkIiIiIo0xmSQiIiIijTGZJCIiIiKNMZkkIiIiIo0xmSQiIiIijTGZJCIiIiKNMZkkIiIiIo0xmSQiIiIijTGZJCIiIiKNMZkkIiIiIo0xmSQiIiIijWk1mQwNDUWjRo1gbGwMS0tLfP7557h69apaHSEElEolbG1toVAo4OXlhUuXLmkpYiIiIiLKTavJ5IEDBzB06FAcO3YMu3fvRlZWFtq0aYNnz55JdcLCwjBz5kzMnTsX0dHRsLa2hre3N1JTU7UYOREREREBQFltrnzHjh1q0+Hh4bC0tMSpU6fQvHlzCCEwe/ZsBAcHo1u3bgCAiIgIWFlZYdWqVRgyZIg2wiYiIiKi/1eqzpl88uQJAKBChQoAgNjYWCQkJKBNmzZSHblcDk9PT0RFReXbRnp6OlJSUtReRERERFQ8Sk0yKYTAqFGj0KxZM9SpUwcAkJCQAACwsrJSq2tlZSXNe1VoaChMTU2ll52dXfEGTkRERPQRKzXJ5LBhw3D+/HmsXr06zzyZTKY2LYTIU6Yybtw4PHnyRHrFx8cXS7xEREREpOVzJlUCAwOxadMmHDx4EJUqVZLKra2tAbwcobSxsZHKExMT84xWqsjlcsjl8uINmIiIiIgAaHlkUgiBYcOGYf369di3bx8cHR3V5js6OsLa2hq7d++WyjIyMnDgwAG4u7uXdLhERERE9AqtjkwOHToUq1atwj///ANjY2PpPEhTU1MoFArIZDIEBQUhJCQETk5OcHJyQkhICAwMDNC7d29thk5E78glwqVQ9dcVUxxERPRutJpMzp8/HwDg5eWlVh4eHg5fX18AwNixY5GWloaAgAAkJSWhSZMm2LVrF4yNjUs4WiIiIiJ6lVaTSSHEW+vIZDIolUoolcriD4iIiIiICqXUXM1NRERERO8fJpNEREREpDEmk0RERESkMSaTRERERKQxJpNEREREpDEmk0RERESkMSaTRERERKQxJpNEREREpDEmk0RERESkMa0+AYeIiKhYKU0LWf9J8cRB9AHjyCQRERERaYzJJBERERFpjMkkEREREWmMySQRERERaYzJJBERERFpjMkkEREREWmMySQRERERaYzJJBERERFpjMkkEREREWmMySQRERERaYzJJBERERFpjMkkEREREWmMySQRERERaYzJJBERERFprKy2AyANKU0LWf9J8cRBREREHzWOTBIRERGRxphMEhEREZHGmEwSERERkcaYTBIRERGRxphMEhEREZHGmEwSERERkcaYTBIRERGRxrSaTB48eBCdO3eGra0tZDIZNm7cqDZfCAGlUglbW1soFAp4eXnh0qVL2gmWiIiIiPLQajL57Nkz1KtXD3Pnzs13flhYGGbOnIm5c+ciOjoa1tbW8Pb2RmpqaglHSkRERET50eoTcNq3b4/27dvnO08IgdmzZyM4OBjdunUDAERERMDKygqrVq3CkCFDSjJUIiIiIspHqT1nMjY2FgkJCWjTpo1UJpfL4enpiaioqNcul56ejpSUFLUXERERERWPUptMJiQkAACsrKzUyq2srKR5+QkNDYWpqan0srOzK9Y4iYiIiD5mpTaZVJHJZGrTQog8ZbmNGzcOT548kV7x8fHFHSIRERHRR0ur50y+ibW1NYCXI5Q2NjZSeWJiYp7Rytzkcjnkcnmxx0dEREREpXhk0tHREdbW1ti9e7dUlpGRgQMHDsDd3V2LkRERERGRilZHJp8+fYobN25I07GxsTh79iwqVKiAypUrIygoCCEhIXBycoKTkxNCQkJgYGCA3r17azFqIiIiIlLRajJ58uRJtGjRQpoeNWoUAMDHxwfLli3D2LFjkZaWhoCAACQlJaFJkybYtWsXjI2NtRUyEREREeWi1WTSy8sLQojXzpfJZFAqlVAqlSUXFBEREREVWKk9Z5KIiIiISj8mk0RERESkMSaTRERERKQxJpNEREREpDEmk0RERESkMSaTRERERKQxJpNEREREpDEmk0RERESkMSaTRERERKQxJpNEREREpDEmk0RERESkMSaTRERERKQxJpNEREREpDEmk0RERESkMSaTRERERKQxJpNEREREpDEmk0RERESkMSaTRERERKQxJpNEREREpDEmk0RERESkMSaTRERERKQxJpNEREREpDEmk0RERESksbLaDoCIPiBK04LXdaxcfHEQEVGJ4cgkEREREWmMySQRERERaYzJJBERERFpjMkkEREREWmMySQRERERaYzJJBERERFpjMkkEREREWnsvbjP5G+//Yaff/4Z9+/fR+3atTF79mx8+umn2g7rveIS4VKo+uuKKQ4iotKsMN+V/J4keqnUj0yuXbsWQUFBCA4OxpkzZ/Dpp5+iffv2uHPnjrZDIyIiIvrolfpkcubMmRg0aBC+/vpr1KxZE7Nnz4adnR3mz5+v7dCIiIiIPnqlOpnMyMjAqVOn0KZNG7XyNm3aICoqSktREREREZFKqT5n8t9//0V2djasrKzUyq2srJCQkJDvMunp6UhPT5emnzx5AgBISUkpvkCLQE7680LVT5GJQtXPTssuVP2n2YWrn5bxrMB10zMzC9V2anrB2wZK/3v9PinOflma+iRQvP2SfbLolKbvyve5TwKlv1+q4hOicO8hlTyZKMXv0r1791CxYkVERUXBzc1NKv/pp5+wYsUKXLlyJc8ySqUSkydPLskwiYiIqJjEx8ejUqVK2g6D3qBUj0yam5tDR0cnzyhkYmJintFKlXHjxmHUqFHSdE5ODh4/fgwzMzPIZLJijfdDl5KSAjs7O8THx8PExETb4RCxT1Kpwz5ZdIQQSE1Nha2trbZDobco1cmknp4ePvnkE+zevRtdu3aVynfv3o0uXbrku4xcLodcLlcrK1euXHGG+dExMTHhlySVKuyTVNqwTxYNU1NTbYdABVCqk0kAGDVqFPr16wdXV1e4ublh0aJFuHPnDr755htth0ZERET00Sv1yWSPHj3w6NEj/Pjjj7h//z7q1KmDbdu2wd7eXtuhEREREX30Sn0yCQABAQEICAjQdhgfPblcjkmTJuU5jYBIW9gnqbRhn6SPUam+mpuIiIiISrdSfdNyIiIiIirdmEwSERERkcaYTBIRERGRxphMlnIODg6YPXt2gevHxcVBJpPh7Nmzr62zbNmyYrv3plKpRP369Yul7bfx8vJCUFCQVtb9MWGfLDj2yZLDfllw7JdU1JhMFgNfX1/IZDJMmzZN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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Transpose the DataFrame for plotting\n", + "neighborhood_stats_df = neighborhood_stats_df.T\n", + "\n", + "# Create a bar plot\n", + "plt.figure(figsize=(10, 6))\n", + "neighborhood_stats_df.plot(kind='bar', rot=0)\n", + "plt.title('Comparison of Ages between different Neighborhoods')\n", + "plt.xlabel('Neighborhood')\n", + "plt.ylabel('Value')\n", + "plt.legend(title='Attributes', loc='upper left', bbox_to_anchor=(1, 1))\n", + "\n", + "# Show the plot\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 301, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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jcWdO3ewePFiOeIkIiIiInrhaH1me8KECWjdujVu3LgBY2NjqbxPnz747bffajQ4IiIiIqIXmdZntnfv3o09e/bA0NBQo9zR0RF///13jQVGRERERPSi0/rMdnl5Oe7du1eh/OLFizAzM6uRoIiIiIiIXgZaJ9sBAQFYsGCB9FyhUKCwsBCRkZHo3r17TcZGRERERPRC03oZyeeff45OnTqhSZMmuHPnDoKCgnDq1CnUq1cPq1evliNGIiIiIqIXktbJtr29PTIyMrB69WocPHgQ5eXlGDZsGAYOHKhxwSQRERER0b+d1sk2ABgbG2Po0KEYOnRoTcdDRERERPTS0DrZXrFixSPrBw8e/MTBEBERPVLpQe3aG7SSJw4iomrSOtmeMGGCxvPS0lIUFxfD0NAQKpWKyTYRERER0f+n9d1Ibty4ofEoLCxEVlYWfH19eYEkEREREdEDtE62K+Pq6orZs2dXOOtNRERERPRvViPJNgDo6enh0qVLNdUdEREREdELT+s12+vXr9d4LoTA5cuXsWjRIvj4+NRYYERERERELzqtk+3evXtrPFcoFLCyssLrr7+Ozz77rKbiIiIiIiJ64WmdbJeXl8sRBxERERHRS6fG1mwTEREREZGmap3ZnjhxYrU7nD9//hMHQ0RERET0MqlWsn3o0KFqdaZQKJ4qGCIiIiKil0m1ku2dO3fKHQcRERER0UtH6wskSSabf9eufbeO8sRBRERERDXmiZLttLQ0/O9//8OFCxdw9+5djbp169bVSGBERERERC86re9G8uOPP8LHxwcnTpxAYmIiSktLceLECezYsQPm5uZyxEhERERE9ELSOtmOjo7G559/jo0bN8LQ0BBffPEFMjMz0a9fPzRs2FCOGImIiIiIXkhaJ9tnzpxBjx49AABKpRJFRUVQKBR4//33sXTp0hoPkIiIiIjoRaV1sm1paYmCggIAQP369XHs2DEAwM2bN1FcXPzEgcTExEChUCAsLEwqE0IgKioK9vb2MDY2hr+/P44fP/7EYxARERERPUvVTrYzMjIAAK+99hqSk5MBAP369cOECRMwYsQIDBgwAJ07d36iINLS0rB06VK0aNFCozw2Nhbz58/HokWLkJaWBltbWwQEBEjJPhERERHR86zayXarVq3w6quvwtPTEwMGDAAATJs2DZMmTcKVK1fQt29fLFu2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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Transpose the DataFrame for plotting\n", + "neighborhood_stats_df = neighborhood_stats_df.T\n", + "\n", + "colors = ['lemonchiffon', 'palegreen', 'lightpink']\n", + "\n", + "# Create a bar plot\n", + "plt.figure(figsize=(10, 6))\n", + "neighborhood_stats_df.plot(kind='bar', rot=0, color=colors)\n", + "plt.title('Comparison of Ages between different Neighborhoods')\n", + "plt.xlabel('Neighborhood')\n", + "plt.ylabel('Value')\n", + "plt.legend(title='Neighborhoods', loc='upper left', bbox_to_anchor=(1, 1))\n", + "\n", + "plt.show()" + ] + } + ], + "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 +} From 2236bee0855e25c41f718de3f5426d49759aecb6 Mon Sep 17 00:00:00 2001 From: Amandine0424 <138607470+Amandine0424@users.noreply.github.com> Date: Mon, 6 Nov 2023 19:00:54 +0100 Subject: [PATCH 4/6] Delete your-code/.ipynb_checkpoints/main-checkpoint.ipynb --- .../.ipynb_checkpoints/main-checkpoint.ipynb | 1438 ----------------- 1 file changed, 1438 deletions(-) delete mode 100644 your-code/.ipynb_checkpoints/main-checkpoint.ipynb diff --git a/your-code/.ipynb_checkpoints/main-checkpoint.ipynb b/your-code/.ipynb_checkpoints/main-checkpoint.ipynb deleted file mode 100644 index cd918be..0000000 --- a/your-code/.ipynb_checkpoints/main-checkpoint.ipynb +++ /dev/null @@ -1,1438 +0,0 @@ -{ - "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 pandas as pd\n", - "import numpy as np\n", - "import matplotlib.pyplot as plt" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Challenge 1\n", - "#### 1.- Define a function that simulates rolling a dice 10 times. Save the information in a dataframe.\n", - "**Hint**: you can use the *choices* function from module *random* to help you with the simulation." - ] - }, - { - "cell_type": "code", - "execution_count": 85, - "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", - "
Number
05
15
23
34
46
55
65
72
85
96
\n", - "
" - ], - "text/plain": [ - " Number\n", - "0 5\n", - "1 5\n", - "2 3\n", - "3 4\n", - "4 6\n", - "5 5\n", - "6 5\n", - "7 2\n", - "8 5\n", - "9 6" - ] - }, - "execution_count": 85, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# your code here\n", - "\n", - "import random\n", - "\n", - "\n", - "def rolling_dice():\n", - " return random.choices(range(1, 7), k=10) #6 angles of the dice, rolling 10 times\n", - "\n", - "dice_rolls = rolling_dice()\n", - "\n", - "dice_df = pd.DataFrame({'Number': dice_rolls})\n", - "dice_df.head(10)\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### 2.- Plot the results sorted by value." - ] - }, - { - "cell_type": "code", - "execution_count": 91, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'whiskers': [,\n", - " ],\n", - " 'caps': [,\n", - " ],\n", - " 'boxes': [],\n", - " 'medians': [],\n", - " 'fliers': [],\n", - " 'means': []}" - ] - }, - "execution_count": 91, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAiMAAAGdCAYAAADAAnMpAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAg5ElEQVR4nO3dcUzU9/3H8dcJ9kDLnZUJHPMsWDqxiK1CU7Glm6PVSGNK1CVrtdpuNT9WWlsJqYMtWU2d12Q2saaNzg7bOtL6h4cdU+u0vwm6BjdF2qkDR1cUilyZy8ZZaw6F+/2xn7fdBOULjI+cz0fyzfb93ud7975/ek/vvtzZgsFgUAAAAIaMMj0AAAC4uREjAADAKGIEAAAYRYwAAACjiBEAAGAUMQIAAIwiRgAAgFHECAAAMCra9AD90dPTo7NnzyouLk42m830OAAAoB+CwaDOnz+v5ORkjRrV9/sfIyJGzp49K7fbbXoMAAAwAK2trZo4cWKft4+IGImLi5P0zyfjcDgMTwMAAPrD7/fL7XaHXsf7MiJi5MpHMw6HgxgBAGCEud4lFlzACgAAjCJGAACAUcQIAAAwihgBAABGESMAAMAoYgQAABhFjAAAAKOIEQAAYBQxAgAAjLIcI21tbVq6dKni4+M1ZswY3XPPPaqrq7vmOTU1NcrKylJMTIwmT56szZs3D3hgAAAQWSx9Hfzf//533X///ZozZ44++OADJSQk6C9/+YvGjRvX5znNzc3Kz8/XihUrVFFRoY8++kjPPPOMJkyYoEWLFg12fgAAMMLZgsFgsL+Lf/jDH+qjjz7SoUOH+v0Aq1evVlVVlRoaGkLHCgsL9cknn6i2trZf9+H3++V0OtXZ2clv0wAAMEL09/Xb0jsjVVVVmjdvnr7zne+opqZGX//61/XMM89oxYoVfZ5TW1uruXPnhh2bN2+eysvLdenSJY0ePfqqcwKBgAKBQNiTAXDj+Oqrr9TY2Dgk93Xx4kWdPn1aKSkpio2NHfT9paena8yYMUMwGYDhYilGPvvsM23atEnFxcUqKyvTH/7wB61cuVJ2u13Lli3r9Ryfz6fExMSwY4mJibp8+bLOnTsnl8t11Tkej0dr1qyxMhqAYdTY2KisrCzTY/Sqrq5OM2fOND0GAAssxUhPT4+ys7O1bt06SdKMGTN08uRJbdq0qc8Yka7+6eArnwz19ZPCpaWlKi4uDu37/X653W4rowL4L0pPT7/uhev91dDQoKVLl6qiokJTp04d9P2lp6cPwVQAhpOlGHG5XLrrrrvCjk2dOlVer7fPc5KSkuTz+cKOdXR0KDo6WvHx8b2eY7fbZbfbrYwGYBiNGTNmyN99mDp1Ku9oADcpS3/ae//99+vUqVNhx/785z/r9ttv7/OcnJwc7d+/P+zYvn37lJ2d3ev1IgAA4OZiKUZWrVqlw4cPa926dfr000/17rvvasuWLSoqKgqtKS0tDfvIprCwUGfOnFFxcbEaGhq0detWlZeXq6SkZOieBQAAGLEsxci9996rnTt36r333tO0adP08ssva8OGDVqyZEloTXt7u1paWkL7qamp2rNnj6qrq3XPPffo5Zdf1saNG/mOEQAAIMni94yYwveMAJHr2LFjysrK4q9ggAjU39dvfpsGAAAYRYwAAACjiBEAAGAUMQIAAIwiRgAAgFHECAAAMIoYAQAARhEjAADAKGIEAAAYRYwAAACjiBEAAGAUMQIAAIwiRgAAgFHECAAAMIoYAQAARhEjAADAKGIEAAAYRYwAAACjiBEAAGAUMQIAAIwiRgAAgFHECAAAMIoYAQAARhEjAADAKGIEAAAYRYwAAACjiBEAAGAUMQIAAIwiRgAAgFHECAAAMIoYAQAARlmKkZdeekk2my1sS0pK6nN9dXX1VettNpsaGxsHPTgAAIgM0VZPyMjI0Icffhjaj4qKuu45p06dksPhCO1PmDDB6sMCAIAIZTlGoqOjr/luSG8SEhI0btw4qw8FAABuApavGWlqalJycrJSU1P13e9+V5999tl1z5kxY4ZcLpfy8vJ04MCB664PBALy+/1hGwAAiEyWYuS+++7Ttm3b9Jvf/EZvvvmmfD6fZs+erb/97W+9rne5XNqyZYu8Xq8qKys1ZcoU5eXl6eDBg9d8HI/HI6fTGdrcbreVMQEAwAhiCwaDwYGefOHCBd1xxx168cUXVVxc3K9zFixYIJvNpqqqqj7XBAIBBQKB0L7f75fb7VZnZ2fYtScARr5jx44pKytLdXV1mjlzpulxAAwhv98vp9N53dfvQf1p79ixY5WZmammpqZ+nzNr1qzrrrfb7XI4HGEbAACITIOKkUAgoIaGBrlcrn6fU19fb2k9AACIbJb+mqakpEQLFizQpEmT1NHRobVr18rv92v58uWSpNLSUrW1tWnbtm2SpA0bNiglJUUZGRnq6upSRUWFvF6vvF7v0D8TAAAwIlmKkc8//1yPPfaYzp07pwkTJmjWrFk6fPiwbr/9dklSe3u7WlpaQuu7urpUUlKitrY2xcbGKiMjQ7t371Z+fv7QPgsAADBiDeoC1uHS3wtgAIw8XMAKRK5huYAVAABgsIgRAABgFDECAACMIkYAAIBRxAgAADCKGAEAAEYRIwAAwChiBAAAGEWMAAAAo4gRAABgFDECAACMIkYAAIBRxAgAADCKGAEAAEYRIwAAwChiBAAAGEWMAAAAo4gRAABgFDECAACMIkYAAIBRxAgAADCKGAEAAEYRIwAAwChiBAAAGEWMAAAAo4gRAABgFDECAACMIkYAAIBRxAgAADCKGAEAAEYRIwAAwChLMfLSSy/JZrOFbUlJSdc8p6amRllZWYqJidHkyZO1efPmQQ0MAAAiS7TVEzIyMvThhx+G9qOiovpc29zcrPz8fK1YsUIVFRX66KOP9Mwzz2jChAlatGjRwCYGAAARxXKMREdHX/fdkCs2b96sSZMmacOGDZKkqVOn6ujRo1q/fj0xAgAAJA0gRpqampScnCy73a777rtP69at0+TJk3tdW1tbq7lz54YdmzdvnsrLy3Xp0iWNHj261/MCgYACgUBo3+/3Wx0TQG+6vlJL/f/qwoULpicJ8TU3a0bSKPnqf6OGf/zZ9DghY8eO1aQZedItY0yPAkQ8SzFy3333adu2bfrGN76hL774QmvXrtXs2bN18uRJxcfHX7Xe5/MpMTEx7FhiYqIuX76sc+fOyeVy9fo4Ho9Ha9assTIagH5oqf9fTfpgqekxwkyVlP8/t0qtr0itpqcJ16IKTbpvgekxgIhnKUbmz58f+v+ZmZnKycnRHXfcoXfeeUfFxcW9nmOz2cL2g8Fgr8f/XWlpadj9+f1+ud1uK6MC6MXfbPEq+PmXWrt2rVJTU02PI+mf74SePXs29I7rjaC5uVk//vGPVZ4fr0mmhwFuApY/pvl3Y8eOVWZmppqamnq9PSkpST6fL+xYR0eHoqOje30n5Qq73X7D/EcJiCTB6BjV+3qUNGOeps6caXqckHtMD/AfLh47pnpfmYLRMaZHAW4Kg/qekUAgoIaGhj4/bsnJydH+/fvDju3bt0/Z2dl9Xi8CAABuLpZipKSkRDU1NWpubtbvf/97LV68WH6/X8uXL5f0z49Xli1bFlpfWFioM2fOqLi4WA0NDdq6davKy8tVUlIytM8CAACMWJY+pvn888/12GOP6dy5c5owYYJmzZqlw4cP6/bbb5cktbe3q6WlJbQ+NTVVe/bs0apVq/TGG28oOTlZGzdu5M96AQBAiKUY2b59+zVvf/vtt6869s1vflPHjh2zNBQAALh58Ns0AADAKGIEAAAYRYwAAACjiBEAAGAUMQIAAIwiRgAAgFHECAAAMIoYAQAARhEjAADAKGIEAAAYRYwAAACjiBEAAGAUMQIAAIwiRgAAgFHECAAAMIoYAQAARhEjAADAKGIEAAAYRYwAAACjiBEAAGAUMQIAAIwiRgAAgFHECAAAMIoYAQAARhEjAADAKGIEAAAYRYwAAACjiBEAAGAUMQIAAIwiRgAAgFHECAAAMGpQMeLxeGSz2fTCCy/0uaa6ulo2m+2qrbGxcTAPDQAAIkT0QE88cuSItmzZounTp/dr/alTp+RwOEL7EyZMGOhDAwCACDKgd0a+/PJLLVmyRG+++aZuu+22fp2TkJCgpKSk0BYVFTWQhwYAABFmQDFSVFSkRx55RA899FC/z5kxY4ZcLpfy8vJ04MCBa64NBALy+/1hGwAAiEyWP6bZvn27jh07piNHjvRrvcvl0pYtW5SVlaVAIKBf/vKXysvLU3V1tR588MFez/F4PFqzZo3V0QAAwAhkKUZaW1v1/PPPa9++fYqJienXOVOmTNGUKVNC+zk5OWptbdX69ev7jJHS0lIVFxeH9v1+v9xut5VRAQDACGHpY5q6ujp1dHQoKytL0dHRio6OVk1NjTZu3Kjo6Gh1d3f3635mzZqlpqamPm+32+1yOBxhGwAAiEyW3hnJy8vT8ePHw4499dRTSk9P1+rVq/t9UWp9fb1cLpeVhwYAABHKUozExcVp2rRpYcfGjh2r+Pj40PHS0lK1tbVp27ZtkqQNGzYoJSVFGRkZ6urqUkVFhbxer7xe7xA9BQAAMJIN+HtG+tLe3q6WlpbQfldXl0pKStTW1qbY2FhlZGRo9+7dys/PH+qHBgAAI9CgY6S6ujps/+233w7bf/HFF/Xiiy8O9mEAAECE4rdpAACAUcQIAAAwihgBAABGESMAAMAoYgQAABhFjAAAAKOIEQAAYBQxAgAAjCJGAACAUcQIAAAwihgBAABGESMAAMAoYgQAABg16F/tBTByfPXVV5KkY8eOGZ7kXy5evKjTp08rJSVFsbGxpseRJDU0NJgeAbipECPATaSxsVGStGLFCsOTjAxxcXGmRwBuCsQIcBMpKCiQJKWnp2vMmDFmh/l/DQ0NWrp0qSoqKjR16lTT44TExcXpzjvvND0GcFMgRoCbyNe+9jU9/fTTpsfo1dSpUzVz5kzTYwAwgAtYAQCAUcQIAAAwihgBAABGESMAAMAoYgQAABhFjAAAAKOIEQAAYBQxAgAAjCJGAACAUcQIAAAwihgBAABGESMAAMAoYgQAABhFjAAAAKMGFSMej0c2m00vvPDCNdfV1NQoKytLMTExmjx5sjZv3jyYhwUAABFkwDFy5MgRbdmyRdOnT7/muubmZuXn5ys3N1f19fUqKyvTypUr5fV6B/rQAAAgggwoRr788kstWbJEb775pm677bZrrt28ebMmTZqkDRs2aOrUqXr66af1ve99T+vXrx/QwAAAILJED+SkoqIiPfLII3rooYe0du3aa66tra3V3Llzw47NmzdP5eXlunTpkkaPHn3VOYFAQIFAILTv9/sHMiaA/5KvvvpKjY2NQ3JfDQ0NYf87WOnp6RozZsyQ3BeA4WE5RrZv365jx47pyJEj/Vrv8/mUmJgYdiwxMVGXL1/WuXPn5HK5rjrH4/FozZo1VkcDMEwaGxuVlZU1pPe5dOnSIbmfuro6zZw5c0juC8DwsBQjra2tev7557Vv3z7FxMT0+zybzRa2HwwGez1+RWlpqYqLi0P7fr9fbrfbyqgA/ovS09NVV1c3JPd18eJFnT59WikpKYqNjR30/aWnpw/BVACGk6UYqaurU0dHR9i/iLq7u3Xw4EG9/vrrCgQCioqKCjsnKSlJPp8v7FhHR4eio6MVHx/f6+PY7XbZ7XYrowEYRmPGjBnSdx/uv//+IbsvACOPpRjJy8vT8ePHw4499dRTSk9P1+rVq68KEUnKycnRr3/967Bj+/btU3Z2dq/XiwAAgJuLpRiJi4vTtGnTwo6NHTtW8fHxoeOlpaVqa2vTtm3bJEmFhYV6/fXXVVxcrBUrVqi2tlbl5eV67733hugpAACAkWzIv4G1vb1dLS0tof3U1FTt2bNH1dXVuueee/Tyyy9r48aNWrRo0VA/NAAAGIFswStXk97A/H6/nE6nOjs75XA4TI8DAAD6ob+v3/w2DQAAMIoYAQAARhEjAADAKGIEAAAYRYwAAACjiBEAAGAUMQIAAIwiRgAAgFHECAAAMIoYAQAARhEjAADAKGIEAAAYRYwAAACjiBEAAGAUMQIAAIwiRgAAgFHECAAAMIoYAQAARhEjAADAKGIEAAAYRYwAAACjiBEAAGAUMQIAAIwiRgAAgFHECAAAMIoYAQAARhEjAADAKGIEAAAYRYwAAACjiBEAAGAUMQIAAIyyFCObNm3S9OnT5XA45HA4lJOTow8++KDP9dXV1bLZbFdtjY2Ngx4cAABEhmgriydOnKhXXnlFaWlpkqR33nlHjz76qOrr65WRkdHneadOnZLD4QjtT5gwYYDjAgCASGMpRhYsWBC2/9Of/lSbNm3S4cOHrxkjCQkJGjdu3IAGBAAAkW3A14x0d3dr+/btunDhgnJycq65dsaMGXK5XMrLy9OBAweue9+BQEB+vz9sAwAAkclyjBw/fly33nqr7Ha7CgsLtXPnTt111129rnW5XNqyZYu8Xq8qKys1ZcoU5eXl6eDBg9d8DI/HI6fTGdrcbrfVMQEAwAhhCwaDQSsndHV1qaWlRf/4xz/k9Xr1i1/8QjU1NX0GyX9asGCBbDabqqqq+lwTCAQUCARC+36/X263W52dnWHXngAAgBuX3++X0+m87uu3pWtGJOmWW24JXcCanZ2tI0eO6LXXXtPPf/7zfp0/a9YsVVRUXHON3W6X3W63OhoAABiBBv09I8FgMOxdjOupr6+Xy+Ua7MMCAIAIYemdkbKyMs2fP19ut1vnz5/X9u3bVV1drb1790qSSktL1dbWpm3btkmSNmzYoJSUFGVkZKirq0sVFRXyer3yer1D/0wAAMCIZClGvvjiCz3xxBNqb2+X0+nU9OnTtXfvXj388MOSpPb2drW0tITWd3V1qaSkRG1tbYqNjVVGRoZ2796t/Pz8oX0WAABgxLJ8AasJ/b0ABgAA3Dj6+/rNb9MAAACjiBEAAGAUMQIAAIwiRgAAgFHECAAAMIoYAQAARhEjAADAKGIEAAAYRYwAAACjiBEAAGAUMQIAAIwiRgAAgFHECAAAMIoYAQAARhEjAADAKGIEAAAYRYwAAACjiBEAAGAUMQIAAIwiRgAAgFHECAAAMIoYAQAARhEjAADAKGIEAAAYRYwAAACjiBEAAGAUMQIAAIwiRgAAgFHECAAAMIoYAQAARkWbHgDAzau7u1uHDh1Se3u7XC6XcnNzFRUVZXosAMPM0jsjmzZt0vTp0+VwOORwOJSTk6MPPvjgmufU1NQoKytLMTExmjx5sjZv3jyogQFEhsrKSqWlpWnOnDl6/PHHNWfOHKWlpamystL0aACGmaUYmThxol555RUdPXpUR48e1be//W09+uijOnnyZK/rm5ublZ+fr9zcXNXX16usrEwrV66U1+sdkuEBjEyVlZVavHixMjMzVVtbq/Pnz6u2tlaZmZlavHgxQQLcZGzBYDA4mDsYP368fvazn+n73//+VbetXr1aVVVVamhoCB0rLCzUJ598otra2n4/ht/vl9PpVGdnpxwOx2DGBWBYd3e30tLSlJmZqffff1+jRv3r30Q9PT0qKCjQiRMn1NTUxEc2wAjX39fvAV/A2t3dre3bt+vChQvKycnpdU1tba3mzp0bdmzevHk6evSoLl261Od9BwIB+f3+sA1AZDh06JBOnz6tsrKysBCRpFGjRqm0tFTNzc06dOiQoQkBDDfLMXL8+HHdeuutstvtKiws1M6dO3XXXXf1utbn8ykxMTHsWGJioi5fvqxz5871+Rgej0dOpzO0ud1uq2MCuEG1t7dLkqZNm9br7VeOX1kHIPJZjpEpU6bo448/1uHDh/WDH/xAy5cv15/+9Kc+19tstrD9K58K/efxf1daWqrOzs7Q1traanVMADcol8slSTpx4kSvt185fmUdgMhnOUZuueUWpaWlKTs7Wx6PR3fffbdee+21XtcmJSXJ5/OFHevo6FB0dLTi4+P7fAy73R76i50rG4DIkJubq5SUFK1bt049PT1ht/X09Mjj8Sg1NVW5ubmGJgQw3Ab9pWfBYFCBQKDX23JycrR///6wY/v27VN2drZGjx492IcGMAJFRUXp1Vdf1a5du1RQUBD21zQFBQXatWuX1q9fz8WrwE3EUoyUlZWFLj47fvy4fvSjH6m6ulpLliyR9M+PV5YtWxZaX1hYqDNnzqi4uFgNDQ3aunWrysvLVVJSMrTPAsCIsnDhQu3YsUPHjx/X7Nmz5XA4NHv2bJ04cUI7duzQwoULTY8IYBhZ+gbWL774Qk888YTa29vldDo1ffp07d27Vw8//LCkf15w1tLSElqfmpqqPXv2aNWqVXrjjTeUnJysjRs3atGiRUP7LACMOAsXLtSjjz7KN7ACGPz3jAwHvmcEAICR57/+PSMAAABDgRgBAABGESMAAMAoYgQAABhFjAAAAKOIEQAAYBQxAgAAjCJGAACAUcQIAAAwihgBAABGESMAAMAoYgQAABhFjAAAAKOIEQAAYBQxAgAAjCJGAACAUcQIAAAwihgBAABGESMAAMAoYgQAABhFjAAAAKOIEQAAYBQxAgAAjCJGAACAUcQIAAAwihgBAABGESMAAMAoYgQAABhFjAAAAKOIEQAAYBQxAgAAjLIUIx6PR/fee6/i4uKUkJCggoICnTp16prnVFdXy2azXbU1NjYOanAAABAZLMVITU2NioqKdPjwYe3fv1+XL1/W3LlzdeHCheuee+rUKbW3t4e2O++8c8BDAwCAyBFtZfHevXvD9t966y0lJCSorq5ODz744DXPTUhI0Lhx4ywPCAAAItugrhnp7OyUJI0fP/66a2fMmCGXy6W8vDwdOHDgmmsDgYD8fn/YBgAAItOAYyQYDKq4uFgPPPCApk2b1uc6l8ulLVu2yOv1qrKyUlOmTFFeXp4OHjzY5zkej0dOpzO0ud3ugY4JAABucLZgMBgcyIlFRUXavXu3fve732nixImWzl2wYIFsNpuqqqp6vT0QCCgQCIT2/X6/3G63Ojs75XA4BjIuAAAYZn6/X06n87qv3wN6Z+S5555TVVWVDhw4YDlEJGnWrFlqamrq83a73S6HwxG2AQCAyGTpAtZgMKjnnntOO3fuVHV1tVJTUwf0oPX19XK5XAM6FwAARBZLMVJUVKR3331Xv/rVrxQXFyefzydJcjqdio2NlSSVlpaqra1N27ZtkyRt2LBBKSkpysjIUFdXlyoqKuT1euX1eof4qQAAgJHIUoxs2rRJkvStb30r7Phbb72lJ598UpLU3t6ulpaW0G1dXV0qKSlRW1ubYmNjlZGRod27dys/P39wkwMAgIgw4AtYh1N/L4ABAAA3jv/qBawAAABDhRgBAABGESMAAMAoYgQAABhFjAAAAKOIEQAAYBQxAgAAjCJGAACAUcQIAAAwihgBAABGESMAAMAoYgQAABhFjAAAAKOIEQAAYBQxAgAAjCJGAACAUcQIAAAwihgBAABGESMAAMAoYgQAABhFjAAAAKOIEQAAYBQxAgAAjCJGAACAUcQIAAAwihgBAABGESMAAMAoYgQAABhFjAAAAKOIEQAAYFS06QEA3Ly6u7t16NAhtbe3y+VyKTc3V1FRUabHAjDMLL0z4vF4dO+99youLk4JCQkqKCjQqVOnrnteTU2NsrKyFBMTo8mTJ2vz5s0DHhhAZKisrFRaWprmzJmjxx9/XHPmzFFaWpoqKytNjwZgmFmKkZqaGhUVFenw4cPav3+/Ll++rLlz5+rChQt9ntPc3Kz8/Hzl5uaqvr5eZWVlWrlypbxe76CHBzAyVVZWavHixcrMzFRtba3Onz+v2tpaZWZmavHixQQJcJOxBYPB4EBP/utf/6qEhATV1NTowQcf7HXN6tWrVVVVpYaGhtCxwsJCffLJJ6qtre3X4/j9fjmdTnV2dsrhcAx0XAA3gO7ubqWlpSkzM1Pvv/++Ro3617+Jenp6VFBQoBMnTqipqYmPbIARrr+v34O6gLWzs1OSNH78+D7X1NbWau7cuWHH5s2bp6NHj+rSpUu9nhMIBOT3+8M2AJHh0KFDOn36tMrKysJCRJJGjRql0tJSNTc369ChQ4YmBDDcBhwjwWBQxcXFeuCBBzRt2rQ+1/l8PiUmJoYdS0xM1OXLl3Xu3Llez/F4PHI6naHN7XYPdEwAN5j29nZJ6vO/G1eOX1kHIPINOEaeffZZ/fGPf9R777133bU2my1s/8onQ/95/IrS0lJ1dnaGttbW1oGOCeAG43K5JEknTpzo9fYrx6+sAxD5BhQjzz33nKqqqnTgwAFNnDjxmmuTkpLk8/nCjnV0dCg6Olrx8fG9nmO32+VwOMI2AJEhNzdXKSkpWrdunXp6esJu6+npkcfjUWpqqnJzcw1NCGC4WYqRYDCoZ599VpWVlfrtb3+r1NTU656Tk5Oj/fv3hx3bt2+fsrOzNXr0aGvTAhjxoqKi9Oqrr2rXrl0qKCgI+2uagoIC7dq1S+vXr+fiVeAmYilGioqKVFFRoXfffVdxcXHy+Xzy+Xy6ePFiaE1paamWLVsW2i8sLNSZM2dUXFyshoYGbd26VeXl5SopKRm6ZwFgRFm4cKF27Nih48ePa/bs2XI4HJo9e7ZOnDihHTt2aOHChaZHBDCMLP1pb1/XeLz11lt68sknJUlPPvmkTp8+rerq6tDtNTU1WrVqlU6ePKnk5GStXr1ahYWF/R6SP+0FIhPfwApEtv6+fg/qe0aGCzECAMDIMyzfMwIAADBYxAgAADCKGAEAAEYRIwAAwChiBAAAGEWMAAAAo4gRAABgFDECAACMIkYAAIBR0aYH6I8rXxLr9/sNTwIAAPrryuv29b7sfUTEyPnz5yVJbrfb8CQAAMCq8+fPy+l09nn7iPhtmp6eHp09e1ZxcXF9/lgfgJHJ7/fL7XartbWV354CIkwwGNT58+eVnJysUaP6vjJkRMQIgMjFD2EC4AJWAABgFDECAACMIkYAGGW32/WTn/xEdrvd9CgADOGaEQAAYBTvjAAAAKOIEQAAYBQxAgAAjCJGAACAUcQIACMOHjyoBQsWKDk5WTabTe+//77pkQAYQowAMOLChQu6++679frrr5seBYBhI+KH8gBEnvnz52v+/PmmxwBwA+CdEQAAYBQxAgAAjCJGAACAUcQIAAAwihgBAABG8dc0AIz48ssv9emnn4b2m5ub9fHHH2v8+PGaNGmSwckADDd+tReAEdXV1ZozZ85Vx5cvX6633357+AcCYAwxAgAAjOKaEQAAYBQxAgAAjCJGAACAUcQIAAAwihgBAABGESMAAMAoYgQAABhFjAAAAKOIEQAAYBQxAgAAjCJGAACAUcQIAAAw6v8AZx0D/zRTGc4AAAAASUVORK5CYII=\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# your code here\n", - "sorted_rolls = dice_df['Number'].sort_values()\n", - "\n", - "plt.boxplot(sorted_rolls)" - ] - }, - { - "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": 92, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " Dice number Frequency\n", - "0 2 1\n", - "1 3 1\n", - "2 4 1\n", - "3 5 5\n", - "4 6 2\n" - ] - } - ], - "source": [ - "#https://stackoverflow.com/questions/41551658/how-to-create-a-frequency-distribution-table-on-given-data-with-python-in-jupyte\n", - "\n", - "#Calculate the freq dist and sort by dice number (index)\n", - "frequency_distribution = pd.Series(sorted_rolls).value_counts().sort_index().reset_index()\n", - "#Why do we need to reset ?\n", - "\n", - "frequency_distribution.columns = ['Dice number', 'Frequency']\n", - "\n", - "print(frequency_distribution)\n" - ] - }, - { - "cell_type": "code", - "execution_count": 136, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 136, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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F3eXAickJCTIYrE4/FSsWNHdZcEJv/32m3r27KmyZcvK399fjRs31rZt29xSC0HlOuvWrdPAgQO1efNmrVy5UlevXtXjjz+ujIwMd5eGQqpSpYrGjh2rrVu3auvWrXr00UfVqVMn/fjjj+4uDU7asmWLPvzwQzVq1MjdpeAO1K9fXydOnLD/7Nq1y90loZDOnTun5s2by9vbW8uWLdOePXs0adIklS5d2i31FOuP0He15cuXO0zPnj1boaGh2rZtm1q2bOmmquCMjh07Oky/+eabmjZtmjZv3qz69eu7qSo469KlS+rRo4dmzJihMWPGuLsc3AEvLy9GUYqpcePGKTw8XLNnz7bPq1atmtvqYUTlFi5cuCBJCgkJcXMluBO5ublasGCBMjIyFBMT4+5y4ISBAweqffv2euyxx9xdCu7Q/v37FRYWpsjISD333HM6cOCAu0tCIX311VeKjo7WM888o9DQUDVp0kQzZsxwWz0ElZswDENDhw7VI488ogYNGri7HDhh165dCggIkNVq1YsvvqjFixerXr167i4LhbRgwQJt375dSUlJ7i4Fd+ihhx7S3LlztWLFCs2YMUMnT55Us2bNlJaW5u7SUAgHDhzQtGnTVKtWLa1YsUIvvviiBg8erLlz57qlHj6Z9iYGDhyopUuX6rvvvivyb2iGa125ckVHjhzR+fPn9e9//1szZ87UunXrCCvFwNGjRxUdHa1vv/1WUVFRkqTWrVurcePGevvtt91bHO5YRkaGatSooVdffVVDhw51dzm4DR8fH0VHR2vjxo32eYMHD9aWLVu0adOm370eRlQKMGjQIH311VdKTk4mpBRDPj4+qlmzpqKjo5WUlKSoqChNmTLF3WWhELZt26bU1FTdf//98vLykpeXl9atW6d33nlHXl5eys3NdXeJuAOlSpVSw4YNtX//fneXgkKoVKlSvj/s6tatqyNHjrilHm6mvY5hGBo0aJAWL16stWvXKjIy0t0lwQUMw1B2dra7y0AhxMbG5ns6pG/fvrrvvvv02muvydPT002V4W5kZ2dr7969atGihbtLQSE0b94830dz/Pzzz4qIiHBLPQSV6wwcOFDz5s3TkiVLFBgYqJMnT0qSgoOD5efn5+bqUBgjRozQE088ofDwcF28eFELFizQ2rVr8z3RBXMKDAzMd09YqVKlVLZsWe4VK0aG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Xss3CnOnrly5on79+umNN97Q4cOHNWrUKL388svy8PBQYGCghg8frldeeUU2m02PPPKI0tPTtXHjRgUEBKh3795O7att27b67rvv9Je//MU+77333tOmTZu0c+dOhYeHa9myZerRo4e+//57+fj4SLoWnqxWq2JiYlzyOwP3Oh5PBu4By5cvV6VKlVStWjW1a9dOycnJeuedd7RkyRKH+0Wu5+Pjo2+//VahoaGKj49Xw4YNNXbsWPv6bdu21TfffKOVK1fqgQce0MMPP6zJkycrIiLirmqdNGmSwsPD1bJlS3Xv3l3Dhw+/6f0uzoqNjVWtWrXUsmVLPfvss+rYsaMSEhLsy0ePHq2RI0cqKSlJdevWVdu2bfX111/f9PLYrQwYMED/+c9/dOHCBUnSTz/9pL/+9a96//33FR4eLulacDl//rzDh8LNnz9fPXr0cNnvDNzrLMaNF4sBAIXy7LPPqkmTJnr99dcLtf7p06d13333aevWrXcUjoCSiBEVALhDEyZMUEBAQKHXP3jwoN5//31CCuAERlQAAIBpMaICAABMi6ACAABMi6ACAABMi6ACAABMi6ACAABMi6ACAABMi6ACAABMi6ACAABMi6ACAABM6/8DwgXJesyA1dgAAAAASUVORK5CYII=\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "plt.xlabel('Dice number (x)')\n", - "plt.ylabel('Frequency (y)')\n", - "plt.title('Frequency distribution - Dice Rolls ')\n", - "\n", - "plt.yticks(range(min(sorted_rolls), max(sorted_rolls) + 1))\n", - "plt.xticks(range(min(sorted_rolls), max(sorted_rolls) + 1))\n", - "\n", - "sorted_rolls.hist(bins=6, edgecolor='black')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# What is the relation between this plot and the plot above? \n", - "\n", - "# We can see that the median is the same on both graphs (5)\n", - "# Negatively skewed\n", - "# Also they show the same percentiles (develop here)\n", - "\n", - "#Frequency distribution graph is \"easier to read\" and should be used for data presentation to the stakeholders." - ] - }, - { - "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": 95, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "4.6\n" - ] - } - ], - "source": [ - "# your code here\n", - "def calculate_mean(data):\n", - " mean = sum(data)/len(data)\n", - " return mean\n", - "\n", - "print(calculate_mean(dice_rolls))" - ] - }, - { - "cell_type": "code", - "execution_count": 96, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "4.6\n" - ] - } - ], - "source": [ - "#Other method\n", - "\n", - "def mean(data):\n", - " \n", - " total_sum = 0\n", - " len_data = 0\n", - " \n", - " for value in data:\n", - " total_sum += value\n", - " len_data += 1\n", - "\n", - " mean = total_sum / len_data\n", - "\n", - " return mean\n", - "\n", - "print(mean(dice_rolls))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### 2.- First, calculate the frequency distribution. Then, calculate the mean using the values of the frequency distribution you've just computed. You are not allowed to use any methods or functions that directly calculate the mean value. " - ] - }, - { - "cell_type": "code", - "execution_count": 97, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " Dice number Frequency\n", - "0 2 1\n", - "1 3 1\n", - "2 4 1\n", - "3 5 5\n", - "4 6 2\n", - "Mean is 2.0\n" - ] - } - ], - "source": [ - "# your code here\n", - "frequency_distribution = dice_df.value_counts().sort_index().reset_index() #chaining method\n", - "frequency_distribution.columns = ['Dice number', 'Frequency']\n", - "print(frequency_distribution)\n", - "\n", - "#Calculate mean by calling function\n", - "mean_frequency_distribution = mean(frequency_distribution['Frequency']) \n", - "print(f'Mean is {mean_frequency_distribution}')\n", - "\n", - "# Why the result is not the same as when we calculate the mean ?" - ] - }, - { - "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": 98, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[2, 3, 4, 5, 5, 5, 5, 5, 6, 6]\n", - "10\n", - "Median is 5.0\n" - ] - } - ], - "source": [ - "# Method without function\n", - "\n", - "# your code here\n", - "\n", - "#Convert values into list to calculate the median\n", - "values_list = sorted_rolls.to_list()\n", - "print(values_list)\n", - "\n", - "print(len(values_list)) #Median = value in the middle \n", - "#If even number, we take the two elements in the list divided by 2\n", - "\n", - "median = (values_list[4] + values_list[5])/2\n", - "print(f'Median is {median}')" - ] - }, - { - "cell_type": "code", - "execution_count": 99, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Median is 5.0\n" - ] - } - ], - "source": [ - "#With function\n", - "\n", - "def median(lst):\n", - " sortedlst = sorted(lst)\n", - " lstlen = len(lst)\n", - " index = (lstlen - 1) // 2\n", - " \n", - " if (lstlen % 2):\n", - " return sortedlst[index] #if total list values is even \n", - " else:\n", - " return (sortedlst[index] + sortedlst[index + 1])/2.0 #if total list values is odd\n", - "\n", - "#values_list = [2, 2, 2, 4, 4, 4, 4, 5, 6, 6]\n", - "calculate_median = median(values_list)\n", - "print(f'Median is {calculate_median}')" - ] - }, - { - "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": 100, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "the first quartile is 4.25\n", - "the second quartile is 5.0\n", - "the third quartile is 5.0\n", - "the fourth quartile is 6\n" - ] - } - ], - "source": [ - "#Comparing with results given by quantile formula\n", - "\n", - "q1 = np.quantile(values_list, 0.25) \n", - "print(\"the first quartile is\", q1)\n", - "q2 = np.quantile(values_list, 0.50)\n", - "print(\"the second quartile is\",q2)\n", - "q3 = np.quantile(values_list, 0.75)\n", - "print(\"the third quartile is\", q3)\n", - "q4 = np.quantile(values_list, 1)\n", - "print(\"the fourth quartile is\", q4)" - ] - }, - { - "cell_type": "code", - "execution_count": 101, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Q1: 4.00, Q2: 5.0, Q3: 5.00, Q4: 6.00\n" - ] - } - ], - "source": [ - "# Find quartiles \n", - "\n", - "def quartiles(lst):\n", - " sortedlst = sorted(lst)\n", - " lstlen = len(lst)\n", - " \n", - " middle = len(lst)//2\n", - "\n", - "# lower quartile\n", - " q1_lower_quartile = median(lst[:middle])\n", - "\n", - "# median\n", - " q2 = median(lst)\n", - "\n", - "# upper quartile\n", - " q3_upper_quartile = median(lst[middle:])\n", - " \n", - " return q1_lower_quartile, q2, q3_upper_quartile\n", - "\n", - "#fourth quartile =max value\n", - " q4 = max(lst)\n", - " \n", - "\n", - "q1_lower_quartile, q2, q3_upper_quartile = quartiles(values_list)\n", - "print(f'Q1: {q1_lower_quartile:.2f}, Q2: {q2}, Q3: {q3_upper_quartile:.2f}, Q4: {q4:.2f}')" - ] - }, - { - "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": 138, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Unnamed: 0rollvalue
0001
1112
2226
3331
4446
5555
6662
7772
8884
9991
\n", - "
" - ], - "text/plain": [ - " Unnamed: 0 roll value\n", - "0 0 0 1\n", - "1 1 1 2\n", - "2 2 2 6\n", - "3 3 3 1\n", - "4 4 4 6\n", - "5 5 5 5\n", - "6 6 6 2\n", - "7 7 7 2\n", - "8 8 8 4\n", - "9 9 9 1" - ] - }, - "execution_count": 138, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# your code here\n", - "roll_dice_df = pd.read_csv('/Users/amandine/Desktop/Ironhack/03_Week/Descriptive-Stats/data/roll_the_dice_hundred.csv')\n", - "roll_dice_df.head(10)" - ] - }, - { - "cell_type": "code", - "execution_count": 84, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'whiskers': [,\n", - " ],\n", - " 'caps': [,\n", - " ],\n", - " 'boxes': [],\n", - " 'medians': [],\n", - " 'fliers': [],\n", - " 'means': []}" - ] - }, - "execution_count": 84, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAhYAAAGdCAYAAABO2DpVAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAAASE0lEQVR4nO3dX2yVd/3A8c9hZGft1naCklE5rP4ZthuyCVt0P4wZ/k1/jrgLvTBUiYmLf5pNbYxmu3GNc9U7TUjIZpbtAifGGHCJgagX0BitQpFkme0AhYjiZpZoTyl4ko3zu/jFZnXU7Wk/p4cDr1fSkOfp8+dzd958z9NzSvV6vR4AAAmWNXsAAODyISwAgDTCAgBIIywAgDTCAgBIIywAgDTCAgBIIywAgDTLl/qGFy5ciDNnzkRHR0eUSqWlvj0AsAD1ej2mp6eju7s7li2bf11iycPizJkzUalUlvq2AECC06dPx5o1a+b9/ZKHRUdHR0T8/2CdnZ1LfXsAYAGq1WpUKpXZ1/H5LHlY/Pvtj87OTmEBAC3mtR5j8PAmAJBGWAAAaYQFAJBGWAAAaYQFAJBGWAAAaYQFAJBGWAAAaYQFAJCmcFj89a9/jYGBgVi5cmW0t7fHbbfdFuPj442YDQBoMYU+0vsf//hHbN68ObZs2RL79u2LVatWxR//+Me4/vrrGzQeANBKCoXFd77znahUKvHEE0/M7uvp6cmeCQBoUYXC4umnn46PfOQj8YlPfCIOHjwYb37zm+OLX/xi3HvvvfOeU6vVolarzW5Xq9WFTwukO3fuXExOTqZc6/z583Hq1Kno6emJtra2RV+vt7c32tvbEyYDlkqhsPjTn/4UO3fujKGhoXjwwQfjd7/7Xdx///1RLpfj05/+9EXPGRkZieHh4ZRhgXyTk5OxadOmZo9xUePj47Fx48ZmjwEUUKrX6/XXe/DVV18dt99+e/z617+e3Xf//ffHoUOH4je/+c1Fz7nYikWlUompqSlfmw6XgMwVi4mJiRgYGIhdu3ZFX1/foq9nxQIuHdVqNbq6ul7z9bvQisXq1avj5ptvnrOvr68vfvKTn8x7TrlcjnK5XOQ2wBJqb29PXxXo6+uz0gBXqEJ/brp58+Z47rnn5uw7duxY3HjjjalDAQCtqVBYfOUrX4mxsbF45JFH4sSJE/HUU0/FY489FoODg42aDwBoIYXC4o477og9e/bED3/4w1i/fn1885vfjO9+97uxbdu2Rs0HALSQQs9YRETcfffdcffddzdiFgCgxfmuEAAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgTaGweOihh6JUKs35ueGGGxo1GwDQYpYXPeGWW26JX/7yl7PbV111VepAAEDrKhwWy5cvt0oBAFxU4bA4fvx4dHd3R7lcjne/+93xyCOPxFvf+tZ5j6/ValGr1Wa3q9XqwiYF5jh+/HhMT083e4w5JiYm5vx7qejo6Iibbrqp2WPAFaFUr9frr/fgffv2xblz52LdunXxwgsvxMMPPxyTk5Px7LPPxsqVKy96zkMPPRTDw8Ov2j81NRWdnZ0LnxyuYMePH49169Y1e4yWcuzYMXEBi1CtVqOrq+s1X78LhcV/mpmZibe97W3xta99LYaGhi56zMVWLCqVirCARThy5Ehs2rQpdu3aFX19fc0eZ9b58+fj1KlT0dPTE21tbc0eJyL+f/VkYGAgxsfHY+PGjc0eB1rW6w2Lwm+FvNK1114b73znO+P48ePzHlMul6NcLi/mNsA8+vr6LrkXy82bNzd7BKCJFvU5FrVaLSYmJmL16tVZ8wAALaxQWHz1q1+NgwcPxsmTJ+O3v/1tfPzjH49qtRrbt29v1HwAQAsp9FbIX/7yl/jkJz8ZL774YrzpTW+K97znPTE2NhY33nhjo+YDAFpIobDYvXt3o+YAAC4DvisEAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANIsKi5GRkSiVSvHlL385aRwAoJUtOCwOHToUjz32WGzYsCFzHgCghS0oLM6ePRvbtm2L73//+/GGN7wheyYAoEUtX8hJg4OD8dGPfjQ++MEPxsMPP/xfj63ValGr1Wa3q9XqQm4JvELppX/Fu25YFm3/PBZxxqNS/03bP4/Fu25YFqWX/tXsUeCKUDgsdu/eHUeOHIlDhw69ruNHRkZieHi48GDA/K45++c48rnrIkY/FzHa7GkubX0RceRz18XE2T9HxP80exy47BUKi9OnT8eXvvSl+PnPfx7XXHPN6zrngQceiKGhodntarUalUql2JTAHP+6bm1sfPRs/OAHP4i+3t5mj3NJm5icjG3btsXj/7u22aPAFaFQWIyPj8ff//732LRp0+y+l19+OUZHR2PHjh1Rq9XiqquumnNOuVyOcrmcMy0QERH15dfE75+/EOevXxfRfVuzx7mknX/+Qvz++QtRX/76/jMELE6hsPjABz4QzzzzzJx9n/nMZ6K3tze+/vWvvyoqAIArS6Gw6OjoiPXr18/Zd+2118bKlStftR8AuPJ4nBwASLOgPzd9pQMHDiSMAQBcDqxYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkKZQWOzcuTM2bNgQnZ2d0dnZGXfeeWfs27evUbMBAC2mUFisWbMmvv3tb8fhw4fj8OHD8f73vz8+9rGPxbPPPtuo+QCAFrK8yMFbt26ds/2tb30rdu7cGWNjY3HLLbekDgYAtJ5CYfFKL7/8cvz4xz+OmZmZuPPOO+c9rlarRa1Wm92uVqsLvSUAcIkr/PDmM888E9ddd12Uy+X4/Oc/H3v27Imbb7553uNHRkaiq6tr9qdSqSxqYADg0lU4LN7xjnfE0aNHY2xsLL7whS/E9u3b4w9/+MO8xz/wwAMxNTU1+3P69OlFDQwAXLoKvxVy9dVXx9vf/vaIiLj99tvj0KFD8b3vfS8effTRix5fLpejXC4vbkoAoCUs+nMs6vX6nGcoAIArV6EViwcffDD6+/ujUqnE9PR07N69Ow4cOBD79+9v1HwAQAspFBYvvPBCfOpTn4q//e1v0dXVFRs2bIj9+/fHhz70oUbNBwC0kEJh8fjjjzdqDgDgMuC7QgCANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEhTKCxGRkbijjvuiI6Ojli1alXcc8898dxzzzVqNgCgxRQKi4MHD8bg4GCMjY3FL37xi3jppZfiwx/+cMzMzDRqPgCghSwvcvD+/fvnbD/xxBOxatWqGB8fj/e9732pgwEAradQWPynqampiIhYsWLFvMfUarWo1Wqz29VqdTG3BCLi3LlzERFx5MiRJk8y1/nz5+PUqVPR09MTbW1tzR4nIiImJiaaPQJcURYcFvV6PYaGhuK9731vrF+/ft7jRkZGYnh4eKG3AS5icnIyIiLuvffeJk/SOjo6Opo9AlwRSvV6vb6QEwcHB+NnP/tZ/OpXv4o1a9bMe9zFViwqlUpMTU1FZ2fnQm4NV7wXX3wx9u7dG729vdHe3t7scWZNTEzEwMBA7Nq1K/r6+po9zqyOjo646aabmj0GtLRqtRpdXV2v+fq9oBWL++67L55++ukYHR39r1EREVEul6NcLi/kNsA83vjGN8ZnP/vZZo8xr76+vti4cWOzxwCaoFBY1Ov1uO+++2LPnj1x4MCBeMtb3tKouQCAFlQoLAYHB+Opp56Kn/70p9HR0RHPP/98RER0dXVdMg9qAQDNU+hzLHbu3BlTU1Nx1113xerVq2d/fvSjHzVqPgCghRR+KwQAYD6+KwQASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0hcNidHQ0tm7dGt3d3VEqlWLv3r0NGAsAaEWFw2JmZiZuvfXW2LFjRyPmAQBa2PKiJ/T390d/f38jZgEAWlzhsCiqVqtFrVab3a5Wq42+JVDAuXPnYnJyMuVaExMTc/5drN7e3mhvb0+5FrA0Gh4WIyMjMTw83OjbAAs0OTkZmzZtSr3mwMBAynXGx8dj48aNKdcClkapXq/XF3xyqRR79uyJe+65Z95jLrZiUalUYmpqKjo7Oxd6ayBJ5orF+fPn49SpU9HT0xNtbW2Lvp4VC7h0VKvV6Orqes3X74avWJTL5SiXy42+DbBA7e3tqasCmzdvTrsW0Hp8jgUAkKbwisXZs2fjxIkTs9snT56Mo0ePxooVK2Lt2rWpwwEAraVwWBw+fDi2bNkyuz00NBQREdu3b48nn3wybTAAoPUUDou77rorFvG8JwBwGfOMBQCQRlgAAGmEBQCQRlgAAGmEBQCQRlgAAGmEBQCQRlgAAGmEBQCQpuHfbvqf/v2pndVqdalvDQAs0L9ft1/r07eXPCymp6cjIqJSqSz1rQGARZqeno6urq55f1+qL/EXf1y4cCHOnDkTHR0dUSqVlvLWQINVq9WoVCpx+vTp6OzsbPY4QKJ6vR7T09PR3d0dy5bN/yTFkocFcPmqVqvR1dUVU1NTwgKuUB7eBADSCAsAII2wANKUy+X4xje+EeVyudmjAE3iGQsAII0VCwAgjbAAANIICwAgjbAAANIIC2DRRkdHY+vWrdHd3R2lUin27t3b7JGAJhEWwKLNzMzErbfeGjt27Gj2KECTLfmXkAGXn/7+/ujv72/2GMAlwIoFAJBGWAAAaYQFAJBGWAAAaYQFAJDGX4UAi3b27Nk4ceLE7PbJkyfj6NGjsWLFili7dm0TJwOWmm83BRbtwIEDsWXLllft3759ezz55JNLPxDQNMICAEjjGQsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADS/B9nJH8/99x/+QAAAABJRU5ErkJggg==\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# your code here\n", - "sorted_rolls = roll_dice_df['value'].sort_values()\n", - "\n", - "plt.boxplot(sorted_rolls)" - ] - }, - { - "cell_type": "code", - "execution_count": 105, - "metadata": {}, - "outputs": [], - "source": [ - "\n", - "#Perfect normal distribution\n", - "\n", - "#IQR (to develop)\n", - "\n", - "#Mean : around 50\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": 106, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "3.74\n" - ] - } - ], - "source": [ - "# your code here\n", - "roll_dice_df['value'] = pd.to_numeric(roll_dice_df['value']) #convert str into numerical values\n", - "\n", - "mean_hundred_dice_rolls = calculate_mean(roll_dice_df['value'])\n", - "print(mean_hundred_dice_rolls)" - ] - }, - { - "cell_type": "code", - "execution_count": 107, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "3.74\n" - ] - } - ], - "source": [ - "#Check if value with np.mean is the same :\n", - "\n", - "average = np.mean(roll_dice_df['value'])\n", - "print(average)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### 3.- Now, calculate the frequency distribution.\n" - ] - }, - { - "cell_type": "code", - "execution_count": 141, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " Dice Number Frequency\n", - "0 1 12\n", - "1 2 17\n", - "2 3 14\n", - "3 4 22\n", - "4 5 12\n", - "5 6 23\n" - ] - } - ], - "source": [ - "# your code here\n", - "frequency_distribution = roll_dice_df['value'].value_counts().sort_index().reset_index()\n", - "\n", - "frequency_distribution.columns = ['Dice Number', 'Frequency']\n", - "\n", - "print(frequency_distribution)" - ] - }, - { - "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": 146, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjMAAAHFCAYAAAAHcXhbAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAABAuUlEQVR4nO3deXgO9/7/8dct5M4iQhBJKgmtrZamVWotUqSCoJZWSwWnPV1QpSvntPhVBT2cnjaHbiScFq1TYmkpLUmqpYdqSlFLGwSxtDSRqCCZ3x+9cn97yyK5Re57kufjuua6OjOfmXnfc0/cr858ZsZiGIYhAAAAk6ri7AIAAACuB2EGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGLi0+Pl4Wi8U2eHh4KCAgQOHh4YqJidHp06cLLDN16lRZLJZyrfPw4cN2dVapUkW1atVS9+7dtWHDhutaZ3x8vG1a/v44fPjwddc8cuRIu5r/PKxdu/a614//c/W+9vb2VoMGDdSvXz/FxcUpJyenwDLdunVTt27dSrWdvXv3aurUqaU+Pq7eVv6x949//KNU67mWGTNmKCEhocD0xMREWSwWJSYmlun2UHlUdXYBQEnExcWpWbNmunz5sk6fPq0tW7Zo1qxZ+sc//qEPP/xQPXr0sLV95JFH1KtXL6fUOW7cOD300EPKzc3Vjz/+qGnTpql3797atGmTunTp4pSaiuPp6alNmzYVmN6sWTMnVFOx/Xlf//7770pLS9O6dev06KOPas6cOVq/fr3q169vaz9v3rxSb2Pv3r2aNm2aunXrpgYNGpR4OUe25YgZM2Zo8ODBGjBggN301q1ba+vWrWrevHm51IGKhzADU2jZsqXatGljGx80aJAmTJigzp07a+DAgTp48KDq1asnSapfv77dj0J5CgkJUfv27SVJnTp1UuPGjdW1a1ctWLDAJcNMlSpVbPWWxIULF+Tl5XUDK6q4CtvXI0aM0KhRo9S3b18NHjxY27Zts80rjx/2/O/T2SGiRo0apToOgatxmQmmFRISojlz5uj8+fN6++23bdOLusy0ZMkSdejQQdWrV1f16tV1++23a8GCBXZtPv/8c3Xv3l01atSQl5eXOnXqpC+++MLhGvMD2KlTp+ym//DDD+rfv79q1aolDw8P3X777Vq0aJFD2/juu+/Ut29f+fv7y2q1KigoSH369NGxY8ccrlv6v/24c+dODR48WLVq1dItt9wiSTIMQ/PmzdPtt98uT09P1apVS4MHD9bPP/9stw7DMDR79myFhobKw8NDrVu31rp16wpc1ijq8llRlx9K8j3l179nzx49+OCD8vX1Vb169TR69GhlZGTYtc3Ly9Obb75p+zw1a9ZU+/bttXr1aknSX/7yF/n5+enChQsF9tM999yjFi1alGbX2omIiNCjjz6qb775RsnJybbphV1mmj9/vsLCwlS9enX5+PioWbNmmjx5sqQ/9uGQIUMkSeHh4bZLWvmXKbt166aWLVsqOTlZHTt2lJeXl0aPHl3ktvL3y6uvvqqQkBB5eHioTZs2BfbzyJEjCz0LdPXfocViUXZ2thYtWmSrLX+bRX3Pq1evVocOHeTl5SUfHx/17NlTW7duLXQ7JfmeUXERZmBqvXv3lpubm92PQGFefvllDRs2TEFBQYqPj9fKlSsVHR2tI0eO2Nq8//77ioiIUI0aNbRo0SJ99NFH8vPz07333utwoElNTZUkNWnSxDZt//796tixo/bs2aM33nhDK1asUPPmzTVy5EjNnj27VOvPzs5Wz549derUKf373//Wxo0b9frrryskJETnz58v0TquXLliN+Tm5trNHzhwoBo1aqTly5frrbfekiQ99thjevrpp9WjRw8lJCRo3rx52rNnjzp27GgX3KZNm6YXXnhBPXv2VEJCgp544gk9+uij2r9/f6k+55+V9nsaNGiQmjRpoo8//lgvvviilixZogkTJti1GTlypMaPH6+2bdvqww8/1LJly9SvXz9buBo/frzOnTunJUuW2C23d+9ebd68WWPGjHH480hSv379JKnY43jZsmV68skn1bVrV61cuVIJCQmaMGGCsrOzJUl9+vTRjBkzJEn//ve/tXXrVm3dulV9+vSxrSM9PV3Dhw/XQw89pE8//VRPPvlksXXFxsZq/fr1ev311/X++++rSpUqioyMLBAoSmLr1q3y9PRU7969bbUVd3lryZIl6t+/v2rUqKGlS5dqwYIFOnfunLp166YtW7YUaF+S7xkVmAG4sLi4OEOSsX379iLb1KtXz7j11ltt41OmTDH+fGj//PPPhpubmzFs2LAi15GdnW34+fkZUVFRdtNzc3ONsLAw46677iq2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pUsXeXt7Kz09XVu2bFGrVq30xBNPqFatWnr22Wc1ffp0PfLIIxoyZIjS0tI0derUApcv2rZtq6ZNm+rZZ5/VlStXVKtWLa1cubLAXSs34nu6++679fDDD2v69Ok6deqU+vbtK6vVqu+++05eXl4aN26crW3NmjU1YsQIzZ8/X6GhoYqKiirxdvLy8mzPkcnJydHRo0e1bt06ffTRR7r11lv10UcfFbv8o48+Kk9PT3Xq1EmBgYE6efKkYmJi5Ovrq7Zt20r643lMkvTOO+/Ix8dHHh4eatiwYYFLMCXl5uamnj17auLEicrLy9OsWbOUmZmpadOm2do88MADevnllzV06FA999xzunjxot54441C+9S0atVKiYmJWrNmjQIDA+Xj41Poma0qVapo9uzZGjZsmPr27avHHntMOTk5eu211/Tbb79p5syZDn0eVGBO7HwMXFP+XS75g7u7u+Hv72907drVmDFjhnH69OkCyxR2F4VhGMbixYuNtm3bGh4eHkb16tWNO+64w+5OIcMwjKSkJKNPnz6Gn5+fUa1aNeOmm24y+vTpYyxfvrzYOvPv/njttdcKnT9kyBCjatWqxqFDhwzDMIzdu3cbUVFRhq+vr+Hu7m6EhYUVqKUkdzP9+OOPxoMPPmjccssthqenp+Hr62vcddddRnx8fLH1Gsa177DJ349nzpwpdP7ChQuNdu3aGd7e3oanp6dxyy23GCNGjDB27Nhha5OXl2fExMQYwcHBhru7u3HbbbcZa9asKXD3jGEYxoEDB4yIiAijRo0aRt26dY1x48YZn3zySaF355Tkeyqq/sLunMrNzTX++c9/Gi1btjTc3d0NX19fo0OHDsaaNWsKfO7ExERDkjFz5swi993Vrr5zzNPT0wgJCTGioqKMhQsXGjk5OQWWuXofLVq0yAgPDzfq1atnuLu7G0FBQcb9999v7Nq1y265119/3WjYsKHh5uZmd/x07drVaNGiRaH1FXU306xZs4xp06YZ9evXN9zd3Y077rjD+Oyzzwos/+mnnxq333674enpadx8881GbGxsoX+HKSkpRqdOnQwvLy+7O9quvpspX0JCgtGuXTvDw8PD8Pb2Nrp372589dVXdm1K8z2j4rIYRgm60QNAGfrzw9LM5plnntH8+fOVlpbm8BkPAGWLy0wAUALbtm3TgQMHNG/ePD322GME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W6fs7OwyLQgAAKA0HOoAnO/qcAMAAFDeShVmLBZLgT4x9JEBAADOVKo+M4ZhaOTIkbaXSV68eFGPP/54gbuZVqxYUXYVAgAAFKNUYSY6OtpufPjw4WVaDAAAQGmVKszExcXdqDoAAAAccl0dgAEAAJyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyN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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "plt.bar(frequency_distribution['Dice Number'], frequency_distribution['Frequency'], color='blue')\n", - "\n", - "plt.ylabel('Frequency')\n", - "plt.xlabel('Dice Number')\n", - "plt.title('Dice Rolls Frequency Distribution')\n", - "\n", - "plt.yticks(range(min(frequency_distribution['Frequency']), max(frequency_distribution['Frequency']) + 1))\n", - "plt.xticks(range(min(frequency_distribution['Dice Number']), max(frequency_distribution['Dice Number']) + 1))\n", - "\n", - "plt.show()" - ] - }, - { - "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": 111, - "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", - "
Unnamed: 0rollvalue
0005
1116
2221
\n", - "
" - ], - "text/plain": [ - " Unnamed: 0 roll value\n", - "0 0 0 5\n", - "1 1 1 6\n", - "2 2 2 1" - ] - }, - "execution_count": 111, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# your code here\n", - "roll_the_dice_thousand_df = pd.read_csv('/Users/amandine/Desktop/Ironhack/03_Week/Descriptive-Stats/data/roll_the_dice_thousand.csv')\n", - "roll_the_dice_thousand_df.head(3)" - ] - }, - { - "cell_type": "code", - "execution_count": 120, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " index value\n", - "0 1 175\n", - "1 2 167\n", - "2 3 175\n", - "3 4 168\n", - "4 5 149\n", - "5 6 166\n" - ] - } - ], - "source": [ - "frequency_distribution = roll_the_dice_thousand_df['value'].value_counts().sort_index().reset_index()\n", - "print(frequency_distribution)" - ] - }, - { - "cell_type": "code", - "execution_count": 121, - "metadata": {}, - "outputs": [ - { - "ename": "ValueError", - "evalue": "weights should have the same shape as x", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[121], line 3\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[38;5;66;03m#bins = frequency_distribution_2.index.to_list()\u001b[39;00m\n\u001b[0;32m----> 3\u001b[0m \u001b[43mplt\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mhist\u001b[49m\u001b[43m(\u001b[49m\u001b[43mfrequency_distribution\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mindex\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mbins\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m7\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mweights\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mfrequency_distribution\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mvalues\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 4\u001b[0m plt\u001b[38;5;241m.\u001b[39mxlabel(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mDice Values\u001b[39m\u001b[38;5;124m'\u001b[39m)\n\u001b[1;32m 5\u001b[0m plt\u001b[38;5;241m.\u001b[39mylabel(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mFrequency\u001b[39m\u001b[38;5;124m'\u001b[39m)\n", - "File \u001b[0;32m~/anaconda3/lib/python3.10/site-packages/matplotlib/pyplot.py:2618\u001b[0m, in \u001b[0;36mhist\u001b[0;34m(x, bins, range, density, weights, cumulative, bottom, histtype, align, orientation, rwidth, log, color, label, stacked, data, **kwargs)\u001b[0m\n\u001b[1;32m 2612\u001b[0m \u001b[38;5;129m@_copy_docstring_and_deprecators\u001b[39m(Axes\u001b[38;5;241m.\u001b[39mhist)\n\u001b[1;32m 2613\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mhist\u001b[39m(\n\u001b[1;32m 2614\u001b[0m x, bins\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, \u001b[38;5;28mrange\u001b[39m\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, density\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m, weights\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m,\n\u001b[1;32m 2615\u001b[0m cumulative\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m, bottom\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, histtype\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mbar\u001b[39m\u001b[38;5;124m'\u001b[39m, align\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mmid\u001b[39m\u001b[38;5;124m'\u001b[39m,\n\u001b[1;32m 2616\u001b[0m orientation\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mvertical\u001b[39m\u001b[38;5;124m'\u001b[39m, rwidth\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, log\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m, color\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m,\n\u001b[1;32m 2617\u001b[0m label\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, stacked\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m, \u001b[38;5;241m*\u001b[39m, data\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs):\n\u001b[0;32m-> 2618\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mgca\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mhist\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 2619\u001b[0m \u001b[43m \u001b[49m\u001b[43mx\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mbins\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mbins\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mrange\u001b[39;49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mrange\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdensity\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdensity\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mweights\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mweights\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 2620\u001b[0m \u001b[43m \u001b[49m\u001b[43mcumulative\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mcumulative\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mbottom\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mbottom\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mhisttype\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mhisttype\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 2621\u001b[0m \u001b[43m \u001b[49m\u001b[43malign\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43malign\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43morientation\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43morientation\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mrwidth\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mrwidth\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mlog\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mlog\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 2622\u001b[0m \u001b[43m \u001b[49m\u001b[43mcolor\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mcolor\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mlabel\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mlabel\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mstacked\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mstacked\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 2623\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43m{\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mdata\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mdata\u001b[49m\u001b[43m}\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mif\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mdata\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01mis\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;129;43;01mnot\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43;01melse\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43m{\u001b[49m\u001b[43m}\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/anaconda3/lib/python3.10/site-packages/matplotlib/__init__.py:1442\u001b[0m, in \u001b[0;36m_preprocess_data..inner\u001b[0;34m(ax, data, *args, **kwargs)\u001b[0m\n\u001b[1;32m 1439\u001b[0m \u001b[38;5;129m@functools\u001b[39m\u001b[38;5;241m.\u001b[39mwraps(func)\n\u001b[1;32m 1440\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21minner\u001b[39m(ax, \u001b[38;5;241m*\u001b[39margs, data\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs):\n\u001b[1;32m 1441\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m data \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m-> 1442\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mfunc\u001b[49m\u001b[43m(\u001b[49m\u001b[43max\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;28;43mmap\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43msanitize_sequence\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43margs\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1444\u001b[0m bound \u001b[38;5;241m=\u001b[39m new_sig\u001b[38;5;241m.\u001b[39mbind(ax, \u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n\u001b[1;32m 1445\u001b[0m auto_label \u001b[38;5;241m=\u001b[39m (bound\u001b[38;5;241m.\u001b[39marguments\u001b[38;5;241m.\u001b[39mget(label_namer)\n\u001b[1;32m 1446\u001b[0m \u001b[38;5;129;01mor\u001b[39;00m bound\u001b[38;5;241m.\u001b[39mkwargs\u001b[38;5;241m.\u001b[39mget(label_namer))\n", - "File \u001b[0;32m~/anaconda3/lib/python3.10/site-packages/matplotlib/axes/_axes.py:6731\u001b[0m, in \u001b[0;36mAxes.hist\u001b[0;34m(self, x, bins, range, density, weights, cumulative, bottom, histtype, align, orientation, rwidth, log, color, label, stacked, **kwargs)\u001b[0m\n\u001b[1;32m 6728\u001b[0m w \u001b[38;5;241m=\u001b[39m [\u001b[38;5;28;01mNone\u001b[39;00m] \u001b[38;5;241m*\u001b[39m nx\n\u001b[1;32m 6730\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mlen\u001b[39m(w) \u001b[38;5;241m!=\u001b[39m nx:\n\u001b[0;32m-> 6731\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mweights should have the same shape as x\u001b[39m\u001b[38;5;124m'\u001b[39m)\n\u001b[1;32m 6733\u001b[0m input_empty \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mTrue\u001b[39;00m\n\u001b[1;32m 6734\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m xi, wi \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mzip\u001b[39m(x, w):\n", - "\u001b[0;31mValueError\u001b[0m: weights should have the same shape as x" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "#bins = frequency_distribution_2.index.to_list()\n", - "\n", - "plt.xlabel('Dice Values')\n", - "plt.ylabel('Frequency')\n", - "plt.title('Dice Rolls Frequency Distribution')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "\"\"\"\n", - "your comments here\n", - "\"\"\"\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Challenge 4\n", - "In the `data` folder of this repository you will find three different files with the prefix `ages_population`. These files contain information about a poll answered by a thousand people regarding their age. Each file corresponds to the poll answers in different neighbourhoods of Barcelona.\n", - "\n", - "#### 1.- Read the file `ages_population.csv`. Calculate the frequency distribution and plot it as we did during the lesson. Try to guess the range in which the mean and the standard deviation will be by looking at the plot. " - ] - }, - { - "cell_type": "code", - "execution_count": 250, - "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", - "
observation
068.0
112.0
245.0
338.0
449.0
527.0
639.0
712.0
842.0
933.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\n", - "5 27.0\n", - "6 39.0\n", - "7 12.0\n", - "8 42.0\n", - "9 33.0" - ] - }, - "execution_count": 250, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# your code here\n", - "ages_population_df = pd.read_csv('/Users/amandine/Desktop/Ironhack/03_Week/Descriptive-Stats/data/ages_population.csv')\n", - "ages_population_df.head(10)" - ] - }, - { - "cell_type": "code", - "execution_count": 251, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1.0 2\n", - "2.0 2\n", - "4.0 1\n", - "5.0 2\n", - "6.0 2\n", - " ..\n", - "69.0 1\n", - "70.0 1\n", - "71.0 1\n", - "73.0 1\n", - "82.0 1\n", - "Name: observation, Length: 72, dtype: int64\n" - ] - } - ], - "source": [ - "frequency_distribution_3 = ages_population_df['observation'].value_counts().sort_index()\n", - "print(frequency_distribution_3)" - ] - }, - { - "cell_type": "code", - "execution_count": 263, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Text(0.5, 1.0, 'Ages population')" - ] - }, - "execution_count": 263, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "plt.hist(frequency_distribution_3.index, bins=200, weights=frequency_distribution_3.values)\n", - "plt.xlabel('Ages')\n", - "plt.ylabel('Frequency')\n", - "plt.title('Ages population')" - ] - }, - { - "cell_type": "code", - "execution_count": 264, - "metadata": {}, - "outputs": [], - "source": [ - "#Mean is generally around the most frequent values, so ages around 40,45\n", - "#Data are pretty sparse, so we can expect the standard deviation to be pretty high -> 1,4" - ] - }, - { - "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": 265, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "The average is 13.88888888888889, and the standard deviation is 11.183514101315424\n" - ] - } - ], - "source": [ - "# your code here\n", - "average = np.mean(frequency_distribution_3)\n", - "std_ages = np.std(frequency_distribution_3)\n", - "\n", - "print(f\"The average is {average}, and the standard deviation is {std_ages}\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "plt.figure(figsize=(10, 6))\n", - "plt.bar(df['Age'], df['Count'])\n", - "plt.xlabel('Age')\n", - "plt.ylabel('Count')\n", - "plt.title('Age Population Distribution')\n", - "plt.show()" - ] - }, - { - "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": "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 -} From 840d9367e682c58f6d0daed39c074da061b10417 Mon Sep 17 00:00:00 2001 From: Amandine0424 <138607470+Amandine0424@users.noreply.github.com> Date: Mon, 6 Nov 2023 19:01:11 +0100 Subject: [PATCH 5/6] Add files via upload --- your-code/Lab_descriptive_statistics.ipynb | 3661 ++++++++++++++++++++ 1 file changed, 3661 insertions(+) create mode 100644 your-code/Lab_descriptive_statistics.ipynb diff --git a/your-code/Lab_descriptive_statistics.ipynb b/your-code/Lab_descriptive_statistics.ipynb new file mode 100644 index 0000000..be0145b --- /dev/null +++ b/your-code/Lab_descriptive_statistics.ipynb @@ -0,0 +1,3661 @@ +{ + "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 pandas as pd\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Challenge 1\n", + "#### 1.- Define a function that simulates rolling a dice 10 times. Save the information in a dataframe.\n", + "**Hint**: you can use the *choices* function from module *random* to help you with the simulation." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "# Method saw in lab class with Jesus \n", + "\n", + "import random\n", + "\n", + "def dice_throw(n):\n", + " return pd.DataFrame({'Number':[random.choice(np.arange(1, 7, 1)) for i in range(n)]}) #give a set of value to random choice\n" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "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", + "
Number
11
23
31
43
52
64
74
83
96
106
\n", + "
" + ], + "text/plain": [ + " Number\n", + "1 1\n", + "2 3\n", + "3 1\n", + "4 3\n", + "5 2\n", + "6 4\n", + "7 4\n", + "8 3\n", + "9 6\n", + "10 6" + ] + }, + "execution_count": 34, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dice_values = dice_throw(10)\n", + "\n", + "# Reset the index to start from 1\n", + "dice_values = dice_values.reset_index(drop=True)\n", + "\n", + "# Increment the index by 1 to start from 1\n", + "dice_values.index += 1\n", + "\n", + "dice_values" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "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", + "
Number
04
15
25
35
46
54
63
73
84
94
\n", + "
" + ], + "text/plain": [ + " Number\n", + "0 4\n", + "1 5\n", + "2 5\n", + "3 5\n", + "4 6\n", + "5 4\n", + "6 3\n", + "7 3\n", + "8 4\n", + "9 4" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# your code here\n", + "\n", + "import random\n", + "\n", + "\n", + "def rolling_dice():\n", + " return pd.DataFrame({'Number': random.choices(range(1, 7), k=10)}) #6 angles of the dice, rolling 10 times\n", + "\n", + "dice_rolls = rolling_dice()\n", + "\n", + "dice_rolls.head(10)\n", + "\n", + "#pd.DataFrame important :\n", + "\n", + "#DataFrame = tableau Excel, possible de faire des modifications\n", + "#(diff tableau algorythmique qui est non modifiable)\n", + "#Dataframe peut contenir str, float, int." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 2.- Plot the results sorted by value." + ] + }, + { + "cell_type": "code", + "execution_count": 63, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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9HQEBgbKjkFERESVcOnSpcfOjGzSRaV4avNLly4ZfLpuIiIiqh5qtRqBgYHl+swrky4qxZd7XFxcWFSIiIhMTHmGbXAwLRERERktFhUiIiIyWiwqREREZLRYVIiIiMhosagQERGR0WJRISIiIqPFokJERERGi0WFiIiIjBaLChERERktFhUiIiIyWtKLSlpaGp5//nm4u7vDwcEBEREROHz4sOxYREREZASkftbPrVu30LZtW3Ts2BG//fYbvLy8cObMGdSqVUtmLCIiIjISUovKhx9+iMDAQCxfvly/rF69evICERERGcD12xrkFWhlxzAIexsruDuppO1falH5+eef8cwzz+C5557Drl274O/vj5deegnjx48vc32NRgONRqN/rFarayoqERFRufwYdwmvrU2SHcNg+oT74fNhkdL2L7WonD17FkuXLsXUqVMxY8YMHDx4EBMnToRKpcLIkSNLrT937lzMnj1bQlIiIqLHE0Lgm73nAAA2VgooFQrJiarO2kruMSiEEELWzm1tbdGyZUvs27dPv2zixImIi4vD/v37S61f1hmVwMBAZGdnw8XFpUYyExERPcyxtGz0+mIvbK2ViHuzC1ztbWRHMkpqtRqurq7lev+WetePr68vmjVrVmJZ06ZNcfHixTLXV6lUcHFxKfFFRERkLNYcvgwA6NbMmyXFQKQWlbZt2+LUqVMllp0+fRp169aVlIiIiKhy8gt12JiYBgAY2CJAchrzIbWoTJkyBQcOHMCcOXOQmpqK2NhYfPXVV4iJiZEZi4iIqMJ2nMrErTsF8HJW4emGHrLjmA2pReWJJ57A+vXrsWrVKjRv3hzvvfcePv30U4wYMUJmLCIiogorvuzTP9If1lbS51M1G1Lv+gGAXr16oVevXrJjEBERVdqN2xrsOJkJgJd9DI2Vj4iIqIo2JqajUCcQFuCKxt7OsuOYFRYVIiKiKlobX3TZZ2AUz6YYGosKERFRFSRfUeN4uho2Vgr0CfeTHcfssKgQERFVwdp7g2g7B3ujtqOt5DTmh0WFiIiokgq0OmxITAcADOIg2mrBokJERFRJu09fw/XbGrg72qJDE0/ZccwSiwoREVElFQ+i7RvhDxvOnVIt+KoSERFVQtadfPx+omjuFF72qT4sKkRERJWw6Ug68rU6NPV1QTM/fkhudWFRISIiqoQ18UUfQMiz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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "#Jesus' method\n", + "\n", + "#Here sort it by value, not frequency distribution\n", + "dice = dice_values.sort_values(by='Number').reset_index()['Number'] \n", + "#by = name of the column\n", + "#reset index so we have value count plot (otherwise we have plot as we would not done value count as \n", + "#we reset the number)\n", + "\n", + "#After resetting the index, we select the 'Number' column using square brackets, \n", + "#which returns a Series containing only the 'Number' column. \n", + "#This is useful to work with the sorted and reset 'Number' values as a 1-D data structure (Series) \n", + "#rather than a 2-D DataFrame.\n", + "\n", + "\n", + "#Step 2 - Set parameters \n", + "plt.plot(range(1, len(dice) + 1), dice)\n", + "\n", + "# Set x-axis ticks starting from 1 with a step of 1\n", + "plt.xticks(range(1, len(dice) + 1))\n", + "\n", + "# Set y-axis ticks starting from 1 with a step of 1\n", + "plt.yticks(range(1, int(dice.max()) + 1))\n", + "\n", + "\n", + "plt.xlabel(\"Index\")\n", + "plt.ylabel(\"Number\")\n", + "plt.title(\"Plot of Sorted 'Number' Values\")\n", + "\n", + "plt.show()\n", + "\n", + "#Here we create a new dataframe, we sort it by column, we reset the index (we wanna get rid of the first column indexed)\n", + "#we give the column name in which we wanna put this value \n", + "#after the reset we add [name of the column] because we put the column values in it." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Plot explanation :\n", + "\n", + "1. The x-axis (horizontal) represents the index values of the DataFrame after resetting the index. These values start from 0 and go up to 9, which correspond to the sorted positions of the 'Number' values in the DataFrame.\n", + "\n", + "2. The y-axis (vertical) represents the actual 'Number' values in your DataFrame, which have been sorted in ascending order.\n", + "\n", + "The plot itself consists of points connected by lines. Each point on the plot represents a 'Number' value from your DataFrame, and the lines connect these points in ascending order." + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "0 1\n", + "1 1\n", + "2 2\n", + "3 3\n", + "4 3\n", + "5 3\n", + "6 4\n", + "7 4\n", + "8 6\n", + "9 6\n", + "Name: Number, dtype: int64" + ] + }, + "execution_count": 36, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dice #Check we now we have the column sorted by ascending order" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'whiskers': [,\n", + " ],\n", + " 'caps': [,\n", + " ],\n", + " 'boxes': [],\n", + " 'medians': [],\n", + " 'fliers': [],\n", + " 'means': []}" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAhYAAAGdCAYAAABO2DpVAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAPmElEQVR4nO3dX4iV9Z/A8c9R6aQ2M5UUOXlyShJHzUqLEtkLywg3JYK6CKcklvhBgpVEkQQpmVNX20UgWVEXUkKI0o0SXWgsZelIIOKklm7WtP5ot+aMfzqxevbiR0Pzy1k9M5+Z4+jrBSHnmefP5yaeN9955jyFarVaDQCABKPqPQAAcPEQFgBAGmEBAKQRFgBAGmEBAKQRFgBAGmEBAKQRFgBAmjHDfcEzZ85EV1dXNDQ0RKFQGO7LAwADUK1Wo6enJ5qbm2PUqP7XJYY9LLq6uqJUKg33ZQGABEePHo1Jkyb1+/NhD4uGhoaI+MdgjY2Nw315AGAAyuVylEql3vt4f4Y9LP749UdjY6OwAIAR5lyPMXh4EwBIIywAgDTCAgBIIywAgDTCAgBIIywAgDTCAgBIIywAgDTCAgBIU3NY/Pjjj9HW1hYTJkyIcePGxW233RYdHR1DMRsAMMLU9JXev/zyS8ybNy/mz58fW7dujWuvvTa+/fbbuPLKK4doPABgJKkpLF5//fUolUrx3nvv9W5raWnJngkAGKFqCouPP/447r///njkkUdix44dcf3118dTTz0VTz75ZL/HVCqVqFQqvZ/L5fLApwXSnTx5Mjo7O1POderUqThy5Ei0tLTE2LFjB32+adOmxbhx4xImA4ZLTWHx3Xffxbp162LFihWxcuXK+Oqrr2L58uVRLBbj8ccfP+sx7e3tsXr16pRhgXydnZ0xZ86ceo9xVh0dHTF79ux6jwHUoFCtVqvnu/Nll10Wd9xxR3z++ee925YvXx67du2KL7744qzHnG3FolQqRXd3t9emwwUgc8Vi//790dbWFhs2bIjW1tZBn8+KBVw4yuVyNDU1nfP+XdOKxcSJE2P69Ol9trW2tsamTZv6PaZYLEaxWKzlMsAwGjduXPqqQGtrq5UGuETV9Oem8+bNi2+++abPtgMHDsTkyZNThwIARqaawuLZZ5+NnTt3xtq1a+PQoUPxwQcfxPr162PZsmVDNR8AMILUFBZ33nlnbN68OT788MOYOXNmvPLKK/HGG2/EkiVLhmo+AGAEqekZi4iIRYsWxaJFi4ZiFgBghPOuEAAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgTU1hsWrVqigUCn3+u+6664ZqNgBghBlT6wEzZsyITz/9tPfz6NGjUwcCAEaumsNizJgxVikAgLOqOSwOHjwYzc3NUSwW46677oq1a9fGTTfd1O/+lUolKpVK7+dyuTywSYE+Dh48GD09PfUeo4/9+/f3+fdC0dDQEDfffHO9x4BLQqFarVbPd+etW7fGyZMnY+rUqXHs2LFYs2ZNdHZ2xr59+2LChAlnPWbVqlWxevXqv2zv7u6OxsbGgU8Ol7CDBw/G1KlT6z3GiHLgwAFxAYNQLpejqanpnPfvmsLin504cSKmTJkSzz//fKxYseKs+5xtxaJUKgkLGIQ9e/bEnDlzYsOGDdHa2lrvcXqdOnUqjhw5Ei0tLTF27Nh6jxMR/1g9aWtri46Ojpg9e3a9x4ER63zDouZfhfzZ+PHj45ZbbomDBw/2u0+xWIxisTiYywD9aG1tveBulvPmzav3CEAdDep7LCqVSuzfvz8mTpyYNQ8AMILVFBbPPfdc7NixIw4fPhxffvllPPzww1Eul2Pp0qVDNR8AMILU9KuQH374IR599NH4+eef45prrom77747du7cGZMnTx6q+QCAEaSmsNi4ceNQzQEAXAS8KwQASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASDOosGhvb49CoRDPPPNM0jgAwEg24LDYtWtXrF+/PmbNmpU5DwAwgg0oLI4fPx5LliyJt99+O6666qrsmQCAEWrMQA5atmxZPPDAA7FgwYJYs2bN/7tvpVKJSqXS+7lcLg/kksCf/NbzP3H7daPiP3d+HGN/PVDvcXpVKpXo6uqK5ubmKBaL9R4nIiL+6/DhuP26UVH439/qPQpcEmoOi40bN8aePXti165d57V/e3t7rF69uubBgP4d2/cfsedvV0T8/d8j/l7vafq6LSLiaJ2H+JPWiPjXv10R31f/u96jwCWhprA4evRoPP300/HJJ5/E5Zdffl7HvPjii7FixYrez+VyOUqlUm1TAn38y0P/Fps3R7S0tJz3/4vD4fDhw/HSSy/FmjVr4sYbb6z3OL3Gjx8fN9x+b73HgEtCoVqtVs935y1btsRDDz0Uo0eP7t12+vTpKBQKMWrUqKhUKn1+djblcjmampqiu7s7GhsbBz45cMHZs2dPzJkzJzo6OmL27Nn1HgdIdL7375pWLO69997Yu3dvn21PPPFETJs2LV544YVzRgUAcHGrKSwaGhpi5syZfbaNHz8+JkyY8JftAMClxzdvAgBpBvTnpn+2ffv2hDEAgIuBFQsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAIE1NYbFu3bqYNWtWNDY2RmNjY8ydOze2bt06VLMBACNMTWExadKkeO2112L37t2xe/fuuOeee+LBBx+Mffv2DdV8AMAIMqaWnRcvXtzn86uvvhrr1q2LnTt3xowZM1IHAwBGnprC4s9Onz4dH330UZw4cSLmzp3b736VSiUqlUrv53K5PNBLAkPg5MmT0dnZmXKu/fv39/l3sKZNmxbjxo1LORcwPGoOi71798bcuXPjt99+iyuuuCI2b94c06dP73f/9vb2WL169aCGBIZOZ2dnzJkzJ/WcbW1tKefp6OiI2bNnp5wLGB6FarVareWA33//Pb7//vv49ddfY9OmTfHOO+/Ejh07+o2Ls61YlEql6O7ujsbGxsFNDwxa5orFqVOn4siRI9HS0hJjx44d9PmsWMCFo1wuR1NT0znv3zWHxT9bsGBBTJkyJd56663UwQCAC8f53r8H/T0W1Wq1z4oEAHDpqukZi5UrV8bChQujVCpFT09PbNy4MbZv3x7btm0bqvkAgBGkprA4duxYPPbYY/HTTz9FU1NTzJo1K7Zt2xb33XffUM0HAIwgNYXFu+++O1RzAAAXAe8KAQDSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADS1PTNmxn+eJlquVwe7ksDAAP0x337XC9FH/aw6OnpiYiIUqk03JcGAAapp6cnmpqa+v15oXqu9Eh25syZ6OrqioaGhigUCsN5aWCIlcvlKJVKcfTo0WhsbKz3OECiarUaPT090dzcHKNG9f8kxbCHBXDxKpfL0dTUFN3d3cICLlEe3gQA0ggLACCNsADSFIvFePnll6NYLNZ7FKBOPGMBAKSxYgEApBEWAEAaYQEApBEWAEAaYQEM2meffRaLFy+O5ubmKBQKsWXLlnqPBNSJsAAG7cSJE3HrrbfGm2++We9RgDob9peQARefhQsXxsKFC+s9BnABsGIBAKQRFgBAGmEBAKQRFgBAGmEBAKTxVyHAoB0/fjwOHTrU+/nw4cPx9ddfx9VXXx033HBDHScDhpu3mwKDtn379pg/f/5fti9dujTef//94R8IqBthAQCk8YwFAJBGWAAAaYQFAJBGWAAAaYQFAJBGWAAAaYQFAJBGWAAAaYQFAJBGWAAAaYQFAJBGWAAAaf4PMLHRcNLeq7QAAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "#Boxplot\n", + "\n", + "# your code here\n", + "sorted_rolls = dice_rolls['Number'].sort_values()\n", + "\n", + "plt.yticks([1,2,3,4,5,6]) #add all values for the plot\n", + "\n", + "plt.boxplot(sorted_rolls)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Line plot:\n", + "It is often used to visualize the trend or pattern in data over a continuous or ordered variable, such as time.\n", + "\n", + "Boxplot (more useful for data summary and comparisons):\n", + "used to visualize the distribution and summary statistics of a dataset.\n", + "useful for comparing the distribution of data between different categories or groups and for identifying the presence of outliers.\n", + "\n" + ] + }, + { + "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": 64, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAioAAAHFCAYAAADcytJ5AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA0MUlEQVR4nO3de5xO5f7/8fc956NhMBjDjO0wDuO4p+yRzEiIyKGiIjPoV3ZIDu0du0LJGHZ2lC31ZeSbUM67NuVc2U0O5RBFEQbjkNMwMuawfn/4zr3dzTjdbu5rzOv5eNyPWte61lqfteZm3ta6rvu2WZZlCQAAwEAe7i4AAADgSggqAADAWAQVAABgLIIKAAAwFkEFAAAYi6ACAACMRVABAADGIqgAAABjEVQAAICxCCoodmbOnCmbzaZNmzYVub5Dhw6KiopyaIuKilJSUtINHec///mPRo0apdOnTztXaAk0b9481atXT/7+/rLZbNqyZUuR/dauXSubzaZ9+/bZ25KSkmSz2VSvXj3l5eUV2sZms2nAgAG3qPKrGzVqlGw2m3799dfbcrykpCQlJCRccf3x48fl4+Ojxx577Ip9MjMzFRAQoIceeui6j1vwZ+vynwvgbgQVlAiLFi3Syy+/fEPb/Oc//9Ho0aMJKtfp+PHjevLJJ1W9enUtX75cX3/9tWrVqnXD+9m5c6dmzpzp+gLvIOXLl9dDDz2kxYsX69SpU0X2mTt3rn777Tf17dv3NlcHuBZBBSVC48aNVb16dXeXcUNycnKUm5vr7jKu2+7du5WTk6OePXsqPj5ef/rTnxQQEHBD+wgMDNS9996rkSNH6rfffrtFlZrr/Pnz1923b9++ys7O1uzZs4tcP2PGDFWoUEEPPvigq8oD3IKgghLh949+8vPzNWbMGEVHR8vf31+lS5dWgwYNNGnSJEmXbvW/8MILkqRq1arJZrPJZrNp7dq19u3Hjx+v2rVry9fXV2FhYerVq5cOHjzocFzLsjR27FhFRkbKz89PsbGxWrFihRISEhxu7Rc8Cvnf//1fDR06VJUrV5avr69+/vlnHT9+XM8++6zq1q2roKAghYWF6b777tOXX37pcKx9+/bJZrNpwoQJSklJUVRUlPz9/ZWQkGAPES+++KLCw8MVEhKiLl266NixY9d1/ZYuXaq4uDgFBAQoODhYrVu31tdff21fn5SUpObNm0uSunfvLpvNdtVHF1eTkpKiQ4cO2X8WV3KlxxQF17LgZyVJCQkJiomJ0ddff61mzZrJ399fUVFRSk1NlSR9+umnatKkiQICAlS/fn0tX768yGOmp6era9euKlWqlEJCQtSzZ08dP368UL958+YpLi5OgYGBCgoKUtu2bfXdd9859ElKSlJQUJC2b9+uNm3aKDg4WK1atbqOK3RJ27ZtFRERYT+Hy/3www/65ptv1KtXL3l5eWnFihXq1KmTIiIi5Ofnpxo1auiZZ565rkdZV3ps+vv3sHTpcdOwYcNUrVo1+fj4qHLlynr++eeVlZXl0O/jjz9W06ZNFRISooCAAP3hD39Qnz59rvvcUbJ4ubsAwFl5eXlF3nG4ni8EHz9+vEaNGqWXXnpJLVq0UE5Ojn788Uf7Y56nnnpKJ0+e1FtvvaWFCxeqUqVKkqS6detKkv785z/r3Xff1YABA9ShQwft27dPL7/8stauXatvv/1W5cqVkyT97W9/U3Jysp5++ml17dpV6enpeuqpp5STk1PkY5Hhw4crLi5O77zzjjw8PBQWFmb/RThy5EhVrFhR586d06JFi5SQkKBVq1YV+mUxZcoUNWjQQFOmTNHp06c1dOhQdezYUU2bNpW3t7dmzJih/fv3a9iwYXrqqae0dOnSq16rDz/8UD169FCbNm00Z84cZWdna/z48fbjN2/eXC+//LLuvvtu9e/fX2PHjlXLli1VqlSpK+4zISHhij+nuLg4denSRSkpKXr66acVGhp61fqu15EjR9S7d2/95S9/UUREhN566y316dNH6enpmj9/vkaMGKGQkBC9+uqr6ty5s/bu3avw8HCHfXTp0kXdunVTv379tGPHDr388svauXOnvvnmG3l7e0uSxo4dq5deekm9e/fWSy+9pIsXL2rChAm69957tWHDBvt7SJIuXryohx56SM8884xefPFF+/v5eh59eXh4KCkpSWPGjNHWrVvVsGFD+7qC8FLwy3/Pnj2Ki4vTU089pZCQEO3bt08TJ05U8+bNtX37dnvtN+P8+fOKj4/XwYMHNWLECDVo0EA7duzQK6+8ou3bt2vlypWy2Wz6+uuv1b17d3Xv3l2jRo2Sn5+f9u/fr9WrV990DbhDWUAxk5qaakm66isyMtJhm8jISCsxMdG+3KFDB6tRo0ZXPc6ECRMsSdYvv/zi0P7DDz9Ykqxnn33Wof2bb76xJFkjRoywLMuyTp48afn6+lrdu3d36Pf1119bkqz4+Hh725o1ayxJVosWLa55/rm5uVZOTo7VqlUrq0uXLvb2X375xZJkNWzY0MrLy7O3v/nmm5Yk66GHHnLYz/PPP29Jss6cOXPFY+Xl5Vnh4eFW/fr1HfZ59uxZKywszGrWrFmhc/j444+veQ5FSUxMtAIDAy3Lsqwff/zR8vT0tIYOHWpfL8nq37+/fbngffD7n09BHWvWrLG3xcfHW5KsTZs22dtOnDhheXp6Wv7+/tahQ4fs7Vu2bLEkWZMnT7a3jRw50pJkDR482OFYs2fPtiRZH3zwgWVZlnXgwAHLy8vLGjhwoEO/s2fPWhUrVrS6devmcL6SrBkzZlzvJSpk7969ls1ms5577jl7W05OjlWxYkXrnnvuKXKb/Px8Kycnx9q/f78lyVqyZIl9XVHX9Pd/dgrEx8c7vIeTk5MtDw8Pa+PGjQ795s+fb0my/v3vf1uWZVl///vfLUnW6dOnnThjlEQ8+kGxNWvWLG3cuLHQq+ARxNXcfffd2rp1q5599ll99tlnyszMvO7jrlmzRpIK3Q6/++67VadOHa1atUqSlJaWpuzsbHXr1s2h35/+9KdCs5IKPPzww0W2v/POO2rSpIn8/Pzk5eUlb29vrVq1Sj/88EOhvu3bt5eHx3//aNepU0eSCo1VKGg/cODAFc5U2rVrlw4fPqwnn3zSYZ9BQUF6+OGHlZaWdkPjKq5XdHS0+vbtq7fffvuq9d2ISpUq6Y9//KN9OTQ0VGFhYWrUqJHDnZOC67J///5C++jRo4fDcrdu3eTl5WV/T3z22WfKzc1Vr169lJuba3/5+fkpPj7e4XFUgSv9zK9HtWrV1LJlS82ePVsXL16UJC1btkxHjhxxeJRy7Ngx9evXT1WqVLG/fyIjIyWpyPeQMz755BPFxMSoUaNGDufetm1bh0dxd911l6RL1+6jjz7SoUOHXHJ83LkIKii26tSpo9jY2EKvkJCQa247fPhw/f3vf1daWpratWunsmXLqlWrVlec8ny5EydOSJL9cdDlwsPD7esL/luhQoVC/Ypqu9I+J06cqD//+c9q2rSpFixYoLS0NG3cuFEPPPBAkQNOf/+oxMfH56rtFy5cKLKWy8/hSuean59/xVknN2vUqFHy9PS84dlaV1LUIyQfH58bui4VK1Z0WPby8lLZsmXt1+no0aOSLv0y9vb2dnjNmzev0JiQgICAqz4iux59+/bViRMn7I/wUlNTFRQUZA/I+fn5atOmjRYuXKi//OUvWrVqlTZs2KC0tDRJctmg5aNHj2rbtm2Fzjs4OFiWZdnPvUWLFlq8eLE90EVERCgmJkZz5sxxSR248zBGBSWSl5eXhgwZoiFDhuj06dNauXKlRowYobZt2yo9Pf2qs1XKli0rScrIyFBERITDusOHD9vHpxT0K/jldbkjR44UeVfFZrMVavvggw+UkJCgqVOnOrSfPXv26ifpApef6+8dPnxYHh4eKlOmzC05dqVKlfT8889r3LhxGjp0aKH1fn5+kqTs7GyH9lv5WSdHjhxR5cqV7cu5ubk6ceKE/ToV/Oznz59vv2NxNUX9vG9U165dVaZMGc2YMUPx8fH65JNP1KtXLwUFBUmSvv/+e23dulUzZ85UYmKifbuff/75uvbv5+dX6BpLl65zwflKl87d399fM2bMKHI/l/ft1KmTOnXqpOzsbKWlpSk5OVlPPPGEoqKiFBcXd111oeTgjgpKvNKlS+uRRx5R//79dfLkSfssEl9fX0mF/8V53333SboUIC63ceNG/fDDD/aZG02bNpWvr6/mzZvn0C8tLa3IxwpXYrPZ7LUU2LZtm8Osm1slOjpalStX1ocffugw+DUrK0sLFiywzwS6Vf76178qNDRUL774YqF1BUFv27ZtDu3XGhx8M34/Ffijjz5Sbm6ufUBz27Zt5eXlpT179hR5ty82NtblNfn5+emJJ57Q559/rpSUFOXk5Dg89ikIQ79/D02bNu269h8VFVXoGu/evVu7du1yaOvQoYP27NmjsmXLFnneRQVzX19fxcfHKyUlRZIKzYwCJO6ooITq2LGjYmJiFBsbq/Lly2v//v168803FRkZqZo1a0qS6tevL0maNGmSEhMT5e3trejoaEVHR+vpp5/WW2+9JQ8PD7Vr184+66dKlSoaPHiwpEuPGoYMGaLk5GSVKVNGXbp00cGDBzV69GhVqlTJYczH1XTo0EGvvfaaRo4cqfj4eO3atUuvvvqqqlWrdss/Z8XDw0Pjx49Xjx491KFDBz3zzDPKzs7WhAkTdPr0aY0bN+6WHr9UqVL629/+Zr+ml7vrrrsUHR2tYcOGKTc3V2XKlNGiRYv01Vdf3bJ6Fi5cKC8vL7Vu3do+66dhw4b2xyxRUVF69dVX9be//U179+7VAw88oDJlyujo0aPasGGDAgMDNXr0aJfX1bdvX02ZMkUTJ05U7dq11axZM/u62rVrq3r16nrxxRdlWZZCQ0P1r3/9SytWrLiufT/55JPq2bOnnn32WT388MPav3+/xo8fr/Llyzv0e/7557VgwQK1aNFCgwcPVoMGDZSfn68DBw7o888/19ChQ9W0aVO98sorOnjwoFq1aqWIiAidPn1akyZNkre3t+Lj4116XXCHcPNgXuCGFcxM+P3sggIPPvjgNWf9vPHGG1azZs2scuXKWT4+PlbVqlWtvn37Wvv27XPYbvjw4VZ4eLjl4eHhMJMkLy/PSklJsWrVqmV5e3tb5cqVs3r27Gmlp6c7bJ+fn2+NGTPGioiIsHx8fKwGDRpYn3zyidWwYUOHGTtXmzGTnZ1tDRs2zKpcubLl5+dnNWnSxFq8eLGVmJjocJ4Fs34mTJjgsP2V9n2t63i5xYsXW02bNrX8/PyswMBAq1WrVtb69euv6zjX6/JZP5fLzs62qlWrVmjWj2VZ1u7du602bdpYpUqVssqXL28NHDjQ+vTTT4uc9VOvXr1C+46MjLQefPDBQu2/P1bBrJ/NmzdbHTt2tIKCgqzg4GDr8ccft44ePVpo+8WLF1stW7a0SpUqZfn6+lqRkZHWI488Yq1cufKa5+usxo0bW5Ks8ePHF1q3c+dOq3Xr1lZwcLBVpkwZ69FHH7UOHDhgSbJGjhxp71fUrJ/8/Hxr/Pjx1h/+8AfLz8/Pio2NtVavXl1o1o9lWda5c+esl156yYqOjrZ8fHyskJAQq379+tbgwYOtI0eOWJZlWZ988onVrl07q3LlypaPj48VFhZmtW/f3vryyy9ddi1wZ7FZ1nV86AQAl/nll19Uu3ZtjRw5UiNGjHB3OQBgNIIKcAtt3bpVc+bMUbNmzVSqVCnt2rVL48ePV2Zmpr7//vsrzv4BAFzCGBXgFgoMDNSmTZs0ffp0nT59WiEhIUpISNDrr79OSAGA68AdFQAAYCymJwMAAGMRVAAAgLEIKgAAwFjFejBtfn6+Dh8+rODgYJd8FDUAALj1LMvS2bNnFR4efs0PvyzWQeXw4cOqUqWKu8sAAABOSE9PL/Sdab9XrINKcHCwpEsnerPfQAoAAG6PzMxMValSxf57/GqKdVApeNxTqlQpggoAAMXM9QzbYDAtAAAwFkEFAAAYi6ACAACMRVABAADGIqgAAABjEVQAAICxCCoAAMBYBBUAAGAsggoAADAWQQUAABjLrUFl6tSpatCggf0j8OPi4rRs2TJ3lgQAAAzi1qASERGhcePGadOmTdq0aZPuu+8+derUSTt27HBnWQAAwBA2y7IsdxdxudDQUE2YMEF9+/a9Zt/MzEyFhITozJkzfCkhAADFxI38/jbm25Pz8vL08ccfKysrS3Fxce4uBwAAGMDtQWX79u2Ki4vThQsXFBQUpEWLFqlu3bpF9s3OzlZ2drZ9OTMz83aVCQAA3MDtQSU6OlpbtmzR6dOntWDBAiUmJmrdunVFhpXk5GSNHj3aDVUCt1bUi5+6uwS32DfuQXeXAMBwxo1Ruf/++1W9enVNmzat0Lqi7qhUqVKFMSoo9ggqAEqSYjlGpYBlWQ5h5HK+vr7y9fW9zRUBAAB3cWtQGTFihNq1a6cqVaro7Nmzmjt3rtauXavly5e7sywAAGAItwaVo0eP6sknn1RGRoZCQkLUoEEDLV++XK1bt3ZnWQAAwBBuDSrTp0935+EBAIDh+K4fAABgLIIKAAAwFkEFAAAYi6ACAACMRVABAADGIqgAAABjEVQAAICxCCoAAMBYBBUAAGAsggoAADAWQQUAABiLoAIAAIxFUAEAAMYiqAAAAGMRVAAAgLEIKgAAwFgEFQAAYCyCCgAAMBZBBQAAGIugAgAAjEVQAQAAxiKoAAAAYxFUAACAsQgqAADAWAQVAABgLIIKAAAwFkEFAAAYi6ACAACMRVABAADGIqgAAABjEVQAAICxCCoAAMBYBBUAAGAsggoAADAWQQUAABiLoAIAAIxFUAEAAMYiqAAAAGMRVAAAgLEIKgAAwFgEFQAAYCyCCgAAMBZBBQAAGIugAgAAjEVQAQAAxiKoAAAAYxFUAACAsQgqAADAWAQVAABgLIIKAAAwFkEFAAAYi6ACAACMRVABAADGIqgAAABjEVQAAICxCCoAAMBYBBUAAGAsggoAADAWQQUAABiLoAIAAIxFUAEAAMYiqAAAAGMRVAAAgLEIKgAAwFgEFQAAYCyCCgAAMBZBBQAAGIugAgAAjEVQAQAAxiKoAAAAYxFUAACAsQgqAADAWAQVAABgLIIKAAAwFkEFAAAYi6ACAACMRVABAADGIqgAAABjEVQAAICxCCoAAMBYBBUAAGAsggoAADAWQQUAABiLoAIAAIxFUAEAAMYiqAAAAGMRVAAAgLEIKgAAwFgEFQAAYCyCCgAAMBZBBQAAGIugAgAAjEVQAQAAxiKoAAAAYxFUAACAsQgqAADAWAQVAABgLIIKAAAwFkEFAAAYi6ACAACMRVABAADGIqgAAABjEVQAAICxCCoAAMBYBBUAAGAsggoAADAWQQUAABjLrUElOTlZd911l4KDgxUWFqbOnTtr165d7iwJAAAYxK1BZd26derfv7/S0tK0YsUK5ebmqk2bNsrKynJnWQAAwBBe7jz48uXLHZZTU1MVFhamzZs3q0WLFm6qCgAAmMKtQeX3zpw5I0kKDQ0tcn12drays7Pty5mZmbelLgAA4B7GBBXLsjRkyBA1b95cMTExRfZJTk7W6NGjb1tNUS9+etuOZZJ94x50dwnAdeHPKG6Xkvpek9z/fjNm1s+AAQO0bds2zZkz54p9hg8frjNnzthf6enpt7FCAABwuxlxR2XgwIFaunSpvvjiC0VERFyxn6+vr3x9fW9jZQAAwJ3cGlQsy9LAgQO1aNEirV27VtWqVXNnOQAAwDBuDSr9+/fXhx9+qCVLlig4OFhHjhyRJIWEhMjf39+dpQEAAAO4dYzK1KlTdebMGSUkJKhSpUr217x589xZFgAAMITbH/0AAABciTGzfgAAAH6PoAIAAIxFUAEAAMYiqAAAAGMRVAAAgLEIKgAAwFgEFQAAYCyCCgAAMBZBBQAAGIugAgAAjOVUUPnll19cXQcAAEAhTgWVGjVqqGXLlvrggw904cIFV9cEAAAgycmgsnXrVjVu3FhDhw5VxYoV9cwzz2jDhg2urg0AAJRwTgWVmJgYTZw4UYcOHVJqaqqOHDmi5s2bq169epo4caKOHz/u6joBAEAJdFODab28vNSlSxd99NFHSklJ0Z49ezRs2DBFRESoV69eysjIcFWdAACgBLqpoLJp0yY9++yzqlSpkiZOnKhhw4Zpz549Wr16tQ4dOqROnTq5qk4AAFACeTmz0cSJE5Wamqpdu3apffv2mjVrltq3by8Pj0u5p1q1apo2bZpq167t0mIBAEDJ4lRQmTp1qvr06aPevXurYsWKRfapWrWqpk+fflPFAQCAks2poPLTTz9ds4+Pj48SExOd2T0AAIAkJ8eopKam6uOPPy7U/vHHH+v999+/6aIAAAAkJ4PKuHHjVK5cuULtYWFhGjt27E0XBQAAIDkZVPbv369q1aoVao+MjNSBAwduuigAAADJyaASFhambdu2FWrfunWrypYte9NFAQAASE4Glccee0zPPfec1qxZo7y8POXl5Wn16tUaNGiQHnvsMVfXCAAASiinZv2MGTNG+/fvV6tWreTldWkX+fn56tWrF2NUAACAyzgVVHx8fDRv3jy99tpr2rp1q/z9/VW/fn1FRka6uj4AAFCCORVUCtSqVUu1atVyVS0AAAAOnAoqeXl5mjlzplatWqVjx44pPz/fYf3q1atdUhwAACjZnAoqgwYN0syZM/Xggw8qJiZGNpvN1XUBAAA4F1Tmzp2rjz76SO3bt3d1PQAAAHZOTU/28fFRjRo1XF0LAACAA6eCytChQzVp0iRZluXqegAAAOycevTz1Vdfac2aNVq2bJnq1asnb29vh/ULFy50SXEAAKBkcyqolC5dWl26dHF1LQAAAA6cCiqpqamurgMAAKAQp8aoSFJubq5WrlypadOm6ezZs5Kkw4cP69y5cy4rDgAAlGxO3VHZv3+/HnjgAR04cEDZ2dlq3bq1goODNX78eF24cEHvvPOOq+sEAAAlkFN3VAYNGqTY2FidOnVK/v7+9vYuXbpo1apVLisOAACUbE7P+lm/fr18fHwc2iMjI3Xo0CGXFAYAAODUHZX8/Hzl5eUVaj948KCCg4NvuigAAADJyaDSunVrvfnmm/Zlm82mc+fOaeTIkXysPgAAcBmnHv384x//UMuWLVW3bl1duHBBTzzxhH766SeVK1dOc+bMcXWNAACghHIqqISHh2vLli2aM2eOvv32W+Xn56tv377q0aOHw+BaAACAm+FUUJEkf39/9enTR3369HFlPQAAAHZOBZVZs2ZddX2vXr2cKgYAAOByTgWVQYMGOSzn5OTo/Pnz8vHxUUBAAEEFAAC4hFOzfk6dOuXwOnfunHbt2qXmzZszmBYAALiM09/183s1a9bUuHHjCt1tAQAAcJbLgookeXp66vDhw67cJQAAKMGcGqOydOlSh2XLspSRkaG3335b99xzj0sKAwAAcCqodO7c2WHZZrOpfPnyuu+++/TGG2+4oi4AAADngkp+fr6r6wAAACjEpWNUAAAAXMmpOypDhgy57r4TJ0505hAAAADOBZXvvvtO3377rXJzcxUdHS1J2r17tzw9PdWkSRN7P5vN5poqAQBAieRUUOnYsaOCg4P1/vvvq0yZMpIufQhc7969de+992ro0KEuLRIAAJRMTo1ReeONN5ScnGwPKZJUpkwZjRkzhlk/AADAZZwKKpmZmTp69Gih9mPHjuns2bM3XRQAAIDkZFDp0qWLevfurfnz5+vgwYM6ePCg5s+fr759+6pr166urhEAAJRQTo1ReeeddzRs2DD17NlTOTk5l3bk5aW+fftqwoQJLi0QAACUXE4FlYCAAP3zn//UhAkTtGfPHlmWpRo1aigwMNDV9QEAgBLspj7wLSMjQxkZGapVq5YCAwNlWZar6gIAAHAuqJw4cUKtWrVSrVq11L59e2VkZEiSnnrqKaYmAwAAl3EqqAwePFje3t46cOCAAgIC7O3du3fX8uXLXVYcAAAo2Zwao/L555/rs88+U0REhEN7zZo1tX//fpcUBgAA4NQdlaysLIc7KQV+/fVX+fr63nRRAAAAkpNBpUWLFpo1a5Z92WazKT8/XxMmTFDLli1dVhwAACjZnHr0M2HCBCUkJGjTpk26ePGi/vKXv2jHjh06efKk1q9f7+oaAQBACeXUHZW6detq27Ztuvvuu9W6dWtlZWWpa9eu+u6771S9enVX1wgAAEqoG76jkpOTozZt2mjatGkaPXr0ragJAABAkhN3VLy9vfX999/LZrPdinoAAADsnHr006tXL02fPt3VtQAAADhwajDtxYsX9T//8z9asWKFYmNjC33Hz8SJE11SHAAAKNluKKjs3btXUVFR+v7779WkSRNJ0u7dux368EgIAAC4yg0FlZo1ayojI0Nr1qyRdOkj8ydPnqwKFSrckuIAAEDJdkNjVH7/7cjLli1TVlaWSwsCAAAo4NRg2gK/Dy4AAACudENBxWazFRqDwpgUAABwq9zQGBXLspSUlGT/4sELFy6oX79+hWb9LFy40HUVAgCAEuuGgkpiYqLDcs+ePV1aDAAAwOVuKKikpqbeqjoAAAAKuanBtAAAALcSQQUAABiLoAIAAIxFUAEAAMYiqAAAAGMRVAAAgLEIKgAAwFgEFQAAYCyCCgAAMBZBBQAAGIugAgAAjEVQAQAAxiKoAAAAYxFUAACAsQgqAADAWAQV4CbNnDlTNptNNptNa9euLbTesizVqFFDNptNCQkJLj32wal99Oun/7AvXziwTftTOujCgW0uPc7NyNy0VBmzhip98hPa//fOOvjP3jq+JEUXj++/7n2sXLlScXFxCggIULly5ZSUlKRjx47dwqoBmIKgArhIcHCwpk+fXqh93bp12rNnj4KDg295DT4Vaqhiz7/Lp0KNW36s65X/21n5/+GPKvvAQFXo9ppKN39CF4/t1ZH/Hapdu3Zdc/t169apXbt2qlChgpYsWaJJkyZp5cqVatWqlazcnNtwBgDcycvdBQB3iu7du2v27NmaMmWKSpUqZW+fPn264uLilJmZectr8PANkG/l2rf8ODei9L09HBuq1pdveG0dnv5nzZ49W6+++upVt3/hhRdUq1YtzZ8/X15el/7Kqlatmu655x6Fhq9QcOP2t6p0AAYgqAAu8vjjj2v27NmaM2eOnnnmGUnSmTNntGDBAk2ePFlvvvlmoW0uXryo8ePH69B705R75og8fALkX/1ulWnZW54BIfZ+Vl6uTn8xS+d2rJaV/Zt8KlRXmfv6FtrfhQPbdHTOCFV4fKz8qjaQJGVn/KTMDQuVfXiX8s+flkdAaflWrq0y8UnyCgmzb3tu+0qd+PebqvDYWGX9+KXO71ovWZZ8q8Yo9P5+8gou67Jr5RFwKcgVBI8rOXTokDZu3Kjk5GSHvs2aNVOtWrV0YPfXBBXgDsejH8BFSpUqpUceeUQzZsywt82ZM0ceHh7q3r17of75+fnq1KmTxo0bp8C68Qp7ZJRKxyfpwr7vdPTD4crPybb3PbH8LWVuWKSgevepfNeXFBDdTMcXjVX+hXPXrCv3zFF5h0YotNX/U1i3V1UmIUl5504qY9Zg5Z0/U6j/ieWTZfP0UrmOw1Q6obeyD2zXr5+84dDn3PaV2p/SQee2r7zu62Pl58nKzVHOiXSdWP6WPAJKq3fv3lfd5vvvv5ckNWjQoNC6Bg0aKOfX6x/nAqB44o4K4EJ9+vRRy5YttWPHDtWrV08zZszQo48+WuT4lI8++kjLly/XggULNGSDr73dJ6yajswarKzvVym4cXvlnEi/9P+xnVSmZR9Jkn+1xvIMLK1f//X3a9YUWLu5VLu5fdnKz5N/9bt18O2eytq5TqViH3Lo71ftjwq9/xn7cv6Fszq9NlV5507JM6jMpUabTbJ5XPrvdTow8REp79KYEq/Qyqr4eLKqVKly1W1OnDghSQoNDS20LjQ0VHm/3frHaQDci6ACuFB8fLyqV6+uGTNmKCkpSRs3btQbb7xRZN9PPvlEpUuXVseOHTU4bZm93afCH+QZWEYXDmxXcOP2unBguyQpsF5Lh+0Dat8rXTbj50ryL/6mM/+Zq/O7/qPcM0clK9++LudEeqH+ATXudlj2KR8lScrNPGYPKkExrRQU0+qax75cxZ4TpLxc5ZzO0NlNS3Rk7nDtGHyv6tWrd81tbVcMRNcflAAUTwQVwIVsNpt69+6tyZMn68KFC6pVq5buvffeIvsePXpUp0+flo+PT5Hr83+79Fim4K6BZ2Bpx2N5eMrD/9oziX791wRd2L9VIc0ek0/FmvLwDZBk07H5o2TlXizU38O/lMOyzctbkmTlZhfqeyN8K16aieRbubYCajTVoXef1ogRI7RkyZIrblO27KVxMQV3Vi538uRJeV7H+QMo3ggqgIslJSXplVde0TvvvKPXX3/9iv3KlSunsmXLavny5er41leF1nv4+EuSPP8vOORlnZZXcDn7eis/T/m/nb1qLfnZWfrt540Kuedxhfzp0f9um5tzzW1vJQ/fAHmXjdDu3buv2i8mJkaStH37drVv7zhodvv27fIuF3nLagRgBgbTAi5WuXJlvfDCC+rYsaMSExOv2K9Dhw46ceKE8vLy5FupZqGXd9kISZJflfqSpKwdaxy2P//jl1J+3jWqsUmy7HdFCpzb9pnDI6DbLe/8GeUc36caNa7+eS+VK1fW3XffrQ8++EB5ef8917S0NO3atUsBteJudakA3Mytd1S++OILTZgwQZs3b1ZGRoYWLVqkzp07u7MkwCXGjRt3zT6PPfaYZs+erfbt2yuvbjv5VqoleXgq7+wJXTiwTQE1myqgVjN5l6uiwHotdXbTUtk8veQX2Ug5v+5X5oaFsvkEXPUYHr4B8q0So8xvFsrDv5S8Qioo+8B2ndu+Qh6+gU6f37nvV+nEvyepbPtBVx2rkp+dpaPzXlJgnQR5hYbL5uWj3JOHlLlpqay8HI0cOdKhv5eXl+Lj47Vq1Sp7W0pKilq3bq1HH31Uzz77rI4dO6YXX3xRMTExyqzf2ulzAFA8uPWOSlZWlho2bKi3337bnWUAbuHp6amlS5dqxIgROr/7Pzq+6HUdX/S6zqR9LJuXt7z/bxCrJJVt95xK3dVZ57av0vGFrynrxy9VvvMIefgFXfM45ToOk1/V+jq9NlXHF72u7CM/K6zba7LdRFCRZV26I2NZV+1m8/SRT/lqOrd1uX5dOl7HPnpFZ77+SL6Vaqpir38oNjbWoX9eXp7DnRNJSkhI0L///W9lZGSoY8eOGjhwoFq2bKlVq1YVulME4M5js6xr/E1zm9hsthu+o5KZmamQkBCdOXPG4ZNAXSXqxU9dvs/iYN+4B91dQonDe805XDfcLiX1vSbdmvfbjfz+LlaDabOzs5Wd/d+ZB7fjI8kBAID7FKugkpycrNGjR7u7DFwF/+oAALhSsZr1M3z4cJ05c8b+Sk8v/GFVAADgzlGs7qj4+vrK19f32h0BAMAdoVjdUQEAACWLW++onDt3Tj///LN9+ZdfftGWLVsUGhqqqlWrurEyAABgArcGlU2bNqlly/9+0dqQIUMkSYmJiZo5c6abqgIAAKZwa1BJSEiQIR/jAgAADMQYFQAAYCyCCgAAMBZBBQAAGIugAgAAjEVQAQAAxiKoAAAAYxFUAACAsQgqAADAWAQVAABgLIIKAAAwFkEFAAAYi6ACAACMRVABAADGIqgAAABjEVQAAICxCCoAAMBYBBUAAGAsggoAADAWQQUAABiLoAIAAIxFUAEAAMYiqAAAAGMRVAAAgLEIKgAAwFgEFQAAYCyCCgAAMBZBBQAAGIugAgAAjEVQAQAAxiKoAAAAYxFUAACAsQgqAADAWAQVAABgLIIKAAAwFkEFAAAYi6ACAACMRVABAADGIqgAAABjEVQAAICxCCoAAMBYBBUAAGAsggoAADAWQQUAABiLoAIAAIxFUAEAAMYiqAAAAGMRVAAAgLEIKgAAwFgEFQAAYCyCCgAAMBZBBQAAGIugAgAAjEVQAQAAxiKoAAAAYxFUAACAsQgqAADAWAQVAABgLIIKAAAwFkEFAAAYi6ACAACMRVABAADGIqgAAABjEVQAAICxCCoAAMBYBBUAAGAsggoAADAWQQUAABiLoAIAAIxFUAEAAMYiqAAAAGMRVAAAgLEIKgAAwFgEFQAAYCyCCgAAMBZBBQAAGIugAgAAjEVQAQAAxiKoAAAAYxFUAACAsQgqAADAWAQVAABgLIIKAAAwFkEFAAAYi6ACAACMRVABAADGIqgAAABjEVQAAICxCCoAAMBYBBUAAGAsggoAADAWQQUAABiLoAIAAIxFUAEAAMYiqAAAAGMRVAAAgLEIKgAAwFgEFQAAYCyCCgAAMBZBBQAAGIugAgAAjEVQAQAAxiKoAAAAYxFUAACAsQgqAADAWAQVAABgLIIKAAAwFkEFAAAYi6ACAACMRVABAADGIqgAAABjebm7gJthWZYkKTMz85bsPz/7/C3Zr+lu5nqW1Gsmcd2ccbN/drluuF1K6ntNujXvt4J9FvwevxqbdT29DHXw4EFVqVLF3WUAAAAnpKenKyIi4qp9inVQyc/P1+HDhxUcHCybzebuclwmMzNTVapUUXp6ukqVKuXucooNrtuN45o5h+vmHK6bc+7E62ZZls6ePavw8HB5eFx9FEqxfvTj4eFxzSRWnJUqVeqOeVPeTly3G8c1cw7XzTlcN+fcadctJCTkuvoxmBYAABiLoAIAAIxFUDGQr6+vRo4cKV9fX3eXUqxw3W4c18w5XDfncN2cU9KvW7EeTAsAAO5s3FEBAADGIqgAAABjEVQAAICxCCoAAMBYBBWDfPHFF+rYsaPCw8Nls9m0ePFid5dkvOTkZN11110KDg5WWFiYOnfurF27drm7LONNnTpVDRo0sH+AVFxcnJYtW+busoqV5ORk2Ww2Pf/88+4uxWijRo2SzWZzeFWsWNHdZRULhw4dUs+ePVW2bFkFBASoUaNG2rx5s7vLuu0IKgbJyspSw4YN9fbbb7u7lGJj3bp16t+/v9LS0rRixQrl5uaqTZs2ysrKcndpRouIiNC4ceO0adMmbdq0Sffdd586deqkHTt2uLu0YmHjxo1699131aBBA3eXUizUq1dPGRkZ9tf27dvdXZLxTp06pXvuuUfe3t5atmyZdu7cqTfeeEOlS5d2d2m3XbH+CP07Tbt27dSuXTt3l1GsLF++3GE5NTVVYWFh2rx5s1q0aOGmqszXsWNHh+XXX39dU6dOVVpamurVq+emqoqHc+fOqUePHnrvvfc0ZswYd5dTLHh5eXEX5QalpKSoSpUqSk1NtbdFRUW5ryA34o4K7ihnzpyRJIWGhrq5kuIjLy9Pc+fOVVZWluLi4txdjvH69++vBx98UPfff7+7Syk2fvrpJ4WHh6tatWp67LHHtHfvXneXZLylS5cqNjZWjz76qMLCwtS4cWO999577i7LLQgquGNYlqUhQ4aoefPmiomJcXc5xtu+fbuCgoLk6+urfv36adGiRapbt667yzLa3Llz9e233yo5OdndpRQbTZs21axZs/TZZ5/pvffe05EjR9SsWTOdOHHC3aUZbe/evZo6dapq1qypzz77TP369dNzzz2nWbNmubu0245HP7hjDBgwQNu2bdNXX33l7lKKhejoaG3ZskWnT5/WggULlJiYqHXr1hFWriA9PV2DBg3S559/Lj8/P3eXU2xc/ji7fv36iouLU/Xq1fX+++9ryJAhbqzMbPn5+YqNjdXYsWMlSY0bN9aOHTs0depU9erVy83V3V7cUcEdYeDAgVq6dKnWrFmjiIgId5dTLPj4+KhGjRqKjY1VcnKyGjZsqEmTJrm7LGNt3rxZx44d0x//+Ed5eXnJy8tL69at0+TJk+Xl5aW8vDx3l1gsBAYGqn79+vrpp5/cXYrRKlWqVOgfDXXq1NGBAwfcVJH7cEcFxZplWRo4cKAWLVqktWvXqlq1au4uqdiyLEvZ2dnuLsNYrVq1KjRbpXfv3qpdu7b++te/ytPT002VFS/Z2dn64YcfdO+997q7FKPdc889hT5qYffu3YqMjHRTRe5DUDHIuXPn9PPPP9uXf/nlF23ZskWhoaGqWrWqGyszV//+/fXhhx9qyZIlCg4O1pEjRyRJISEh8vf3d3N15hoxYoTatWunKlWq6OzZs5o7d67Wrl1baBYV/is4OLjQ2KfAwECVLVuWMVFXMWzYMHXs2FFVq1bVsWPHNGbMGGVmZioxMdHdpRlt8ODBatasmcaOHatu3bppw4YNevfdd/Xuu++6u7Tbz4Ix1qxZY0kq9EpMTHR3acYq6npJslJTU91dmtH69OljRUZGWj4+Plb58uWtVq1aWZ9//rm7yyp24uPjrUGDBrm7DKN1797dqlSpkuXt7W2Fh4dbXbt2tXbs2OHusoqFf/3rX1ZMTIzl6+tr1a5d23r33XfdXZJb2CzLstyUkQAAAK6KwbQAAMBYBBUAAGAsggoAADAWQQUAABiLoAIAAIxFUAEAAMYiqAAAAGMRVAAUK/v27ZPNZtOWLVvcXQqA24CgAuCGJSUlyWazady4cQ7tixcvls1mc1NVAO5EBBUATvHz81NKSopOnTrl7lJc4uLFi+4uAUARCCoAnHL//ferYsWKSk5OLnL9qFGj1KhRI4e2N998U1FRUfblpKQkde7cWWPHjlWFChVUunRpjR49Wrm5uXrhhRcUGhqqiIgIzZgxo9D+f/zxRzVr1kx+fn6qV6+e1q5d67B+586dat++vYKCglShQgU9+eST+vXXX+3rExISNGDAAA0ZMkTlypVT69atnb4WAG4dggoAp3h6emrs2LF66623dPDgQaf3s3r1ah0+fFhffPGFJk6cqFGjRqlDhw4qU6aMvvnmG/Xr10/9+vVTenq6w3YvvPCChg4dqu+++07NmjXTQw89pBMnTkiSMjIyFB8fr0aNGmnTpk1avny5jh49qm7dujns4/3335eXl5fWr1+vadOmOX0OAG4dggoAp3Xp0kWNGjXSyJEjnd5HaGioJk+erOjoaPXp00fR0dE6f/68RowYoZo1a2r48OHy8fHR+vXrHbYbMGCAHn74YdWpU0dTp05VSEiIpk+fLkmaOnWqmjRporFjx6p27dpq3LixZsyYoTVr1mj37t32fdSoUUPjx49XdHS0ateu7fQ5ALh1CCoAbkpKSoref/997dy506nt69WrJw+P//5VVKFCBdWvX9++7OnpqbJly+rYsWMO28XFxdn/38vLS7Gxsfrhhx8kSZs3b9aaNWsUFBRkfxUEkT179ti3i42NdapmALePl7sLAFC8tWjRQm3bttWIESOUlJRkb/fw8JBlWQ59c3JyCm3v7e3tsGyz2Ypsy8/Pv2YtBTOO8vPz1bFjR6WkpBTqU6lSJfv/BwYGXnOfANyLoALgpo0bN06NGjVSrVq17G3ly5fXkSNHZFmWPUC48rNP0tLS1KJFC0lSbm6uNm/erAEDBkiSmjRpogULFigqKkpeXvw1BxRnPPoBcNPq16+vHj166K233rK3JSQk6Pjx4xo/frz27NmjKVOmaNmyZS475pQpU7Ro0SL9+OOP6t+/v06dOqU+ffpIkvr376+TJ0/q8ccf14YNG7R37159/vnn6tOnj/Ly8lxWA4Bbj6ACwCVee+01h0c9derU0T//+U9NmTJFDRs21IYNGzRs2DCXHW/cuHFKSUlRw4YN9eWXX2rJkiUqV66cJCk8PFzr169XXl6e2rZtq5iYGA0aNEghISEO42EAmM9m/f4hMgAAgCH4pwUAADAWQQUAABiLoAIAAIxFUAEAAMYiqAAAAGMRVAAAgLEIKgAAwFgEFQAAYCyCCgAAMBZBBQAAGIugAgAAjEVQAQAAxvr/jzgksZ17AbMAAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Define the bin edges to center the bars between integers\n", + "bin_edges = [i - 0.5 for i in range(1, 8)] # Centered between 1 and 6\n", + "\n", + "# Create the histogram with centered columns\n", + "hist_values, bin_edges, _ = plt.hist(dice, bins=bin_edges, rwidth=0.8)\n", + "\n", + "# Calculate the median\n", + "median = np.median(dice)\n", + "\n", + "# Set the y-axis ticks with a step of 1, considering the maximum count in the histogram\n", + "plt.yticks(range(1, int(max(hist_values)) + 1))\n", + "\n", + "plt.xlabel(\"Number\")\n", + "plt.ylabel(\"Frequency\")\n", + "plt.title(\"Histogram of 'Number' Values\")\n", + "\n", + "# Display the median as text on the plot\n", + "plt.text(median, 1, f\"Median: {median}\", ha='center', va='bottom', fontsize=12)\n", + "\n", + "plt.show()\n", + "\n", + "#The [0] is used to access the first element of the return value from plt.hist. \n", + "#The plt.hist function returns a tuple of values, and we're interested in the first element of that tuple, \n", + "#which contains the frequency counts of the histogram.\n", + "\n", + "#plt.hist returns tuples containing 3 elements :\n", + "\n", + "#The histogram values (frequency counts in each bin).\n", + "#The bin edges.\n", + "#The patches (the individual bars in the histogram).\n" + ] + }, + { + "cell_type": "code", + "execution_count": 65, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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N07OnX6zLgAAqBjZ2dkKDAy0/h6/ld9cuCm6FVWzZk3CDQAAd5nSTClhQjEAADAVwg0AADAVwg0AADAVwg0AADAVwg0AADAVwg0AADAVwg0AADAVwg0AADAVwg0AADAVwg0AADAVp4abhQsXqlWrVtavQoiIiNCGDRtuOWbbtm1q3769PDw8dO+992rRokUVVC0AALgbODXcBAQEaMaMGUpNTVVqaqoefvhh9e7dW4cOHSqx/8mTJxUbG6vOnTtr7969mjRpksaMGaPk5OQKrhwAAFRWFsMwDGcX8Ut16tTR7NmzNWzYsGLb/v73v2vt2rU6fPiwtS0uLk779+/Xjh07SrX/7OxseXt76/Lly3xxJgAAd4my/P6uNHNuCgoK9M477+jatWuKiIgosc+OHTsUExNj09a9e3elpqYqLy+vIsoEAACVnIuzCzh48KAiIiJ0/fp11ahRQ6tXr1bz5s1L7JuVlSVfX1+bNl9fX+Xn5+vChQvy8/MrNiYnJ0c5OTnW9ezsbMceAAAAqFScHm5CQ0O1b98+Xbp0ScnJyRo0aJC2bdt204BjsVhs1ovuqv26vUhiYqKmTp3q2KKBChb87Dpnl3DXODXjEWeXAMDJnH5bys3NTY0aNVJ4eLgSExPVunVrvfLKKyX2bdCggbKysmzazp8/LxcXF9WtW7fEMRMnTtTly5etS0ZGhsOPAQAAVB5Ov3Lza4Zh2NxG+qWIiAh9+OGHNm2bNm1SeHi4XF1dSxzj7u4ud3d3h9cJAAAqJ6deuZk0aZI+++wznTp1SgcPHtRzzz2nlJQU9e/fX9KNqy4DBw609o+Li1NaWpri4+N1+PBhLV26VEuWLFFCQoKzDgEAAFQyTr1yc+7cOT311FPKzMyUt7e3WrVqpY0bN6pbt26SpMzMTKWnp1v7h4SEaP369Ro/frwWLFggf39/zZ8/X3379nXWIQAAgEqm0n3OTXnjc25wN2JCcekxoRgwp7vyc24AAAAcgXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABM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u+9q5syZOn78uBISEhQQEKCBAwcqMzPTUXUCAACUyh2Fm9TUVI0YMUJ+fn6aO3euEhISdPz4cW3ZskVnzpxR7969HVUnAABAqbjYM2ju3LlKSkrS0aNHFRsbq+XLlys2NlZVqtzISiEhIXrjjTfUtGlThxYLAABwO3aFm4ULF2ro0KEaMmSIGjRoUGKfhg0basmSJXdUHAAAQFnZFW6+++672/Zxc3PToEGD7Nk9AACA3eyac5OUlKT33nuvWPt7772nN998846LAgAAsJdd4WbGjBmqV69esXYfHx9Nnz79josCAACwl13hJi0tTSEhIcXag4KClJ6efsdFAQAA2MuucOPj46MDBw4Ua9+/f7/q1q17x0UBAADYy65w8+STT2rMmDHaunWrCgoKVFBQoC1btmjs2LF68sknHV0jAABAqdn1tNS0adOUlpam6Ohoubjc2EVhYaEGDhzInBsAAOBUdoUbNzc3rVy5Ui+99JL2798vT09PtWzZUkFBQY6uDwAAoEzsCjdFmjRpoiZNmjiqFgAAgDtmV7gpKCjQsmXL9Omnn+r8+fMqLCy02b5lyxaHFAcAAFBWdoWbsWPHatmyZXrkkUfUokULWSwWR9cFAABgF7vCzTvvvKN3331XsbGxjq4HAADgjtj1KLibm5saNWrk6FoAAADumF3hZsKECXrllVdkGIaj6wEAALgjdt2W+vzzz7V161Zt2LBBYWFhcnV1tdm+atUqhxQHAABQVnaFm1q1aqlPnz6OrgUAAOCO2RVukpKSHF0HAACAQ9g150aS8vPz9cknn+iNN97QlStXJElnz57V1atXHVYcAABAWdl15SYtLU2///3vlZ6erpycHHXr1k1eXl6aNWuWrl+/rkWLFjm6TgAAgFKx68rN2LFjFR4erp9++kmenp7W9j59+ujTTz91WHEAAABlZffTUl988YXc3Nxs2oOCgnTmzBmHFAYAAGAPu67cFBYWqqCgoFj76dOn5eXldcdFAQAA2MuucNOtWzfNmzfPum6xWHT16lVNnjyZr2QAAABOZddtqf/3//6funbtqubNm+v69ev685//rO+++0716tXT22+/7egaAQAASs2ucOPv7699+/bp7bff1p49e1RYWKhhw4apf//+NhOMAQAAKppd4UaSPD09NXToUA0dOtSR9QAAANwRu8LN8uXLb7l94MCBdhUDAABwp+wKN2PHjrVZz8vL088//yw3NzdVq1aNcAMAAJzGrqelfvrpJ5vl6tWrOnr0qDp16sSEYgAA4FR2f7fUrzVu3FgzZswodlXnVrZv365evXrJ399fFotFa9asuWX/lJQUWSyWYsuRI0fusHoAAGAWdk8oLknVqlV19uzZUve/du2aWrdurSFDhqhv376lHnf06FHVrFnTul6/fv0y1QkAAMzLrnCzdu1am3XDMJSZmanXXntNDz30UKn306NHD/Xo0aPMr+/j46NatWqVeRwAADA/u8LNY489ZrNusVhUv359Pfzww3r55ZcdUdcttW3bVtevX1fz5s31/PPPq2vXruX+mgAA4O5gV7gpLCx0dB2l4ufnp8WLF6t9+/bKycnRf/7zH0VHRyslJUVdunQpcUxOTo5ycnKs69nZ2RVVLgAAcAKHzrkpb6GhoQoNDbWuR0REKCMjQ3PmzLlpuElMTNTUqVMrqkQAAOBkdoWb+Pj4UvedO3euPS9Rag8++KBWrFhx0+0TJ060qTc7O1uBgYHlWhMAAHAeu8LN3r17tWfPHuXn51uvpBw7dkxVq1ZVu3btrP0sFotjqrxNLX5+fjfd7u7uLnd393KvAwAAVA52hZtevXrJy8tLb775pmrXri3pxgf7DRkyRJ07d9aECRNKtZ+rV6/q+++/t66fPHlS+/btU506ddSwYUNNnDhRZ86csX7dw7x58xQcHKywsDDl5uZqxYoVSk5OVnJysj2HAQAATMiucPPyyy9r06ZN1mAjSbVr19a0adMUExNT6nCTmppq86RT0e2jQYMGadmyZcrMzFR6erp1e25urhISEnTmzBl5enoqLCxM69atU2xsrD2HAQAATMiucJOdna1z584pLCzMpv38+fO6cuVKqfcTFRUlwzBuun3ZsmU2688884yeeeaZMtUKAAB+W+z6+oU+ffpoyJAhev/993X69GmdPn1a77//voYNG6bHH3/c0TUCAACUml1XbhYtWqSEhAQNGDBAeXl5N3bk4qJhw4Zp9uzZDi0QAACgLOwKN9WqVdPrr7+u2bNn6/jx4zIMQ40aNVL16tUdXR8AAECZ3NG3gmdmZiozM1NNmjRR9erVbzl/BgAAoCLYFW4uXryo6OhoNWnSRLGxscrMzJQkDR8+vNRPSgEAAJQHu8LN+PHj5erqqvT0dFWrVs3a3q9fP23cuNFhxQEAAJSVXXNuNm3apI8//lgBAQE27Y0bN1ZaWppDCgMAALCHXVdurl27ZnPFpsiFCxf4qgMAAOBUdoWbLl26WL8SQbrxHVKFhYWaPXu2zScOAwAAVDS7bkvNnj1bUVFRSk1NVW5urp555hkdOnRIP/74o7744gtH1wgAAFBqdl25ad68uQ4cOKAHHnhA3bp107Vr1/T4449r7969uu+++xxdIwAAQKmV+cpNXl6eYmJi9MYbb2jq1KnlURMAAIDdynzlxtXVVd98840sFkt51AMAAHBH7LotNXDgQC1ZssTRtQAAANwxuyYU5+bm6t///rc2b96s8PDwYt8pNXfuXIcUBwAAUFZlCjcnTpxQcHCwvvnmG7Vr106SdOzYMZs+3K4CAADOVKZw07hxY2VmZmrr1q2Sbnzdwvz58+Xr61suxQEAAJRVmebc/Ppbvzds2KBr1645tCAAAIA7YdeE4iK/DjsAAADOVqZwY7FYis2pYY4NAACoTMo058YwDA0ePNj65ZjXr19XXFxcsaelVq1a5bgKAQAAyqBM4WbQoEE26wMGDHBoMQAAAHeqTOEmKSmpvOoAAABwiDuaUAwAAFDZEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpODXcbN++Xb169ZK/v78sFovWrFlz2zHbtm1T+/bt5eHhoXvvvVeLFi0q/0IBAMBdw6nh5tq1a2rdurVee+21UvU/efKkYmNj1blzZ+3du1eTJk3SmDFjlJycXM6VAgCAu4WLM1+8R48e6tGjR6n7L1q0SA0bNtS8efMkSc2aNVNqaqrmzJmjvn37llOVAADgbnJXzbnZsWOHYmJibNq6d++u1NRU5eXllTgmJydH2dnZNgsAADAvp165KausrCz5+vratPn6+io/P18XLlyQn59fsTGJiYmaOnVqRZWIMgh+dp2zSwAAmNBddeVGkiwWi826YRgltheZOHGiLl++bF0yMjLKvUYAAOA8d9WVmwYNGigrK8um7fz583JxcVHdunVLHOPu7i53d/eKKA8AAFQCd9WVm4iICG3evNmmbdOmTQoPD5erq6uTqgIAAJWJU8PN1atXtW/fPu3bt0/SjUe99+3bp/T0dEk3bikNHDjQ2j8uLk5paWmKj4/X4cOHtXTpUi1ZskQJCQnOKB8AAFRCTr0tlZqaqq5du1rX4+PjJUmDBg3SsmXLlJmZaQ06khQSEqL169dr/PjxWrBggfz9/TV//nweAwcAAFZODTdRUVHWCcElWbZsWbG2yMhI7dmzpxyrAgAAd7O7as4NAADA7RBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqRBuAACAqTg93Lz++usKCQmRh4eH2rdvr88+++ymfVNSUmSxWIotR44cqcCKAQBAZebUcLNy5UqNGzdOzz33nPbu3avOnTurR48eSk9Pv+W4o0ePKjMz07o0bty4gioGAACVnVPDzdy5czVs2DANHz5czZo107x58xQYGKiFCxfecpyPj48aNGhgXapWrVpBFQMAgMrOaeEmNzdXu3fvVkxMjE17TEyMvvzyy1uObdu2rfz8/BQdHa2tW7fesm9OTo6ys7NtFgAAYF5OCzcXLlxQQUGBfH19bdp9fX2VlZVV4hg/Pz8tXrxYycnJWrVqlUJDQxUdHa3t27ff9HUSExPl7e1tXQIDAx16HAAAoHJxcXYBFovFZt0wjGJtRUJDQxUaGmpdj4iIUEZGhubMmaMuXbqUOGbixImKj4+3rmdnZxNwAAAwMaddualXr56qVq1a7CrN+fPni13NuZUHH3xQ33333U23u7u7q2bNmjYLAAAwL6eFGzc3N7Vv316bN2+2ad+8ebM6duxY6v3s3btXfn5+ji4PAADcpZx6Wyo+Pl5PPfWUwsPDFRERocWLFys9PV1xcXGSbtxSOnPmjJYvXy5JmjdvnoKDgxUWFqbc3FytWLFCycnJSk5OduZhAACASsSp4aZfv366ePGiXnzxRWVmZqpFixZav369goKCJEmZmZk2n3mTm5urhIQEnTlzRp6engoLC9O6desUGxvrrEMAAACVjMUwDMPZRVSk7OxseXt76/Lly+Uy/yb42XUO3ycAlJdTMx5xdgl3Df5+L73yeF+V5fe3079+AQAAwJEINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFQINwAAwFScHm5ef/11hYSEyMPDQ+3bt9dnn312y/7btm1T+/bt5eHhoXvvvVeLFi2qoEoBAMDdwKnhZuXKlRo3bpyee+457d27V507d1aPHj2Unp5eYv+TJ08qNjZWnTt31t69ezVp0iSNGTNGycnJFVw5AACorJwabubOnathw4Zp+PDhatasmebNm6fAwEAtXLiwxP6LFi1Sw4YNNW/ePDVr1kzDhw/X0KFDNWfOnAquHAAAVFZOCze5ubnavXu3YmJibNpjYmL05Zdfljhmx44dxfp3795dqampysvLK7daAQDA3cPFWS984cIFFRQUyNfX16bd19dXWVlZJY7JysoqsX9+fr4uXLggPz+/YmNycnKUk5NjXb98+bIkKTs7+04PoUSFOT+Xy34BoDyU19+FZsTf76VXHu+ron0ahnHbvk4LN0UsFovNumEYxdpu17+k9iKJiYmaOnVqsfbAwMCylgoApuM9z9kVwIzK83115coVeXt737KP08JNvXr1VLVq1WJXac6fP1/s6kyRBg0alNjfxcVFdevWLXHMxIkTFR8fb10vLCzUjz/+qLp1694yRNkjOztb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FJvt3377rWJjY1WjRg35+vrqqaee0oULF6zbo6KiNGrUKMXHx6tevXrq1q2b3ecCQPkh3ACoMFWrVtX06dP16quv6vTp03bvZ8uWLTp79qy2b9+uuXPnasqUKerZs6dq166tr776SnFxcYqLi1NGRobNuL/97W+aMGGC9u7dq44dO+rRRx/VxYsXJUmZmZmKjIxUmzZtlJqaqo0bN+rcuXN64oknbPbx5ptvysXFRV988YXeeOMNu48BQPkh3ACoUH369FGbNm00efJku/dRp04dzZ8/X6GhoRo6dKhCQ0P1888/a9KkSWrcuLEmTpwoNzc3ffHFFzbjRo0apb59+6pZs2ZauHChvL29tWTJEknSwoUL1a5dO02fPl1NmzZV27ZttXTpUm3dulXHjh2z7qNRo0aaNWuWQkND1bRpU7uPAUD5IdwAqHAzZ87Um2++qW+//dau8WFhYapS5f/++vL19VXLli2t61WrVlXdunV1/vx5m3ERERHW/3dxcVF4eLgOHz4sSdq9e7e2bt2qGjVqWJei8HL8+HHruPDwcLtqBlBxXJxdAIDfni5duqh79+6aNGmSBg8ebG2vUqWKDMOw6ZuXl1dsvKurq826xWIpsa2wsPC2tRQ9qVVYWKhevXpp5syZxfr4+flZ/7969eq33ScA5yLcAHCKGTNmqE2bNmrSpIm1rX79+srKypJhGNbQ4cjPptm5c6e6dOkiScrPz9fu3bs1atQoSVK7du2UnJys4OBgubjwVyNwN+O2FACnaNmypfr3769XX33V2hYVFaUffvhBs2bN0vHjx7VgwQJt2LDBYa+5YMECrV69WkeOHNHIkSP1008/aejQoZKkkSNH6scff9Sf/vQn7dq1SydOnNCmTZs0dOhQFRQUOKwGAOWPcAPAaV566SWb21DNmjXT66+/rgULFqh169batWuXEhISHPZ6M2bM0MyZM9W6dWt99tln+uCDD1SvXj1Jkr+/v7744gsVFBSoe/fuatGihcaOHStvb2+b+T0AKj+L8esb3AAAAHcx/jkCAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABMhXADAABM5f8Ds2cQesrCHQYAAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "#Class' method\n", + "\n", + "plt.hist(dice, bins = 6, range=(1,6))\n", + "\n", + "plt.xlabel(\"Number\")\n", + "plt.ylabel(\"Frequency\")\n", + "plt.title(\"Histogram of 'Number' Values\")\n", + "\n", + "plt.show()#here plots the frequency distribution directly" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Create frequency distribution " + ] + }, + { + "cell_type": "code", + "execution_count": 66, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Dice number Frequency\n", + "0 1 2\n", + "1 2 1\n", + "2 3 3\n", + "3 4 2\n", + "4 6 2\n" + ] + } + ], + "source": [ + "#https://stackoverflow.com/questions/41551658/how-to-create-a-frequency-distribution-table-on-given-data-with-python-in-jupyte\n", + "\n", + "#Calculate the freq dist and sort by dice number (index)\n", + "frequency_distribution = pd.Series(dice).value_counts().sort_index().reset_index()\n", + "\n", + "#Frequency dist = combien de fois le nombre a été mentionné dans la DF\n", + "#Dans la 1er DF : les index etaient les dice numbers\n", + "#Dans la frequency dist on rajoute une colonne pour les dice numbers\n", + "#sort_index = on trie les valeurs\n", + "#reset_index = pour avoir le dice number comme colonne et pas comme index\n", + "\n", + "frequency_distribution.columns = ['Dice number', 'Frequency']\n", + "\n", + "print(frequency_distribution)" + ] + }, + { + "cell_type": "code", + "execution_count": 67, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAioAAAHFCAYAAADcytJ5AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA7aklEQVR4nO3deVxUZf//8feoMCwCCoqiIhqmuYQbLbiTaYqRS6ZWJm51d7vkWt1637/U8haX9Ku5Vy5ZrplbmZp7eqelmfudmrmlJiYGioEC5/cHMbcjqAwNzkFez8djHnrOuc45nzkzMG+uc50zFsMwDAEAAJhQIVcXAAAAcDsEFQAAYFoEFQAAYFoEFQAAYFoEFQAAYFoEFQAAYFoEFQAAYFoEFQAAYFoEFQAAYFoEFTjd3LlzZbFYsn0MHjzY1eXdV2491h4eHipdurQiIyMVGxuruLi4LOsMHz5cFovFof1cu3ZNw4cP15YtWxxaL7t9VahQQU8//bRD27mbBQsWaOLEidkus1gsGj58uFP352wbN25UeHi4vL29ZbFYtGLFimzbnTx50u71dnNzU0BAgB555BENGDBAhw4dyrLOli1bZLFYHH7t/qoKFSrY1ert7a06depoypQpyu0N0StUqKCuXbvapjOPx9y5c51TNEypiKsLwP1rzpw5euihh+zmlSlTxkXV3N8yj/WNGzcUFxen7du3a8yYMXr33Xe1ePFiPfnkk7a2PXv2VIsWLRza/rVr1zRixAhJUpMmTXK8Xm72lRsLFizQwYMH1b9//yzLduzYoXLlyuV5DbllGIY6dOigypUra9WqVfL29laVKlXuuE7fvn31wgsvKD09Xb///rt++OEHzZ49W5MnT1ZsbKxef/11W9s6depox44dqlatWl4/lSzq16+vd999V5J07tw5TZgwQX379lViYqKGDh16z+tB/kRQQZ6pUaOGwsPDc9T2xo0bslgsKlKEt2Ru3Hqsn332WQ0YMEANGjRQu3btdOzYMZUqVUqSVK5cuTz/4L527Zq8vLzuyb7u5vHHH3fp/u/m3Llzio+PV9u2bdW0adMcrVO+fHm75xUVFaWBAweqXbt2euONN1SjRg21bNlSkuTr6+uyY1CsWDG7fT/55JMqX768Zs6cSVBBjnHqB/dcZlf0xx9/rEGDBqls2bKyWq366aefJEkbNmxQ06ZN5evrKy8vL9WvX18bN27Msp3Vq1erVq1aslqtqlixot59990spxru1DWc3SmBY8eO6YUXXlBgYKCsVquqVq2qqVOnZlv/woUL9c9//lNlypSRr6+vnnzySR05ciTLftauXaumTZvKz89PXl5eqlq1qmJjYyVJH3/8sSwWi3bs2JFlvbfffltubm46d+7cXY9pdsqXL6/x48frypUrmjlzpm1+dqdjNm3apCZNmiggIECenp4qX768nn32WV27dk0nT55UyZIlJUkjRoywdeVndsFnbm/Pnj1q3769ihcvrtDQ0NvuK9Py5csVFhYmDw8PPfDAA3rvvffslmee1jp58qTd/FtPZTRp0kSrV6/WqVOn7E41ZMrudT548KBat26t4sWLy8PDQ7Vq1dJHH32U7X5y+jpnZ/v27WratKl8fHzk5eWlevXqafXq1bblw4cPtwW5N998UxaLRRUqVMjRtm/l6empWbNmyc3NTePGjcvyPG499fPtt98qOjpaAQEB8vDwUGhoaJYeqZz8PDjC19dXlStX1oULF+zmx8fHq1evXipbtqzc3d31wAMP6J///KdSUlIc3sfFixf1yiuvKDg4WFarVSVLllT9+vW1YcOGXNcN1+LPV+SZtLQ0paam2s27ucdkyJAhioiI0IwZM1SoUCEFBgbqk08+UZcuXdS6dWt99NFHcnNz08yZM/XUU09p3bp1tr84N27cqNatWysiIkKLFi1SWlqaxo4dm+UXoCMOHz6sevXq2T7gS5curXXr1um1117Tb7/9pmHDhtm1Hzp0qOrXr68PP/xQiYmJevPNNxUdHa3//ve/Kly4sCRp1qxZevnll9W4cWPNmDFDgYGBOnr0qA4ePChJ6tixo9544w1NnTpVERERtm2npqZq5syZatu27V86XRYVFaXChQvr66+/vm2bkydPqlWrVmrYsKFmz56tYsWK6ezZs1q7dq2uX7+uoKAgrV27Vi1atFCPHj3Us2dPSbKFl0zt2rVTp06d9OqrryopKemOde3du1f9+/fX8OHDVbp0ac2fP1/9+vXT9evXHR7HNG3aNL3yyis6fvy4li9fftf2R44cUb169RQYGKj33ntPAQEB+uSTT9S1a1dduHBBb7zxhl37nLzO2dm6dauaNWumsLAwzZo1S1arVdOmTVN0dLQWLlyojh07qmfPnqpZs6batWtnO51jtVodev43K1OmjOrWratvvvlGqampt+2hXLdunaKjo1W1alVNmDBB5cuX18mTJ/XVV1/Z2jj685ATqampOnPmjCpXrmybl5ycrMjISB0/flwjRoxQWFiYtm3bptjYWO3du9cu2OXESy+9pD179ujf//63KleurN9//1179uzRpUuXHK4XJmEATjZnzhxDUraPGzduGJs3bzYkGY0aNbJbLykpyfD39zeio6Pt5qelpRk1a9Y0Hn30Udu8xx57zChTpozxxx9/2OYlJiYa/v7+xs1v6xMnThiSjDlz5mSpU5IxbNgw2/RTTz1llCtXzkhISLBr16dPH8PDw8OIj483DMOw1R8VFWXXbsmSJYYkY8eOHYZhGMaVK1cMX19fo0GDBkZ6evptj9ewYcMMd3d348KFC7Z5ixcvNiQZW7duve16hvG/Y71r167btilVqpRRtWpVu/3dfIyWLl1qSDL27t17221cvHgxy/G6dXtvvfXWbZfdLCQkxLBYLFn216xZM8PX19dISkqye24nTpywa5d5/Ddv3myb16pVKyMkJCTb2m+tu1OnTobVajVOnz5t165ly5aGl5eX8fvvv9vt526v8+08/vjjRmBgoHHlyhXbvNTUVKNGjRpGuXLlbO+JzPfouHHj7ri9nLbt2LGjIcn2fsrueIWGhhqhoaF2Pz+3yunPw+2EhIQYUVFRxo0bN4wbN24Yp06dMl5++WXDzc3N+OKLL2ztZsyYYUgylixZYrf+mDFjDEnGV199ZbfNmJiYLMfj5p/vokWLGv37979jbchfOPWDPDNv3jzt2rXL7nHzX3jPPvusXftvvvlG8fHxiomJUWpqqu2Rnp6uFi1aaNeuXUpKSlJSUpJ27dqldu3aycPDw7a+j4+PoqOjc1VrcnKyNm7cqLZt28rLy8tu/1FRUUpOTtbOnTvt1nnmmWfspsPCwiRJp06dsj2fxMRE9erV645X2fz973+XJH3wwQe2eVOmTNHDDz+sRo0a5er53My4yxUWtWrVkru7u1555RV99NFH+vnnn3O1n1tfzzupXr26atasaTfvhRdeUGJiovbs2ZOr/efUpk2b1LRpUwUHB9vN79q1q65du5blNNzdXufsJCUl6dtvv1X79u1VtGhR2/zChQvrpZde0i+//JLj00eOutvrffToUR0/flw9evSw+/m5WW5+HrLz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9NJLL+n8+fPy8/NTWFiY1q5dq2bNmrmyLAAAYBIuDSqzZs1y5e4BAIDJufyqHwAAgNshqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANNyaVCJjY3VI488Ih8fHwUGBqpNmzY6cuSIK0sCAAAm4tKgsnXrVvXu3Vs7d+7U+vXrlZqaqubNmyspKcmVZQEAAJOwGIZhuLqITBcvXlRgYKC2bt2qRo0a3bV9YmKi/Pz8lJCQIF9f33tQIZBHLBZXV+Aa5vn1A+AecuTzu8g9qilHEhISJEn+/v7ZLk9JSVFKSoptOjEx8Z7UBQAAXMM0QcUwDA0cOFANGjRQjRo1sm0TGxurESNG3LOa+CMXMDfLli2uLsEljCZNXF1CgbPFssXVJbhM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XJySk5PVrFkzu3WuX7+u2rVr280LDw+/Y21//PGHpIxelFsNGjRIK1eu1OTJk7VmzRqVKFEiSxtPT09du3btjvsAkIGgAtzH/vvf/6pixYrZLvP09Lzjuunp6RoxYoTatWuXZVl2H9CZ3Nzc7KYtFovd1UcWi0WGYdi1uXkMS3bbyQxbt87L6WW+N7ddvXq1ypYta7f81gHG3t7ed9xeQECALBaLLl++nGVZXFycjhw5osKFC+vYsWNq0aJFljbx8fEqWbJkjmoHCjqCCnCf2rRpkw4cOKABAwZkuzwsLEwffvih4uPjs+1VqVOnjo4cOaJKlSo5ta6SJUvq/Pnztuljx445rXdh3759+uOPP2whbOfOnSpatKjKlSun4sWLy2q16vTp03bjUXLD3d1d1apV0+HDh7PcR6V79+6qUaOGXn75ZfXo0UNNmzZVtWrVbMuTk5N1/PjxLL04ALJHUAHuAykpKfr111+VlpamCxcuaO3atYqNjdXTTz+tLl26ZLvO888/r1GjRqlNmzaKjY1VUFCQfvjhB5UpU0YRERF666239PTTTys4OFjPPfecChUqpP379+vAgQMaOXJkrmt94oknNGXKFD3++ONKT0/Xm2++maUXJreuX7+uHj166F//+pdOnTqlYcOGqU+fPipUqJB8fHw0ePBgDRgwQOnp6WrQoIESExP1zTffqGjRooqJiXFoX0899ZS2b9+u/v372+ZNnTpVO3bs0P79+xUcHKw1a9boxRdf1Lfffit3d3dJGeHJarUqIiLCKc8ZuN9xeTJwH1i7dq2CgoJUoUIFtWjRQps3b9Z7772nlStX2o0XuZm7u7u++uorBQYGKioqSg8//LBGjx5ta//UU0/piy++0Pr16/XII4/o8ccf14QJExQSEvKXah0/fryCg4PVqFEjvfDCCxo8ePBtx7s4qmnTpnrwwQfVqFEjdejQQdHR0Ro+fLht+TvvvKO33npLsbGxqlq1qp566il9/vnntz09dicvv/yyvvzySyUkJEiSfvzxR73++uuaNm2agoODJWUEl99//93upnALFy7Uiy++6LTnDNzvLMatJ4sBADnSoUMH1a5dW0OGDMlR+4sXL+qhhx7S7t27cxWOgIKIHhUAyKVx48apaNGiOW5/4sQJTZs2jZACOIAeFQAAYFr0qAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANMiqAAAANP6/3SCrnQtZilPAAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Set custom bar colors\n", + "bar_colors = ['b', 'g', 'r', 'c', 'm', 'y']\n", + "\n", + "# Create the bar plot with step size 1 for the y-axis and custom bar colors\n", + "plt.bar(frequency_distribution['Dice number'], frequency_distribution['Frequency'], color=bar_colors)\n", + "\n", + "# Calculate the median\n", + "median = np.median(dice)\n", + "\n", + "plt.xlabel('Dice number (x)')\n", + "plt.ylabel('Frequency (y)')\n", + "plt.title('Frequency Distribution of Dice Rolls')\n", + "\n", + "# Set x-axis ticks with a step size of 1\n", + "plt.xticks(frequency_distribution['Dice number'])\n", + "\n", + "# Set y-axis ticks with a step size of 1\n", + "plt.yticks(range(0, int(max(frequency_distribution['Frequency'])) + 1))\n", + "\n", + "#other way to set scale\n", + "#plt.yticks(range(min(sorted_rolls), max(sorted_rolls) + 1))\n", + "#plt.xticks(range(min(sorted_rolls), max(sorted_rolls) + 1))\n", + "\n", + "# Display the median as text on the plot\n", + "plt.text(median, 1, f\"Median: {median}\", ha='center', va='bottom', fontsize=12)\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Note :\n", + "Frequency distribution is useful to reduce the load time when working with big data set.\n", + "Goal data science = diminuer l'espace des données." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "What is the relation between the frequency distribution plot and the linear plot ? \n", + "\n", + "Both represent the dice distribution\n", + "Both provide info on the shape and tendency of the distribution (We can see that the median is the same on both graphs)\n", + "Show the same percentiles\n", + "Possible to see the interval of the data (example here : no frequency for number 1 and 2)\n", + "\n", + "In plot above : normal distribution, data points pretty equally spreaded. Median is 3, Mode is 3\n", + "The shape of the histogram can be described as right-skewed or positively skewed.\n", + "\n", + "Note : Frequency distribution graph is \"easier to read\" and should be used for data presentation to the stakeholders." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Create superposition to see normal distribution" + ] + }, + { + "cell_type": "code", + "execution_count": 68, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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/jt27dqF//77D8OGDcObN29UY3KqVasGExMTTJo0CQ8ePMDmzZvTDW718PBASEgIgoKC8Pr16wyvWnTv3h1GRkbo3bs3bt68iYCAAIwYMQI9e/ZUXfaRiqSJyurVqxEaGorExERERETg+PHjTFKIiLTM9OnT011+qFSpErZt24atW7eibNmymDx5Mn799dccm4nzMXt7e6xbtw5///03SpcujVmzZmHu3LnZeq7JkyfD2dkZxYsXR8+ePREdHY0TJ05gwoQJmR6TkpKCYcOGoVSpUmjevDlKlCiBpUuXAgBcXFwwbdo0/Pjjj3B0dEw3iyYrZs2aBX9/f3h5eeHs2bPYs2cP7OzsAIiDdTdu3IiDBw+iXLly2LJlC6ZOnap2fMeOHdG8eXM0aNAA9vb22LJlS7pzmJiY4MiRI4iKikKVKlXQqVMnNGrUCEuWLNE43pymEDK6aKglYmJiYGlpiejoaFhYWEgdDlH2cdZPgZKQkICQkBAUKVIERkZGUodDlCs+9z7X5PNb8joqRERERJlhokJERESyxUSFiIiIZIuJChEREckWExUiIolo8VwGoi/Kqfc3ExUiojymrO4ZHx8vcSREuUf5/v60mq2mZFdCn4gov9PV1YWVlZVqrRoTE5NMy5cTaRtBEBAfH4+IiAhYWVl9dSViJipERBJQrmT78cJ6RPmJlZXVZ1dsziomKkREElAoFHB2doaDg0O2FpEjkjN9ff0cW9OJiQoRkYR0dXVzfJE+ovyEg2mJiIhItpioEBERkWwxUSEiIiLZYqJCREREssVEhYiIiGSLiQoRERHJFhMVIiIiki0mKkRERCRbTFSIiIhItpioEBERkWwxUSEiIiLZYqJCREREssVEhYiIiGSLiQoRERHJFhMVIiIiki0mKkRERCRbTFSIiIhItpioEBERkWwxUSEiIiLZYqJCREREssVEhYiIiGSLiQoRERHJFhMVIiIiki0mKkRERCRbTFSIiIhItpioEBERkWwxUSEiIiLZYqJCREREssVEhYiIiGSLiQoRERHJFhMVIiIiki0mKkRERCRbTFSIiIhItpioEBERkWwxUSEiIiLZYqJCREREssVEhYiIiGSLiQoRERHJFhMVIiIiki0mKkRERCRbTFSIiIhItpioEBERkWwxUSEiIiLZYqJCREREssVEhYiIiGSLiQoRERHJFhMV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Ftwvj4QiJVHiyLQfExUiIqIckGTiipDqy5GsbwkAMIsMROGrPwCpSRJHpt2YqBAREeWQRPPiaqX2LV6eguv1KYCQKnFk2ouJChERUQ56b10Oj6ssRKqOPgDA+tl+ON+azXWBsomJChERUQ6Ls6uOJxVnQ/jfx6xd6GY43l3EZCUbmKgQERHlghjnRnjqNU3VdniwGg73l0sYkXZiokJERJRL3rq1xbOyk1Rtx3vLYP9gtYQRaR8mKkRERLkoyqMrnpf+QdV2+m8hbB/9KWFE2oWJChERUS6LLNoT4SVHqdqFbs+BTehW6QLSIkxUiIiI8sDr4v3w0nOoqu1ycyasH2+XMCLtwESFiIgoj0R8MxgRxQeo2i7B02H1ZI+EEckfExUiIqK8olDgZYkReFW0l9iEANfrU2D1dK/EgckXExUiIqK8pFDgRamxeO3RTWwiFa5Bv8A6bJfEgckTExUiIqK8plAgvMwEvPb4VmxCgOuNKRyzkgEmKkRERFJQKBBe5ke8LtJDtck1+FfOBvoEExUiIiKpKBQIL/0DXhXrq9rkcnMm66x8hIkKERGRlBQKvCg5ChHFB6o2Fbo9B3YP10oYlHwwUSEiIpKaQoGXJYbjped3qk3Od/4P9vf/kDAoeWCiQkREJAcKBSI8v8OLEsNVm5zuLobjfwsL9KrLTFSIiIhk5NU3gxBearSq7fBgNZxv+QNCqoRRSYeJChERkcy8LtZXbdVl29AtMH4bLGFE0mGiQkREJENRHl3xxGs6BIUunpWfgvfWXlKHJAk9qQMgIiKijL11a4t4m0r4YOomdSiSYY8KERGRjBXkJAVgokJEREQyxkSFiIiIZIuJChEREckWExUiIiKSLSYqREREJFtMVIiIiEi2mKgQERGRbDFRISIiItliokJERESyxUSFiIiIZIuJChEREckWExUiIiKSLSYqREREJFtMVIiIiEi2mKgQERGRbDFRISIiItliokJERESyxUSFiIiIZIuJChEREckWExUiIiKSLSYqREREJFtMVIiIiEi2mKgQERGRbDFRISIiItliokJERESyxUSFiIiIZIuJChEREckWExUiIiKSLSYqREREJFtMVIiIiEi2mKgQERGRbDFRISIiItliokJERESyxUSFiIiIZIuJChEREckWExUiIiKSLSYqREREJFtMVIiIiEi2mKgQERGR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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import scipy.stats as stats\n", + "\n", + "# Set custom bar colors for the histogram\n", + "bar_colors = ['b', 'g', 'r', 'c', 'm', 'y']\n", + "\n", + "# Create the bar plot with step size 1 for the y-axis and custom bar colors\n", + "plt.bar(frequency_distribution['Dice number'], frequency_distribution['Frequency'], color=bar_colors, alpha=0.7)\n", + "\n", + "# Calculate the median\n", + "median = np.median(dice)\n", + "\n", + "plt.xlabel('Dice number (x)')\n", + "plt.ylabel('Frequency (y)')\n", + "plt.title('Frequency Distribution of Dice Rolls')\n", + "\n", + "# Set x-axis ticks with a step size of 1\n", + "plt.xticks(frequency_distribution['Dice number'])\n", + "\n", + "# Set y-axis ticks with a step size of 1\n", + "plt.yticks(range(0, int(max(frequency_distribution['Frequency'])) + 1))\n", + "\n", + "# Display the median as text on the plot\n", + "plt.text(median, 1, f\"Median: {median}\", ha='center', va='bottom', fontsize=12)\n", + "\n", + "# Create a normal distribution curve using mean and standard deviation of the data\n", + "mean = np.mean(dice)\n", + "std_dev = np.std(dice)\n", + "x = np.linspace(min(dice), max(dice), 1000)\n", + "y = stats.norm.pdf(x, mean, std_dev) * len(dice) # Scale the curve to match the data count\n", + "\n", + "# Plot the normal distribution curve\n", + "plt.plot(x, y, 'r-', linewidth=2, label='Normal Distribution')\n", + "\n", + "# Add a legend\n", + "plt.legend()\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Jesus' observation : \n", + "\n", + "For the LINEAR PLOT, we have dice values of the dice in the y axis. \n", + "For the histogramm (frequency distribution), we have the dice values in the x axis.\n", + "\n", + "--\n", + "\n", + "The difference in the orientation of the axes between a linear plot (line plot) and a histogram (frequency distribution) arises from their distinct purposes and the nature of the data they are visualizing.\n", + "\n", + "Linear Plot (Line Plot):\n", + "\n", + "In a linear plot, you typically have data points or values on both the x-axis and y-axis.\n", + "The x-axis usually represents an independent variable or a continuous range of values.\n", + "The y-axis represents the dependent variable, which is typically a response or outcome based on the values of the independent variable.\n", + "Linear plots are used to show how the dependent variable changes as a function of the independent variable. They are suitable for visualizing relationships, trends, or patterns in data.\n", + "\n", + "Histogram (Frequency Distribution):\n", + "\n", + "In a histogram, the x-axis typically represents different categories or bins into which data is grouped. \n", + "These bins are used to categorize the data or to define intervals.\n", + "The y-axis of a histogram represents the frequency or count of data points that fall into each bin.\n", + "Histograms are used to show the distribution of data, specifically how data points are distributed across different categories or intervals. They help visualize the frequency of occurrence for different values or value ranges." + ] + }, + { + "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": 69, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3.3\n" + ] + } + ], + "source": [ + "# your code here\n", + "def calculate_mean(data):\n", + " mean = sum(data)/len(data)\n", + " return mean\n", + "\n", + "print(calculate_mean(dice))" + ] + }, + { + "cell_type": "code", + "execution_count": 70, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3.3\n" + ] + } + ], + "source": [ + "#Other method - More manual\n", + "\n", + "def mean(data):\n", + " \n", + " total_sum = 0\n", + " len_data = 0\n", + " \n", + " for value in data:\n", + " total_sum += value\n", + " len_data += 1\n", + "\n", + " mean = total_sum / len_data\n", + "\n", + " return mean\n", + "\n", + "print(mean(dice))" + ] + }, + { + "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": 72, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Dice number Frequency\n", + "0 1 2\n", + "1 2 1\n", + "2 3 3\n", + "3 4 2\n", + "4 6 2\n", + "Mean is 3.3\n" + ] + } + ], + "source": [ + "# your code here\n", + "frequency_distribution = dice.value_counts().sort_index().reset_index() #chaining method\n", + "frequency_distribution.columns = ['Dice number', 'Frequency']\n", + "print(frequency_distribution)\n", + "\n", + "#Here we need to adapt the former mean function. \n", + "#We wanna find the mean of the total numbers for the frequency tab (10)\n", + "#we do not wanna calculate the frequency values (5)\n", + "#sum_values = frequency_distribution['Frequency']*frequency_distribution['Dice number']\n", + "\n", + "#Calculate mean by calling function\n", + "\n", + "def mean_freq_dist(tableau):\n", + " \n", + " total_sum = 0\n", + " len_data = 0 # equals to total count\n", + " \n", + " for index, row in tableau.iterrows():\n", + " value = row['Dice number']\n", + " frequency = row['Frequency']\n", + " total_sum += value * frequency #total sum = valeur * tableau['Frequency']\n", + " len_data += frequency\n", + "\n", + " mean = total_sum / len_data\n", + "\n", + " return mean\n", + "\n", + "#mean_frequency_distribution = mean(sum_values) \n", + "print(f'Mean is {mean_freq_dist(frequency_distribution)}')\n", + "\n", + "# Why the result is not the same as when we calculate the mean ?\n", + "\n", + "#Ici on veut trouver la moyenne du tableau de la fréquence (on ne veut pas les valeurs de la fréquence)\n", + "\n", + "#Not possible to use mean otherwise here" + ] + }, + { + "cell_type": "code", + "execution_count": 77, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "({1: 2, 2: 1, 3: 3, 4: 2, 6: 2}, 'Mean is: 3.3')\n" + ] + } + ], + "source": [ + "#Jesus' method\n", + "\n", + "def freq(data):\n", + " freq_dist = {}\n", + " for x in data:\n", + " if x in freq_dist:\n", + " freq_dist[x] = freq_dist[x] + 1 #+=1\n", + " else:\n", + " freq_dist[x] = 1\n", + "#here we go in all value inside data\n", + "#and say if this value is already in the dictionnary, we put it in +1\n", + "#if we did not have the value before, we say it's just 1\n", + "\n", + " return freq_dist, f'Mean is: {sum([k*v for k,v in freq_dist.items()])/sum([v for k,v in freq_dist.items()])}'\n", + "\n", + "#k = first column, which is unique value\n", + "#v = frequency column\n", + "\n", + "#in the for loop we define the column\n", + "#in the dictionary.item (we wanna access the items)\n", + "\n", + "print(freq(dice)) #we create key value" + ] + }, + { + "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": 78, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[1, 1, 2, 3, 3, 3, 4, 4, 6, 6]\n", + "10\n", + "Median is 3.0\n" + ] + } + ], + "source": [ + "# Method without function\n", + "\n", + "# your code here\n", + "\n", + "#Convert values into list to calculate the median\n", + "values_dice = dice.to_list()\n", + "print(values_dice)\n", + "\n", + "print(len(values_dice)) #Median = value in the middle \n", + "\n", + "#If even number, we take the two elements in the list divided by 2\n", + "median = (values_dice[4] + values_dice[5])/2\n", + "print(f'Median is {median}')" + ] + }, + { + "cell_type": "code", + "execution_count": 80, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Median is 3.0\n" + ] + } + ], + "source": [ + "#With function\n", + "\n", + "def median(lst):\n", + " sortedlst = sorted(lst)\n", + " lstlen = len(lst)\n", + " index = (lstlen - 1) // 2\n", + " \n", + " if (lstlen % 2 !=0):\n", + " return sortedlst[index] #if total list values is odd\n", + " else:\n", + " return (sortedlst[index] + sortedlst[index + 1])/2.0 #if total list values is even\n", + "\n", + "\n", + "print(f'Median is {median(values_dice)}')" + ] + }, + { + "cell_type": "code", + "execution_count": 140, + "metadata": {}, + "outputs": [], + "source": [ + "#Jesus' method\n", + "\n", + "def median_2(data):\n", + " if len(data)%2 == 0: #means values in DF are even (so no value is gonna be in the middle)\n", + " return sum(data[int(len(data)/2)-1:int(len(data)/2)+1])/2\n", + " else:\n", + " return data[int(len(data)/2)] #if odd, return number in the middle " + ] + }, + { + "cell_type": "code", + "execution_count": 141, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3.0\n" + ] + } + ], + "source": [ + "print(median_2(dice))" + ] + }, + { + "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": 83, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "the first quartile is 2.25\n", + "the second quartile is 3.0\n", + "the third quartile is 4.0\n", + "the fourth quartile is 6\n" + ] + } + ], + "source": [ + "#Comparing with results given by quantile formula\n", + "\n", + "q1 = np.quantile(dice, 0.25) \n", + "print(\"the first quartile is\", q1)\n", + "q2 = np.quantile(dice, 0.50)\n", + "print(\"the second quartile is\",q2)\n", + "q3 = np.quantile(dice, 0.75)\n", + "print(\"the third quartile is\", q3)\n", + "q4 = np.quantile(dice, 1)\n", + "print(\"the fourth quartile is\", q4)" + ] + }, + { + "cell_type": "code", + "execution_count": 88, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Q1: 2, Q2: 3.0, Q3: 4, Q4: 6\n" + ] + } + ], + "source": [ + "def quartiles(lst):\n", + " lst.sort()\n", + " total_count = len(lst)\n", + " \n", + " # lower quartile (Q1)\n", + " q1_index = total_count // 4\n", + " q1_lower_quartile = lst[q1_index] #here we divid by 4 to get the first 25%\n", + " \n", + " # median (Q2)\n", + " q2_index = median(lst)\n", + "\n", + " # upper quartile (Q3)\n", + " q3_index = (3 * total_count) // 4 #so we have the 3 quarters out of four (=75%)\n", + " q3_upper_quartile = lst[q3_index] \n", + " \n", + " # max (Q4)\n", + " q4 = max(lst)\n", + " \n", + " return q1_lower_quartile, q2_index, q3_upper_quartile, q4\n", + "\n", + "q1_lower_quartile, q2_index, q3_upper_quartile, q4 = quartiles(values_dice)\n", + "print(f'Q1: { q1_lower_quartile}, Q2: {q2_index}, Q3: {q3_upper_quartile}, Q4: {q4}')\n" + ] + }, + { + "cell_type": "code", + "execution_count": 93, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Q1: 2.00, Q2: 3.0, Q3: 4.00, Q4: 6.00\n" + ] + } + ], + "source": [ + "# Find quartiles \n", + "\n", + "def quartiles(lst):\n", + " sortedlst = sorted(lst)\n", + " lstlen = len(lst)\n", + " \n", + " middle = len(lst)//2\n", + "\n", + "# lower quartile\n", + " q1_lower_quartile = median(lst[:middle]) \n", + "\n", + "# median\n", + " q2 = median(lst)\n", + "\n", + "# upper quartile\n", + " q3_upper_quartile = median(lst[middle:]) \n", + "\n", + "#fourth quartile =max value\n", + " q4 = max(lst)\n", + "\n", + " return q1_lower_quartile, q2, q3_upper_quartile, q4\n", + " \n", + "\n", + "q1_lower_quartile, q2, q3_upper_quartile, q4 = quartiles(values_dice)\n", + "print(f'Q1: {q1_lower_quartile:.2f}, Q2: {q2}, Q3: {q3_upper_quartile:.2f}, Q4: {q4:.2f}')" + ] + }, + { + "cell_type": "code", + "execution_count": 145, + "metadata": {}, + "outputs": [], + "source": [ + "def quartiles_2(vals):\n", + " second_quartile = np.median(vals)\n", + " middle = len(vals) // 2\n", + " \n", + " if len(vals) % 2 == 0:\n", + " first_quartile = np.median(vals[:middle])\n", + " third_quartile = np.median(vals[middle:])\n", + " else:\n", + " first_quartile = np.median(vals[:middle])\n", + " third_quartile = np.median(vals[middle:])\n", + " \n", + " return first_quartile, second_quartile, third_quartile" + ] + }, + { + "cell_type": "code", + "execution_count": 146, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(2.0, 3.0, 4.0)\n" + ] + } + ], + "source": [ + "print(quartiles_2(values_dice)) #here won't work with a DF, we need to put it as an array." + ] + }, + { + "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": 110, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Unnamed: 0rollvalue
0001
1112
2226
3331
4446
5555
6662
7772
8884
9991
\n", + "
" + ], + "text/plain": [ + " Unnamed: 0 roll value\n", + "0 0 0 1\n", + "1 1 1 2\n", + "2 2 2 6\n", + "3 3 3 1\n", + "4 4 4 6\n", + "5 5 5 5\n", + "6 6 6 2\n", + "7 7 7 2\n", + "8 8 8 4\n", + "9 9 9 1" + ] + }, + "execution_count": 110, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# your code here\n", + "dice_hundred = pd.read_csv('/Users/amandine/Desktop/Ironhack/03_Week/Descriptive-Stats/data/roll_the_dice_hundred.csv')\n", + "dice_hundred.head(10)" + ] + }, + { + "cell_type": "code", + "execution_count": 106, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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wFqECgAAsBahAgAArEWoAAAAaxEqAADAWoQKAACwFqECAACsRagAAABrESoAAMBahAoAALAWoQIAAKxFqAAAAGsRKgAAwFqECgAAsBahAgAArEWoAAAAaxEqAADAWoQKAACwFqECAACsRagAAABrESoAAMBahAoAALAWoQIAAKxFqAAAAGsRKgAAwFqECgAAsBahAgAArEWoAAAAaxEqAADAWoQKAACwFqECAACsRagAAABrESoAAMBahAoAALAWoQIAAKxFqAAAAGsRKgAAwFqECgAAsBahAgAArEWoAAAAaxEqAADAWoQKAACwFqECAACsRagAAABrESoAAMBahAoAALAWoQIAAKxFqAAAAGsRKgAAwFqECgAAsJajoZKYmKjbb79dwcHBqlu3rnr16qW9e/c6ORIAALCIo6GyadMmDR8+XNu2bdNHH32kCxcu6L777lN2draTYwEAAEv4Ofnga9euLbC8cOFC1a1bV9u3b9cvfvELh6YCAAC2sOoalYyMDElSzZo1HZ4EAADYwNEjKhczxmjs2LG655571Lp16yK38Xq98nq9vmWPx1Ne4wHXtZycHElSSkqKw5P8v3PnziktLU0REREKDAx0ehxJ0u7du50eAah0rAmVESNG6Msvv9SWLVsuu01iYqISEhLKcSqgctizZ48kafDgwQ5PUjEEBwc7PQJQabiMMcbpIUaOHKmVK1dq8+bNuummmy67XVFHVMLDw5WRkaGQkJDyGBW4Ln333XdauXKlWrRooWrVqjk9jqQfjl7ExcXprbfeUmRkpNPj+AQHB6tp06ZOjwFUaB6PR6GhocV6/3b0iIoxRiNHjtSKFSuUlJR0xUiRJLfbLbfbXU7TAZVH7dq19eijjzo9RpEiIyMVHR3t9BgAHOJoqAwfPlzvvPOO/vnPfyo4OFgnTpyQJIWGhlpzThoAADjH0U/9zJ07VxkZGerQoYPq16/v+1u6dKmTYwEAAEs4fuoHAADgcqz6HhUAAICLESoAAMBahAoAALAWoQIAAKxFqAAAAGsRKgAAwFqECgAAsBahAgAArEWoAAAAaxEqAADAWoQKAACwFqECAACsRagAAABrESoAAMBahAoAALAWoQIAAKxFqAAAAGsRKgAAwFqECgAAsBahAgAArEWoAAAAaxEqAADAWoQKAACwFqECAACsRagAAABrESoAAMBa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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.boxplot(dice_hundred['value'])\n", + "plt.xlabel('Rolls')\n", + "plt.ylabel('Value')\n", + "plt.title('Boxplot of Rolls')\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 128, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "image/png": "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U+EozIkTJyocrbls2rRpSk5O9twvLy/XqVOn1Lx580oDyERFRUUKDw9Xfn6+goKC7B7HCOyzmmG/1Qz7rWbYb9V3ve4zy7JUXFyssLCwa67r6Jhp2LChbr/9dm3atEmjR4/2LN+0aZN++tOfXvE5brdbbrfba1mTJk3qckxbBQUFXVf/8tYH9lnNsN9qhv1WM+y36rse99m1jshc5uiYkaTk5GSNHz9eUVFR6t27txYtWqQjR47o0UcftXs0AADgAI6PmYSEBJ08eVLPPfecjh8/ri5duui9995TRESE3aMBAAAHcHzMSNKkSZM0adIku8dwFLfbrZSUlAqn1FA59lnNsN9qhv1WM+y36mOfSS6rKp95AgAAcChHf2keAADAtRAzAADAaMQMAAAwGjEDAACMRswY5sMPP1R8fLzCwsLkcrn09ttv2z2S46Wnp+vHP/6xAgMDFRISolGjRmnfvn12j+V4GRkZ6tatm+eLuHr37q2//vWvdo9llPT0dLlcLk2dOtXuURwtNTVVLpfL6xYaGmr3WEb4+uuvdf/996t58+Zq1KiRevTooV27dtk9Vr0jZgxTUlKi7t27a968eXaPYozs7GwlJSUpJydHmzZt0qVLlzRs2DCVlJTYPZqjtW7dWi+++KJ27typnTt3atCgQfrpT3+qPXv22D2aEXbs2KFFixapW7dudo9ihM6dO+v48eOe2+eff273SI5XWFioPn36yM/PT3/961/15Zdf6tVXX72uv/W+MkZ8zwz+LS4uTnFxcXaPYZT333/f6/7SpUsVEhKiXbt2qX///jZN5Xzx8fFe91944QVlZGQoJydHnTt3tmkqM5w9e1b33XefFi9erOeff97ucYzg6+vL0ZhqeumllxQeHq6lS5d6lt188832DWQjjszgB+fMmTOSpGbNmtk8iTnKysq0evVqlZSUqHfv3naP43hJSUkaMWKEhgwZYvcoxjhw4IDCwsIUGRmpu+++WwcPHrR7JMfLzMxUVFSUfvaznykkJEQ9e/bU4sWL7R7LFsQMflAsy1JycrL69u2rLl262D2O433++edq3Lix3G63Hn30Ua1fv16dOnWyeyxHW716tXbv3q309HS7RzFGdHS0VqxYoQ0bNmjx4sUqKChQTEyMTp48afdojnbw4EFlZGSoXbt22rBhgx599FH98pe/1IoVK+werd5xmgk/KI8//rg+++wzbdu2ze5RjNC+fXvl5ubq9OnTWrt2rRITE5WdnU3QVCI/P19TpkzRxo0bdcMNN9g9jjG+e+q8a9eu6t27t9q2bavly5crOTnZxsmcrby8XFFRUUpLS5Mk9ezZU3v27FFGRoYeeOABm6erXxyZwQ/G5MmTlZmZqaysLLVu3drucYzQsGFD3XLLLYqKilJ6erq6d++uOXPm2D2WY+3atUsnTpzQ7bffLl9fX/n6+io7O1u/+93v5Ovrq7KyMrtHNEJAQIC6du2qAwcO2D2Ko7Vq1arCf1h07NhRR44csWki+3BkBtc9y7I0efJkrV+/Xlu3blVkZKTdIxnLsiyVlpbaPYZjDR48uMKncH7+85+rQ4cO+vWvfy0fHx+bJjNLaWmp9u7dq379+tk9iqP16dOnwtdM7N+/XxERETZNZB9ixjBnz57VV1995bmfl5en3NxcNWvWTG3atLFxMudKSkrSypUr9ec//1mBgYEqKCiQJAUHB8vf39/m6ZzrmWeeUVxcnMLDw1VcXKzVq1dr69atFT4dhn8LDAyscC1WQECAmjdvzjVaV/HUU08pPj5ebdq00YkTJ/T888+rqKhIiYmJdo/maE888YRiYmKUlpamcePG6X/+53+0aNEiLVq0yO7R6p8Fo2RlZVmSKtwSExPtHs2xrrS/JFlLly61ezRHe/DBB62IiAirYcOGVosWLazBgwdbGzdutHss4wwYMMCaMmWK3WM4WkJCgtWqVSvLz8/PCgsLs8aMGWPt2bPH7rGM8M4771hdunSx3G631aFDB2vRokV2j2QLl2VZlk0dBQAA8L1xATAAADAaMQMAAIxGzAAAAKMRMwAAwGjEDAAAMBoxAwAAjEbMAAAAoxEzAIx36NAhuVwu5ebmSpK2bt0ql8ul06dP2zoXgPpBzACw3YQJE+RyueRyueTr66s2bdroscceU2Fhod2jATAAMQPAEYYPH67jx4/r0KFDeuONN/TOO+9o0qRJdo8FwADEDABHcLvdCg0NVevWrTVs2DAlJCRo48aNkqTy8nI999xzat26tdxut3r06FGtH7w8fPiw4uPj1bRpUwUEBKhz585677336uqtAKhn/Go2AMc5ePCg3n//ffn5+UmS5syZo1dffVULFy5Uz549tWTJEv3kJz/Rnj171K5du2tuLykpSRcuXNCHH36ogIAAffnll2rcuHFdvw0A9YSYAeAIf/nLX9S4cWOVlZXp/PnzkqRZs2ZJkl555RX9+te/1t133y1Jeumll5SVlaXZs2dr/vz519z2kSNHNHbsWHXt2lWS9KMf/aiO3gUAOxAzABxh4MCBysjI0Llz5/TGG29o//79mjx5soqKinTs2DH16dPHa/0+ffro008/rdK2f/nLX+qxxx7Txo0bNWTIEI0dO1bdunWri7cBwAZcMwPAEQICAnTLLbeoW7du+t3vfqfS0lLNmDHD87jL5fJa37KsCssqM3HiRB08eFDjx4/X559/rqioKM2dO7dW5wdgH2IGgCOlpKTolVde0dmzZxUWFqZt27Z5Pb59+3Z17NixytsLDw/Xo48+qnXr1unJJ5/U4sWLa3tkADbhNBMAR4qNjVXnzp2VlpamX/3qV0pJSVHbtm3Vo0cPLV26VLm5ufrDH/5QpW1NnTpVcXFxuvXWW1VYWKgtW7ZUK4QAOBsxA8CxkpOT9fOf/1z79+9XUVGRnnzySZ04cUKdOnVSZmZmlT7JJEllZWVKSkrS0aNHFRQUpOHDh+u1116r4+kB1BeXZVmW3UMAAADUFNfMAAAAoxEzAADAaMQMAAAwGjEDAACMRswAAACjETMAAMBoxAwAADAaMQMAAIxGzAAAAKMRMwAAwGjEDAAAMBoxAwAAjPb/TWhp9CS7PYEAAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "bin_edges = [i - 0.5 for i in range(1, 8)]\n", + "\n", + "color = '#FFBB66' # Change to the desired color name\n", + "\n", + "plt.hist(dice_hundred['value'], bins=bin_edges, rwidth=0.8, color=color) \n", + "\n", + "plt.xlabel('Rolls')\n", + "plt.ylabel('Value')\n", + "plt.title('Histogram of Rolls')\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "It appears that the most common value is 6 with a frequency of 23. Mode = 6\n", + "\n", + "Almost Multimodal (having multiple modes) since both 6 and 4 have high frequencies. \n", + "\n", + "Almost perfect normal distribution.\n", + "\n", + "Histogram is pretty symmetric, the mean is often near the peak or center of the distribution. Mean around 3/4." + ] + }, + { + "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": 139, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Mean is 3.74\n" + ] + } + ], + "source": [ + "# your code here\n", + "\n", + "#dice_hundred['value'] = pd.to_numeric(dice_hundred['value']) #convert str into numerical values\n", + "\n", + "print(\"Mean is\", calculate_mean(dice_hundred['value']))" + ] + }, + { + "cell_type": "code", + "execution_count": 138, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3.74\n" + ] + } + ], + "source": [ + "#Check if value with np.mean is the same :\n", + "\n", + "print(np.mean(dice_hundred['value']))" + ] + }, + { + "cell_type": "code", + "execution_count": 143, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Median is 2.5\n" + ] + } + ], + "source": [ + "print('Median is', median_2(dice_hundred['value']))" + ] + }, + { + "cell_type": "code", + "execution_count": 69, + "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", + "
Unnamed: 0rollvalue
count100.000000100.000000100.000000
mean49.50000049.5000003.740000
std29.01149229.0114921.703354
min0.0000000.0000001.000000
25%24.75000024.7500002.000000
50%49.50000049.5000004.000000
75%74.25000074.2500005.000000
max99.00000099.0000006.000000
\n", + "
" + ], + "text/plain": [ + " Unnamed: 0 roll value\n", + "count 100.000000 100.000000 100.000000\n", + "mean 49.500000 49.500000 3.740000\n", + "std 29.011492 29.011492 1.703354\n", + "min 0.000000 0.000000 1.000000\n", + "25% 24.750000 24.750000 2.000000\n", + "50% 49.500000 49.500000 4.000000\n", + "75% 74.250000 74.250000 5.000000\n", + "max 99.000000 99.000000 6.000000" + ] + }, + "execution_count": 69, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "roll_dice_df.describe()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 3.- Now, calculate the frequency distribution.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 151, + "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", + "
ValueFrequency
4112
5512
3314
2217
1422
0623
\n", + "
" + ], + "text/plain": [ + " Value Frequency\n", + "4 1 12\n", + "5 5 12\n", + "3 3 14\n", + "2 2 17\n", + "1 4 22\n", + "0 6 23" + ] + }, + "execution_count": 151, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#Calculate the freq dist and sort by dice number (index)\n", + "\n", + "frequency_distribution = dice_hundred['value'].value_counts().reset_index().sort_values(by='value')\n", + "frequency_distribution.columns = ['Value', 'Frequency']\n", + "\n", + "frequency_distribution" + ] + }, + { + "cell_type": "code", + "execution_count": 158, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Set custom bar colors\n", + "bar_color = 'plum'\n", + "\n", + "# Create the bar plot with step size 1 for the y-axis and custom bar colors\n", + "plt.bar(frequency_distribution['Value'], frequency_distribution['Frequency'], color=bar_color)\n", + "\n", + "# Calculate the median\n", + "median = np.median(dice)\n", + "\n", + "plt.xlabel('Value - Dice number (x)')\n", + "plt.ylabel('Frequency (y)')\n", + "plt.title('Frequency Distribution of Dice Rolls')\n", + "\n", + "# Set x-axis ticks with a step size of 1\n", + "plt.xticks(frequency_distribution['Value'])\n", + "\n", + "# Set y-axis ticks with a step size of 1\n", + "plt.yticks(range(0, int(max(frequency_distribution['Frequency'])) + 1))\n", + "\n", + "#other way to set scale\n", + "#plt.yticks(range(min(sorted_rolls), max(sorted_rolls) + 1))\n", + "#plt.xticks(range(min(sorted_rolls), max(sorted_rolls) + 1))\n", + "\n", + "# Display the median as text on the plot\n", + "plt.text(median, 1, f\"Median: {median}\", ha='center', va='bottom', fontsize=12)\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 173, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjMAAAHFCAYAAAAHcXhbAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA3iElEQVR4nO3deXhU9cH28XuyTRayECAkgRAi+yaLKKsSZJGIlEUrLkiQ0EpByyKPLfj4GCsShUKxoiiIAbRsVgRai4AKCAIaQFYREFklMeyBhEy28/7hm6lDWJIh5MyB7+e6ziVztrlnRpKb8zvnjM0wDEMAAAAW5WV2AAAAgOtBmQEAAJZGmQEAAJZGmQEAAJZGmQEAAJZGmQEAAJZGmQEAAJZGmQEAAJZGmQEAAJZGmQE8xOzZs2Wz2bR58+bLLn/ggQdUu3Ztl3m1a9fWoEGDyvQ8GzZsUHJyss6ePete0FvQwoUL1aRJEwUEBMhms2nbtm0l1hk1apRsNpu+//77K+7n+eefl81m09atW0v93O58xsCthjIDWNjHH3+sF154oUzbbNiwQS+99BJlppROnDihJ554QnXq1NGnn36qjRs3qn79+iXWS0pKkiS99957l91PUVGR5s6dqxYtWqhVq1Y3NDNwq6HMABbWsmVL1alTx+wYZZKfn6+CggKzY5Tavn37lJ+frwEDBqhTp05q27atAgMDS6zXtGlT3XXXXXr//fcv+/pWrlypY8eOOUsPgPJDmQEs7NIhiKKiIo0fP14NGjRQQECAwsLCdPvtt+v111+XJCUnJ+t//ud/JElxcXGy2Wyy2Wxas2aNc/uJEyeqYcOGstvtioiI0MCBA3Xs2DGX5zUMQxMmTFBsbKz8/f3VunVrrVq1SvHx8YqPj3eut2bNGtlsNr3//vt69tlnVaNGDdntdv3www86ceKEhg0bpsaNG6tSpUqKiIjQvffeq3Xr1rk816FDh2Sz2TRp0iS99tprql27tgICAhQfH+8sGn/+858VHR2t0NBQ9e3bV5mZmaV6/5YtW6Z27dopMDBQwcHB6tatmzZu3OhcPmjQIHXs2FGS1L9/f9lsNpfXd6mkpCRlZGRo+fLlJZalpqbKbrfr8ccfV25urp599lm1aNFCoaGhCg8PV7t27bR06dJrZi4ejjx06JDL/OL3uvizLPbZZ5+pS5cuCgkJUWBgoDp06KDPP//8ms8DWAllBvAwhYWFKigoKDGV5gvuJ06cqOTkZD366KP65JNPtHDhQiUlJTmHlIYMGaJnnnlGkrR48WJt3LhRGzdudA57/OEPf9Cf/vQndevWTcuWLdPLL7+sTz/9VO3bt9fJkyedz/P888/r+eefV48ePbR06VINHTpUQ4YM0b59+y6ba+zYsTpy5Ijefvtt/etf/1JERIROnz4tSXrxxRf1ySefKDU1Vbfddpvi4+NL/EKWpDfffFNfffWV3nzzTb377rv6/vvv1atXLyUlJenEiRN67733NHHiRH322WcaMmTINd+refPmqXfv3goJCdH8+fM1a9YsnTlzRvHx8Vq/fr0k6YUXXtCbb74pSZowYYI2btyot95664r7fPTRRxUYGFhiqOnMmTNaunSp+vbtq8qVK8vhcOj06dMaM2aMlixZovnz56tjx47q16+f5s6de83spfXBBx+oe/fuCgkJ0Zw5c7Ro0SKFh4frvvvuo9Dg5mIA8AipqamGpKtOsbGxLtvExsYaiYmJzscPPPCA0aJFi6s+z6RJkwxJxsGDB13m79mzx5BkDBs2zGX+119/bUgyxo0bZxiGYZw+fdqw2+1G//79XdbbuHGjIcno1KmTc97q1asNScY999xzzddfUFBg5OfnG126dDH69u3rnH/w4EFDktG8eXOjsLDQOX/q1KmGJOM3v/mNy35GjhxpSDLOnTt3xecqLCw0oqOjjWbNmrns8/z580ZERITRvn37Eq/hww8/vOZrMAzDSExMNHx9fY2ff/7ZOe+NN94wJBmrVq266mtPSkoyWrZs6bLs0s+4+P+TSz+/4pyrV682DMMwsrOzjfDwcKNXr14lXnvz5s2Nu+66q1SvB7ACjswAHmbu3LlKS0srMRUPd1zNXXfdpe3bt2vYsGFasWKFsrKySv28q1evlqQSV87cddddatSokfNf8ps2bZLD4dDDDz/ssl7btm1LXG1V7MEHH7zs/LffflutWrWSv7+/fHx85Ovrq88//1x79uwpse79998vL6///shq1KiRJKlnz54u6xXPP3LkyBVeqbR3714dP35cTzzxhMs+K1WqpAcffFCbNm1STk7OFbe/mqSkJOXn5+v99993zktNTVVsbKy6dOninPfhhx+qQ4cOqlSpkvO1z5o167Kv3R0bNmzQ6dOnlZiY6HKEr6ioSD169FBaWpqys7PL5bkAs1FmAA/TqFEjtW7dusQUGhp6zW3Hjh2rv/71r9q0aZMSEhJUpUoVdenS5YqXe//aqVOnJElRUVEllkVHRzuXF/+3evXqJda73Lwr7XPKlCn6wx/+oDZt2uijjz7Spk2blJaWph49eujixYsl1g8PD3d57Ofnd9X5ubm5l83y69dwpddaVFSkM2fOXHH7q7n77rtVv359paamSpJ27NihrVu36sknn5TNZpP0yxDfww8/rBo1auiDDz7Qxo0blZaWpsGDB181d1n8/PPPkqSHHnpIvr6+LtNrr70mwzCcQ32A1fmYHQBA+fHx8dHo0aM1evRonT17Vp999pnGjRun++67T0ePHr3sVTjFqlSpIklKT09XzZo1XZYdP35cVatWdVmv+Jflr2VkZFz26EzxL/Ff++CDDxQfH6/p06e7zD9//vzVX2Q5+PVrvdTx48fl5eWlypUru73/wYMH689//rO++eYbzZs3T15eXi5HvD744APFxcVp4cKFLu+Nw+G45r79/f0vu+6vz2mS5Py83njjDbVt2/ay+7pS+QSshiMzwE0qLCxMDz30kIYPH67Tp087r36x2+2SVOLox7333ivpl1+0v5aWlqY9e/Y4h0jatGkju92uhQsXuqy3adMmHT58uNT5bDabM0uxHTt2uFxNdKM0aNBANWrU0Lx581xOrM7OztZHH33kvMLJXYmJifLx8dE777yjf/zjH+rSpYtiY2Ody202m/z8/FyKTEZGRqmuZiouizt27HCZv2zZMpfHHTp0UFhYmL777rvLHulr3bq18ygWYHUcmQFuIr169VLTpk3VunVrVatWTYcPH9bUqVMVGxurevXqSZKaNWsmSXr99deVmJgoX19fNWjQQA0aNNDvf/97vfHGG/Ly8lJCQoIOHTqkF154QTExMRo1apSkX4Z1Ro8erZSUFFWuXFl9+/bVsWPH9NJLLykqKsrlHJSreeCBB/Tyyy/rxRdfVKdOnbR371795S9/UVxc3A2/D42Xl5cmTpyoxx9/XA888ICeeuopORwOTZo0SWfPntWrr756XfuPjIzU/fffr9TUVBmGUeLeMg888IAWL16sYcOG6aGHHtLRo0f18ssvKyoqSvv377/qvu+88041aNBAY8aMUUFBgSpXrqyPP/7YeQVWsUqVKumNN95QYmKi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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "#Jesus' method\n", + "\n", + "bin_edges = [i - 0.5 for i in range(1, 8)]\n", + "\n", + "plt.hist(dice_hundred['value'], bins=bin_edges, rwidth=0.8, color='powderblue')\n", + "\n", + "# Calculate the mean\n", + "mean_value = dice_hundred['value'].mean()\n", + "\n", + "# Display the mean as a vertical line on the histogram\n", + "plt.axvline(mean_value, color='cadetblue', linestyle='dashed', linewidth=2, label=f'Mean: {mean_value}')\n", + "\n", + "# Set labels and title\n", + "plt.xlabel('Value')\n", + "plt.ylabel('Frequency')\n", + "plt.title('Histogram of Value')\n", + "\n", + "# Add a legend\n", + "plt.legend()\n", + "\n", + "# Show the plot\n", + "plt.show()" + ] + }, + { + "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": 174, + "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", + "
Unnamed: 0rollvalue
0005
1116
2221
\n", + "
" + ], + "text/plain": [ + " Unnamed: 0 roll value\n", + "0 0 0 5\n", + "1 1 1 6\n", + "2 2 2 1" + ] + }, + "execution_count": 174, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# your code here\n", + "dice_thousand = pd.read_csv('/Users/amandine/Desktop/Ironhack/03_Week/Descriptive-Stats/data/roll_the_dice_thousand.csv')\n", + "dice_thousand.head(3)" + ] + }, + { + "cell_type": "code", + "execution_count": 175, + "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", + "
Dice NumberFrequency
01175
12167
23175
34168
45149
56166
\n", + "
" + ], + "text/plain": [ + " Dice Number Frequency\n", + "0 1 175\n", + "1 2 167\n", + "2 3 175\n", + "3 4 168\n", + "4 5 149\n", + "5 6 166" + ] + }, + "execution_count": 175, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "frequency_distribution = dice_thousand['value'].value_counts().sort_index().reset_index()\n", + "\n", + "frequency_distribution.columns = ['Dice Number', 'Frequency']\n", + "\n", + "frequency_distribution" + ] + }, + { + "cell_type": "code", + "execution_count": 176, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjsAAAHFCAYAAAAUpjivAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAABAlElEQVR4nO3de3zPdeP/8efHDh/bzOxgtmXWlFMmp1UOlTlbKFQoZbIOLnIR+15Fv27mqsvEhVyUTgxR5LqQK1c5nwpdQxSVkGO2Vk4z47PZ3r8/uvlcfcyGj/H+7O1xv93et7yPn+fnY/H0eh8+NsMwDAEAAFhUBbMDAAAAXE+UHQAAYGmUHQAAYGmUHQAAYGmUHQAAYGmUHQAAYGmUHQAAYGmUHQAAYGmUHQAAYGmUHaCcmDlzpmw2m7Zs2XLJ9V26dNGtt97qsuzWW29Vv379rup1Nm7cqNTUVJ08edK9oDeh+fPnq379+vLz85PNZtP27duLbfPCCy/IZrPphx9+KPE4L7/8smw2m7Zt23bFr+3O7zFws6HsABa2aNEivfLKK1e1z8aNGzV69GjKzhX69ddf9eSTT+q2227T559/rk2bNql27drFtktOTpYkzZgx45LHKSoq0uzZs9WoUSM1adLkumYGbjaUHcDCGjdurNtuu83sGFeloKBA58+fNzvGFfvxxx9VUFCgJ554Qq1atVKzZs3k7+9fbLu4uDjdfffd+uCDDy75/pYvX64jR444SxGAskPZASzs4lMcRUVFeu2111SnTh35+fmpSpUquvPOOzV58mRJUmpqqv7v//5PkhQbGyubzSabzaa1a9c69x83bpzq1q0ru92u8PBw9e3bV0eOHHF5XcMwNGbMGMXExKhixYqKj4/XihUrlJCQoISEBOd2a9eulc1m0wcffKDhw4frlltukd1u1969e/Xrr79q4MCBuuOOO1SpUiWFh4erTZs22rBhg8trHThwQDabTePHj9frr7+uW2+9VX5+fkpISHAWkZdeeklRUVEKCgpS9+7dlZ2dfUWf35IlS9S8eXP5+/srMDBQ7du316ZNm5zr+/Xrp3vvvVeS1KtXL9lsNpf3d7Hk5GRlZWXps88+K7YuPT1ddrtdffr00blz5zR8+HA1atRIQUFBCgkJUfPmzfXJJ59cNvOF050HDhxwWX7hs77we3nBypUr1bZtW1WuXFn+/v5q2bKlVq1addnXAcoTyg5QzhQWFur8+fPFJsMwLrvvuHHjlJqaqscee0xLly7V/PnzlZyc7Dxl9fTTT2vw4MGSpIULF2rTpk3atGmT87TKn/70J7344otq3769lixZoldffVWff/65WrRood9++835Oi+//LJefvllderUSZ988okGDBigp59+Wj/++OMlc40YMUKHDh3S22+/rX//+98KDw/X8ePHJUmjRo3S0qVLlZ6erpo1ayohIaHYX9iS9Oabb+rLL7/Um2++qffff18//PCDunbtquTkZP3666+aMWOGxo0bp5UrV+rpp5++7Gf14Ycf6qGHHlLlypX10Ucfafr06Tpx4oQSEhL0xRdfSJJeeeUVvfnmm5KkMWPGaNOmTXrrrbdKPOZjjz0mf3//YqeyTpw4oU8++UTdu3dXcHCwHA6Hjh8/rpSUFC1evFgfffSR7r33XvXo0UOzZ8++bPYrNWfOHHXo0EGVK1fWrFmz9PHHHyskJEQdO3ak8MBaDADlQnp6uiGp1CkmJsZln5iYGCMpKck536VLF6NRo0alvs748eMNScb+/ftdln///feGJGPgwIEuy7/66itDkjFy5EjDMAzj+PHjht1uN3r16uWy3aZNmwxJRqtWrZzL1qxZY0gy7r///su+//PnzxsFBQVG27Ztje7duzuX79+/35BkNGzY0CgsLHQuf+ONNwxJxoMPPuhynKFDhxqSjFOnTpX4WoWFhUZUVJTRoEEDl2OePn3aCA8PN1q0aFHsPSxYsOCy78EwDCMpKcnw8fExfvnlF+eyKVOmGJKMFStWlPrek5OTjcaNG7usu/j3+MLPycW/fxdyrlmzxjAMwzhz5owREhJidO3atdh7b9iwoXH33Xdf0fsBygNGdoByZvbs2crIyCg2XTidUpq7775bO3bs0MCBA7Vs2TLl5ORc8euuWbNGkord+XP33XerXr16zpGAzZs3y+FwqGfPni7bNWvWrNjdYhc8/PDDl1z+9ttvq0mTJqpYsaK8vb3l4+OjVatW6fvvvy+27QMPPKAKFf73R1q9evUkSZ07d3bZ7sLyQ4cOlfBOpd27d+vo0aN68sknXY5ZqVIlPfzww9q8ebPy8vJK3L80ycnJKigo0AcffOBclp6erpiYGLVt29a5bMGCBWrZsqUqVarkfO/Tp0+/5Ht3x8aNG3X8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0J49e8yO4tEiIyOL/cOjXr16OnTokEmJzMHIDqDfT10NHjxYixYt0tq1axUbG2t2pHLLMAw5HA6zY3istm3bFruL6KmnnlLdunX14osvysvLy6Rk5YvD4dD333+v++67z+woHq1ly5bFHqPx448/KiYmxqRE5qDsWFBubq727t3rnN+/f7+2b9+ukJAQ1ahRw8RknmvQoEH68MMP9cknnygwMFBZWVmSpKCgIPn5+ZmcznONHDlSiYmJio6O1unTpzVv3jytXbu22N1t+J/AwMBi14IFBAQoNDSUa8RKkZKSoq5du6pGjRrKzs7Wa6+9ppycHCUlJZkdzaO98MILatGihcaMGaOePXvqv//9r9599129++67Zke7sQxYzpo1awxJxaakpCSzo3msS31ekoz09HSzo3m0/v37GzExMYavr69RtWpVo23btsby5cvNjlXutGrVyhgyZIjZMTxar169jMjISMPHx8eIiooyevToYezatcvsWOXCv//9byMuLs6w2+1G3bp1jXfffdfsSDeczTAMw6SeBQAAcN1xgTIAALA0yg4AALA0yg4AALA0yg4AALA0yg4AALA0yg4AALA0yg4AALA0yg4Ay0pISNDQoUPNjgHAZJQdAB6pa9euateu3SXXbdq0STabTdu2bbvBqQCUR5QdAB4pOTlZq1ev1sGDB4utmzFjhho1aqQmTZqYkAxAeUPZAeCRunTpovDwcM2cOdNleV5enubPn69u3brpscceU/Xq1eXv768GDRroo48+KvWYNptNixcvdllWpUoVl9f4+eef1atXLwUHBys0NFQPPfSQDhw4UDZvCoApKDsAPJK3t7f69u2rmTNn6o9f4bdgwQLl5+fr6aefVtOmTfXpp59q586devbZZ/Xkk0/qq6++cvs18/Ly1Lp1a1WqVEnr16/XF198oUqVKqlTp07Kz88vi7cFwASUHQAeq3///jpw4IDWrl3rXDZjxgz16NFDt9xyi1JSUtSoUSPVrFlTgwcPVseOHbVgwQK3X2/evHmqUKGC3n//fTVo0ED16tVTenq6Dh065JIBQPnibXYAAChJ3bp11aJFC82YMUOtW7fWvn37tGHDBi1fvlyFhYUaO3as5s+fr59//lkOh0MOh0MBAQFuv97WrVu1d+9eBQYGuiw/d+6c9u3bd61vB4BJKDsAPFpycrKef/55vfnmm0pPT1dMTIzatm2r8ePHa9KkSXrjjTfUoEEDBQQEaOjQoaWebrLZbC6nxCSpoKDA+euioiI1bdpUc+fOLbZv1apVy+5NAbihKDsAPFrPnj01ZMgQffjhh5o1a5aeeeYZ2Ww2bdiwQQ899JCeeOIJSb8XlT179qhevXolHqtq1arKzMx0zu/Zs0d5eXnO+SZNmmj+/PkKDw9X5cqVr9+bAnBDcc0OAI9WqVIl9erVSyNHjtTRo0fVr18/SdLtt9+uFStWaOPGjfr+++/13HPPKSsrq9RjtWnTRlOnTtW2bdu0ZcsWDRgwQD4+Ps71ffr0UVhYmB566CFt2LBB+/fv17p16zRkyBAdOXLker5NANcRZQeAx0tOTtaJEyfUrl071ahRQ5L0yiuvqEmTJurYsaMSEhIUERGhbt26lXqcCRMmKDo6Wvfff78ef/xxpaSkyN/f37ne399f69evV40aNdSjRw/Vq1dP/fv319mzZxnpAcoxm3HxCWwAAAALYWQHAABYGmUHAABYGmUHAABYGmUHAABYGmUHAABYGmUHAABYGmUHAABYGmUHAABYGmUHAABYGmUHAABYGmUHAABYGmUHAABY2v8HOblBgy7naKwAAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "#Jesus' method\n", + "\n", + "bin_edges = [i - 0.5 for i in range(1, 8)]\n", + "\n", + "plt.hist(dice_thousand['value'], bins=bin_edges, rwidth=0.8, color='powderblue')\n", + "\n", + "# Calculate the mean\n", + "mean_value = dice_thousand['value'].mean()\n", + "\n", + "# Display the mean as a vertical line on the histogram\n", + "plt.axvline(mean_value, color='cadetblue', linestyle='dashed', linewidth=2, label=f'Mean: {mean_value}')\n", + "\n", + "# Set labels and title\n", + "plt.xlabel('Value')\n", + "plt.ylabel('Frequency')\n", + "plt.title('Histogram of Value')\n", + "\n", + "# Add a legend\n", + "plt.legend()\n", + "\n", + "# Show the plot\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here we see more uniform chart and mean line closer to the 3.\n", + "Almost all the values will have the same count (more flat/uniform distribution).\n", + "The more values we have, the closer we gonna be to the mean." + ] + }, + { + "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": 235, + "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", + "
observation
068.0
112.0
245.0
338.0
449.0
527.0
639.0
712.0
842.0
933.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\n", + "5 27.0\n", + "6 39.0\n", + "7 12.0\n", + "8 42.0\n", + "9 33.0" + ] + }, + "execution_count": 235, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# your code here\n", + "ages_population_df = pd.read_csv('/Users/amandine/Desktop/Ironhack/03_Week/Descriptive-Stats/data/ages_population.csv')\n", + "ages_population_df.head(10)" + ] + }, + { + "cell_type": "code", + "execution_count": 178, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([68., 12., 45., 38., 49., 27., 39., 42., 33., 30., 25., 44., 53.,\n", + " 46., 50., 22., 6., 29., 35., 28., 26., 60., 41., 52., 32., 23.,\n", + " 15., 40., 63., 31., 34., 61., 64., 37., 56., 14., 13., 51., 36.,\n", + " 18., 48., 58., 20., 54., 19., 62., 55., 21., 43., 17., 7., 47.,\n", + " 1., 16., 24., 59., 57., 8., 67., 2., 66., 4., 73., 82., 70.,\n", + " 5., 71., 9., 69., 11., 10., 65.])" + ] + }, + "execution_count": 178, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ages_population_df['observation'].unique()" + ] + }, + { + "cell_type": "code", + "execution_count": 180, + "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", + "
observation
count1000.0000
mean36.5600
std12.8165
min1.0000
25%28.0000
50%37.0000
75%45.0000
max82.0000
\n", + "
" + ], + "text/plain": [ + " observation\n", + "count 1000.0000\n", + "mean 36.5600\n", + "std 12.8165\n", + "min 1.0000\n", + "25% 28.0000\n", + "50% 37.0000\n", + "75% 45.0000\n", + "max 82.0000" + ] + }, + "execution_count": 180, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ages_population_df.describe()" + ] + }, + { + "cell_type": "code", + "execution_count": 179, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
AgeFrequency
01.02
12.02
24.01
35.02
46.02
.........
6769.01
6870.01
6971.01
7073.01
7182.01
\n", + "

72 rows × 2 columns

\n", + "
" + ], + "text/plain": [ + " Age Frequency\n", + "0 1.0 2\n", + "1 2.0 2\n", + "2 4.0 1\n", + "3 5.0 2\n", + "4 6.0 2\n", + ".. ... ...\n", + "67 69.0 1\n", + "68 70.0 1\n", + "69 71.0 1\n", + "70 73.0 1\n", + "71 82.0 1\n", + "\n", + "[72 rows x 2 columns]" + ] + }, + "execution_count": 179, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "frequency_distribution = ages_population_df['observation'].value_counts().sort_index().reset_index()\n", + "\n", + "frequency_distribution.columns = ['Age', 'Frequency']\n", + "\n", + "frequency_distribution" + ] + }, + { + "cell_type": "code", + "execution_count": 192, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjMAAAHFCAYAAAAHcXhbAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA7MElEQVR4nO3df3zP9f7/8fvbfrz3w4ym/fJjJvM7vyKRbJL5WaIfKkLxOUpOfqZQX3MOJk7SOYrqaDgdoVI5p8gSSpJRQwhphtpaGBtjm+31/aOL9+lt7802m9f7xe16ubwv9X6+nu/X+/Haaz/unq/n6/m2GYZhCAAAwKKqmF0AAADAlSDMAAAASyPMAAAASyPMAAAASyPMAAAASyPMAAAASyPMAAAASyPMAAAASyPMAAAASyPMABawePFi2Ww2bd++3eX2Pn36qF69ek5t9erV09ChQ8v0Plu2bFFcXJxOnTpVvkKvQytWrFCzZs3k6+srm82m5ORks0sCrjuEGeAa9cEHH+iFF14o02u2bNmiadOmEWZK6bffftOjjz6qm266SWvXrtXXX3+thg0bml0WcN3xNLsAAJWjdevWZpdQZvn5+bLZbPL0tMavpgMHDig/P1+DBg1SdHS02eUA1y1GZoBr1KWXmQoLCzV9+nQ1atRIvr6+ql69ulq0aKFXXnlFkhQXF6dnnnlGkhQZGSmbzSabzaaNGzc6Xj979mw1btxYdrtdwcHBGjx4sI4dO+b0voZhaObMmYqIiJCPj4/atm2rxMRExcTEKCYmxtFv48aNstls+te//qXx48erVq1astvt+vHHH/Xbb79p5MiRatq0qapWrarg4GDdeeed+vLLL53e6/Dhw7LZbJozZ45efPFF1atXT76+voqJiXEEjeeee07h4eEKDAxUv379lJGRUaqv3+rVq9WhQwf5+fkpICBA3bp109dff+3YPnToUHXq1EmSNGDAANlsNqfju1Rpj0mSjh07pvvvv18BAQGqXr26Bg4cqKSkJNlsNi1evNip7/bt23XPPffohhtukI+Pj1q3bq2VK1eW6hiBa4U1/vkDQJJUUFCgCxcuFGk3DOOyr509e7bi4uL0/PPPq3PnzsrPz9cPP/zguKQ0fPhwnTx5Uv/4xz+0atUqhYWFSZKaNm0qSXryySf1xhtvaNSoUerTp48OHz6sF154QRs3btS3336rmjVrSpKmTJmi+Ph4/elPf1L//v119OhRDR8+XPn5+S4vwUyaNEkdOnTQwoULVaVKFQUHB+u3336TJE2dOlWhoaE6c+aMPvjgA8XExGj9+vVFQsOrr76qFi1a6NVXX9WpU6c0fvx43X333Wrfvr28vLz01ltvKTU1VRMmTNDw4cO1evXqEr9Wy5Yt08CBAxUbG6t33nlHubm5mj17tuP9O3XqpBdeeEG33nqrnnrqKc2cOVNdunRRtWrVit3nyZMnS3VMZ8+eVZcuXXTy5Em9+OKLatCggdauXasBAwYU2eeGDRvUo0cPtW/fXgsXLlRgYKCWL1+uAQMGKCcnp8xzpgDLMgC4vYSEBENSiY+IiAin10RERBhDhgxxPO/Tp4/RqlWrEt9nzpw5hiQjJSXFqX3fvn2GJGPkyJFO7d98840hyZg8ebJhGIZx8uRJw263GwMGDHDq9/XXXxuSjOjoaEfbhg0bDElG586dL3v8Fy5cMPLz842uXbsa/fr1c7SnpKQYkoyWLVsaBQUFjvZ58+YZkox77rnHaT9jxowxJBmnT58u9r0KCgqM8PBw4+abb3baZ3Z2thEcHGx07NixyDG8++67lz2G0h7Tq6++akgy1qxZ49R/xIgRhiQjISHB0da4cWOjdevWRn5+vlPfPn36GGFhYU71A9cyLjMBFrJ06VIlJSUVeVy83FGSW2+9VTt37tTIkSP16aefKisrq9Tvu2HDBkkq8i/9W2+9VU2aNNH69eslSVu3blVubq4efPBBp3633XZbkbutLrrvvvtcti9cuFBt2rSRj4+PPD095eXlpfXr12vfvn1F+vbq1UtVqvzv11mTJk0kSb1793bqd7H9yJEjxRyptH//fv3yyy969NFHnfZZtWpV3Xfffdq6datycnKKfX1JSnNMmzZtUkBAgHr06OH02ocfftjp+Y8//qgffvhBAwcOlCRduHDB8ejVq5fS0tK0f//+ctUJWA1hBrCQJk2aqG3btkUegYGBl33tpEmT9Le//U1bt25Vz549FRQUpK5duxZ7u/cfnThxQpIcl57+KDw83LH94n9DQkKK9HPVVtw+586dqyeffFLt27fX+++/r61btyopKUk9evTQuXPnivS/4YYbnJ57e3uX2H7+/HmXtfzxGIo71sLCQmVmZhb7+uKU9phOnDhRqq/fr7/+KkmaMGGCvLy8nB4jR46UJB0/frzMdQJWxJwZ4Drh6empcePGady4cTp16pQ+++wzTZ48Wd27d9fRo0fl5+dX7GuDgoIkSWlpaapdu7bTtl9++cUxX+Ziv4t/aP8oPT3d5eiMzWYr0vb2228rJiZGCxYscGrPzs4u+SArwB+P9VK//PKLqlSpoho1apR5v6U9pqCgIG3btq3I69PT052eX/yaT5o0Sf3793f5no0aNSpznYAVMTIDXIeqV6+u+++/X0899ZROnjypw4cPS5LsdrskFRn9uPPOOyX9/gf5j5KSkrRv3z517dpVktS+fXvZ7XatWLHCqd/WrVuVmppa6vpsNpujlot27drldDdRZWnUqJFq1aqlZcuWOU2sPnv2rN5//33HHU5lVdpjio6OVnZ2ttasWePUvnz58iJ1RkVFaefOnS5H69q2bauAgIAy1wlYESMzwHXi7rvvVvPmzdW2bVvdeOONSk1N1bx58xQREaGoqChJ0s033yxJeuWVVzRkyBB5eXmpUaNGatSokf70pz/pH//4h6pUqaKePXs67maqU6eOxo4dK+n3yzrjxo1TfHy8atSooX79+unYsWOaNm2awsLCnOaglKRPnz7661//qqlTpyo6Olr79+/XX/7yF0VGRrq8m6siValSRbNnz9bAgQPVp08fjRgxQrm5uZozZ45OnTqlWbNmlWu/pT2mIUOG6OWXX9agQYM0ffp0NWjQQGvWrNGnn37qqO+i119/XT179lT37t01dOhQ1apVSydPntS+ffv07bff6t13372yLwZgFWbPQAZweRfvZkpKSnK5vXfv3pe9m+mll14yOnbsaNSsWdPw9vY26tatawwbNsw4fPiw0+smTZpkhIeHG1WqVDEkGRs2bDAM4/e7fF588UWjYcOGhpeXl1GzZk1j0KBBxtGjR51eX1hYaEyfPt2oXbu24e3tbbRo0cL473//a7Rs2dLprp2S7gTKzc01JkyYYNSqVcvw8fEx2rRpY3z44YfGkCFDnI7z4t1Mc+bMcXp9cfu+3Nfxjz788EOjffv2ho+Pj+Hv72907drV+Oqrr0r1Pq6U9pgMwzCOHDli9O/f36hataoREBBg3HfffcYnn3xiSDI++ugjp747d+40HnzwQSM4ONjw8vIyQkNDjTvvvNNYuHDhZWsCrhU2wyjFAhUAcAVSUlLUuHFjTZ06VZMn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DMPMkSEAAIArwZwZAABgaYQZAABgaYQZAABgaYQZAABgaYQZAABgaYQZAABgaYQZAABgaYQZAABgaYQZAG5py5Yt8vDwUI8ePcwuBYCbYwVgAG5p+PDhqlq1qv75z39q7969qlu3rtklAXBTjMwAcDtnz57VypUr9eSTT6pPnz5avHix0/bVq1crKipKvr6+6tKli5YsWSKbzaZTp045+mzZskWdO3eWr6+v6tSpo6efflpnz569ugcC4KogzABwOytWrFCjRo3UqFEjDRo0SAkJCbo4iHz48GHdf//9uvfee5WcnKwRI0ZoypQpTq/fvXu3unfvrv79+2vXrl1asWKFNm/erFGjRplxOAAqGZeZALid22+/XQ8++KBGjx6tCxcuKCwsTO+8847uuusuPffcc/r444+1e/duR//nn39eM2bMUGZmpqpXr67BgwfL19dXr7/+uqPP5s2bFR0drbNnz8rHx8eMwwJQSRiZAeBW9u/fr23btumhhx6SJHl6emrAgAF66623HNvbtWvn9Jpbb73V6fmOHTu0ePFiVa1a1fHo3r27CgsLlZKScnUOBMBV42l2AQDwR4sWLdKFCxdUq1YtR5thGPLy8lJmZqYMw5DNZnN6zaUDzIWFhRoxYoSefvrpIvtnIjFw7SHMAHAbFy5c0NKlS/XSSy8pNjbWadt9992nf//732rcuLE++eQTp23bt293et6mTRvt2bNHDRo0qPSaAZiPOTMA3MaHH36oAQMGKCMjQ4GBgU7bpkyZok8++USrVq1So0aNNHbsWA0bNkzJyckaP368jh07plOnTikwMFC7du3Sbbfdpscee0z/93//J39/f+3bt0+JiYn6xz/+YdLRAagszJkB4DYWLVqku+66q0iQkX4fmUlOTlZmZqbee+89rVq1Si1atNCCBQscdzPZ7XZJUosWLbRp0yYdPHhQd9xxh1q3bq0XXnhBYWFhV/V4AFwdjMwAsLwZM2Zo4cKFOnr0qNmlADABc2YAWM5rr72mdu3aKSgoSF999ZXmzJnDGjLAdYwwA8ByDh48qOnTp+vkyZOqW7euxo8fr0mTJpldFgCTcJkJAABYGhOAAQCApRFmAACApRFmAACApRFmAACApRFmAACApRFmAACApRFmAACApRFmAACApRFmAACApf1/rzAiU85PZS0AAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "bin_edges = [i - 0.5 for i in range(1, 90)]\n", + "\n", + "plt.hist(ages_population_df, bins=bin_edges, rwidth=0.8, color='powderblue')\n", + "\n", + "# Calculate the mean\n", + "mean_value = ages_population_df['observation'].mean()\n", + "\n", + "# Display the mean as a vertical line on the histogram\n", + "plt.axvline(mean_value, color='cadetblue', linestyle='dashed', linewidth=2, label=f'Mean: {mean_value}')\n", + "\n", + "plt.xlabel('Age')\n", + "plt.ylabel('Frequency')\n", + "plt.title('Histogram of age')\n", + "\n", + "plt.legend()\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 193, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Maximum Frequency: 45\n", + "Age Associated with Maximum Frequency: 39.0\n" + ] + } + ], + "source": [ + "max_frequency = frequency_distribution['Frequency'].max()\n", + "index_of_max_frequency = frequency_distribution['Frequency'].idxmax()\n", + "age_associated_with_max_frequency = frequency_distribution.loc[index_of_max_frequency, 'Age']\n", + "\n", + "print(\"Maximum Frequency:\", max_frequency)\n", + "print(\"Age Associated with Maximum Frequency:\", age_associated_with_max_frequency)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Mean is generally around the most frequent values, so ages around 40/45.\n", + "\n", + "Data are pretty sparse, so we can expect the standard deviation to be pretty high, around 10/15." + ] + }, + { + "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": 198, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The mean age is 36.56\n", + "The standard deviation for age is 12.82\n" + ] + } + ], + "source": [ + "mean_age = ages_population_df['observation'].mean()\n", + "print(f\"The mean age is {mean_age:.2f}\")\n", + "\n", + "\n", + "std_age = ages_population_df['observation'].std()\n", + "print(f\"The standard deviation for age is {std_age:.2f}\")" + ] + }, + { + "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": 199, + "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", + "
observation
025.0
131.0
229.0
331.0
429.0
529.0
628.0
730.0
824.0
926.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\n", + "5 29.0\n", + "6 28.0\n", + "7 30.0\n", + "8 24.0\n", + "9 26.0" + ] + }, + "execution_count": 199, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# your code here\n", + "ages_population2_df = pd.read_csv('/Users/amandine/Desktop/Ironhack/03_Week/Descriptive-Stats/data/ages_population2.csv')\n", + "ages_population2_df.head(10)" + ] + }, + { + "cell_type": "code", + "execution_count": 201, + "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", + "
observation
count1000.000000
mean27.155000
std2.969814
min19.000000
25%25.000000
50%27.000000
75%29.000000
max36.000000
\n", + "
" + ], + "text/plain": [ + " observation\n", + "count 1000.000000\n", + "mean 27.155000\n", + "std 2.969814\n", + "min 19.000000\n", + "25% 25.000000\n", + "50% 27.000000\n", + "75% 29.000000\n", + "max 36.000000" + ] + }, + "execution_count": 201, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ages_population2_df.describe()" + ] + }, + { + "cell_type": "code", + "execution_count": 200, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
AgeFrequency
019.03
120.013
221.017
322.035
423.041
524.078
625.098
726.0120
827.0125
928.0139
1029.0115
1130.090
1231.061
1332.031
1433.022
1534.07
1635.03
1736.02
\n", + "
" + ], + "text/plain": [ + " Age Frequency\n", + "0 19.0 3\n", + "1 20.0 13\n", + "2 21.0 17\n", + "3 22.0 35\n", + "4 23.0 41\n", + "5 24.0 78\n", + "6 25.0 98\n", + "7 26.0 120\n", + "8 27.0 125\n", + "9 28.0 139\n", + "10 29.0 115\n", + "11 30.0 90\n", + "12 31.0 61\n", + "13 32.0 31\n", + "14 33.0 22\n", + "15 34.0 7\n", + "16 35.0 3\n", + "17 36.0 2" + ] + }, + "execution_count": 200, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "frequency_distribution = ages_population2_df['observation'].value_counts().sort_index().reset_index()\n", + "\n", + "frequency_distribution.columns = ['Age', 'Frequency']\n", + "\n", + "frequency_distribution" + ] + }, + { + "cell_type": "code", + "execution_count": 204, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjsAAAHFCAYAAAAUpjivAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAABCJUlEQVR4nO3df3yPdf////vLfrz2wwxb+8XMypAfiZRImWQsIuqkIpQ6lVTCWS05TacIZ0tvijoTqlOok/I5S1nMSnLmN6lT0sxkO1eZbcZe+3V8//D1qlczZl5zbMdu18vluOR1HM/j2ON1dGT3ns/ncRw2wzAMAQAAWFQ9swsAAACoToQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdwCKWLFkim82mbdu2nXV7//791bx5c5d1zZs316hRoy7o52zevFmJiYk6fvx41Qqtg1asWKG2bdvK19dXNptNu3btMrskoE4h7AB12OrVqzVlypQL2mfz5s2aNm0aYaeSfv75Z91777264oor9Mknn+irr75Sy5YtzS4LqFM8zS4AgHk6duxodgkXrLi4WDabTZ6eteOvr++//17FxcUaPny4evToYXY5QJ1Ezw5Qh/1xGKusrEzTp09Xq1at5Ovrq4YNG+qqq67Syy+/LElKTEzUX/7yF0lSdHS0bDabbDabNm7c6Nx/9uzZat26tex2u0JCQjRixAgdOXLE5ecahqEZM2YoKipKPj4+6ty5s5KTkxUbG6vY2Fhnu40bN8pms+ntt9/WxIkT1aRJE9ntdv3www/6+eefNXbsWLVp00b169dXSEiIbr75Zn3xxRcuP+vQoUOy2WyaM2eOZs2apebNm8vX11exsbHOIPL0008rIiJCgYGBGjRokLKzsyt1/tasWaOuXbvKz89PAQEB6t27t7766ivn9lGjRql79+6SpKFDh8pms7l8vz+q7HeSpCNHjujOO+9UQECAGjZsqGHDhmnr1q2y2WxasmSJS9tt27ZpwIABaty4sXx8fNSxY0etXLmyUt8RsILa8b9GACqttLRUJSUl5dYbhnHefWfPnq3ExEQ9++yzuummm1RcXKz//ve/ziGrBx54QMeOHdO8efO0atUqhYeHS5LatGkjSXr44Yf1+uuva9y4cerfv78OHTqkKVOmaOPGjdqxY4eCg4MlSZMnT9bMmTP15z//WYMHD1ZGRoYeeOABFRcXn3WIJyEhQV27dtXChQtVr149hYSE6Oeff5YkTZ06VWFhYTpx4oRWr16t2NhYrV+/vlyoeOWVV3TVVVfplVde0fHjxzVx4kTddttt6tKli7y8vPTmm28qPT1dkyZN0gMPPKA1a9ac81wtW7ZMw4YNU1xcnN599105HA7Nnj3b+fO7d++uKVOm6LrrrtMjjzyiGTNmqGfPnmrQoEGFxzx27FilvlNBQYF69uypY8eOadasWWrRooU++eQTDR06tNwxU1JS1LdvX3Xp0kULFy5UYGCgli9frqFDh+rkyZMXPGcLqJUMAJawePFiQ9I5l6ioKJd9oqKijJEjRzo/9+/f37j66qvP+XPmzJljSDLS0tJc1n/33XeGJGPs2LEu6//zn/8YkoxnnnnGMAzDOHbsmGG3242hQ4e6tPvqq68MSUaPHj2c61JSUgxJxk033XTe719SUmIUFxcbvXr1MgYNGuRcn5aWZkgyOnToYJSWljrXz50715BkDBgwwOU448ePNyQZubm5Ff6s0tJSIyIiwmjfvr3LMfPz842QkBCjW7du5b7De++9d97vUNnv9MorrxiSjLVr17q0HzNmjCHJWLx4sXNd69atjY4dOxrFxcUubfv372+Eh4e71A9YFcNYgMW89dZb2rp1a7nlzHDKuVx33XXavXu3xo4dq08//VR5eXmV/rkpKSmSVK6n4LrrrtOVV16p9evXS5K2bNkih8OhIUOGuLS7/vrry90tdsYdd9xx1vULFy5Up06d5OPjI09PT3l5eWn9+vX67rvvyrW99dZbVa/eb3/lXXnllZKkfv36ubQ7s/7w4cMVfFNp//79Onr0qO69916XY9avX1933HGHtmzZopMnT1a4/7lU5julpqYqICBAffv2ddn37rvvdvn8ww8/6L///a+GDRsmSSopKXEut956qzIzM7V///4q1QnUJoQdwGKuvPJKde7cudwSGBh43n0TEhL097//XVu2bFF8fLyCgoLUq1evCm9n/71ff/1VkpxDW78XERHh3H7mn6GhoeXanW1dRcdMSkrSww8/rC5duuhf//qXtmzZoq1bt6pv3746depUufaNGzd2+ezt7X3O9YWFhWet5fffoaLvWlZWppycnAr3r0hlv9Ovv/5aqfP3v//9T5I0adIkeXl5uSxjx46VJP3yyy8XXCdQ2zBnB4CTp6enJkyYoAkTJuj48eP67LPP9Mwzz6hPnz7KyMiQn59fhfsGBQVJkjIzM9W0aVOXbUePHnXO1znT7swv4t/Lyso6a++OzWYrt+6dd95RbGysFixY4LI+Pz//3F/SDX7/Xf/o6NGjqlevnho1anTBx63sdwoKCtLXX39dbv+srCyXz2fOeUJCggYPHnzWn9mqVasLrhOobejZAXBWDRs21J133qlHHnlEx44d06FDhyRJdrtdksr1ntx8882STv/C/r2tW7fqu+++U69evSRJXbp0kd1u14oVK1zabdmyRenp6ZWuz2azOWs5Y8+ePS53Q1WXVq1aqUmTJlq2bJnLxO+CggL961//ct6hdaEq+5169Oih/Px8rV271mX98uXLy9UZExOj3bt3n7W3r3PnzgoICLjgOoHahp4dAE633Xab2rVrp86dO+uyyy5Tenq65s6dq6ioKMXExEiS2rdvL0l6+eWXNXLkSHl5ealVq1Zq1aqV/vznP2vevHmqV6+e4uPjnXdjRUZG6oknnpB0ethowoQJmjlzpho1aqRBgwbpyJEjmjZtmsLDw13mwJxL//799be//U1Tp05Vjx49tH//fj333HOKjo4+691o7lSvXj3Nnj1bw4YNU//+/TVmzBg5HA7NmTNHx48f1wsvvFCl41b2O40cOVIvvfSShg8frunTp6tFixZau3atPv30U2d9Z7z22muKj49Xnz59NGrUKDVp0kTHjh3Td999px07dui99967uJMB1AZmz5AG4B5n7sbaunXrWbf369fvvHdjvfjii0a3bt2M4OBgw9vb22jWrJkxevRo49ChQy77JSQkGBEREUa9evUMSUZKSophGKfvUpo1a5bRsmVLw8vLywgODjaGDx9uZGRkuOxfVlZmTJ8+3WjatKnh7e1tXHXVVca///1vo0OHDi53HZ3rTiaHw2FMmjTJaNKkieHj42N06tTJ+OCDD4yRI0e6fM8zd2PNmTPHZf+Kjn2+8/h7H3zwgdGlSxfDx8fH8Pf3N3r16mV8+eWXlfo5Z1PZ72QYhnH48GFj8ODBRv369Y2AgADjjjvuMD7++GNDkvHhhx+6tN29e7cxZMgQIyQkxPDy8jLCwsKMm2++2Vi4cOF5awKswGYYlXj4BgBUs7S0NLVu3VpTp07V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GKjk5GSXdfPmzdN1112nw4cPq1mzZsrNzdWiRYv09ttv65ZbbpEkvfPOO4qMjNRnn32mPn36VPt3AAAANVutmqCcm5srm82mhg0bSpK2b9+u4uJixcXFOdtERESoXbt22rx5c4XHcTgcysvLc1kAANaUk5enX3OPK4e/6+usWjNBubCwUE8//bTuueceNWjQQJKUlZUlb29vNWrUyKVtaGiosrKyKjzWzJkzNW3atGqtFwBQNed6qecfVealnlv27lShwyEfu13xN/S4mNJQS9WKnp3i4mLdddddKisr06uvvnre9oZhyGazVbg9ISFBubm5ziUjI8Od5QIAgBqkxoed4uJiDRkyRGlpaUpOTnb26khSWFiYioqKlJOT47JPdna2QkNDKzym3W5XgwYNXBYAAGBNNTrsnAk6Bw4c0GeffaagoCCX7ddcc428vLxcJjJnZmbqm2++Ubdu3S51uQAAoAYydc7OiRMn9MMPPzg/p6WladeuXWrcuLEiIiJ05513aseOHfr3v/+t0tJS5zycxo0by9vbW4GBgRo9erQmTpyooKAgNW7cWJMmTVL79u2dd2cBAIC6zdSws23bNvXs2dP5ecKECZKkkSNHKjExUWvWrJEkXX311S77paSkKDY2VpL00ksvydPTU0OGDNGpU6fUq1cvLVmyRB4ePCkTAACYHHZiY2NlGEaF28+17QwfHx/NmzdP8+bNc2dpAADAImr0nB0AAICLRdgBAACWRtgBAACWVmueoAwAQFXc0uUGs0uAyQg7AABL8/LkV11dxxUAAMAFcPe7u1D9mLMDAAAsjZ4dAIClHTh8SCUlJfL09FRMs+ZmlwMTEHYAAJb2Q0a6Ch0O+djthJ06imEsAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaYQdAABgaTxUEABgaQ0DGshhL5Ld29vsUmASwg4AwNK6XtXR7BJgMoaxAACApRF2AACApRF2AACApTFnBwBgaV/t2SlH0ekJyszfqZsIOwAASzuen6dCh0M+drvZpcAkDGMBAABLI+wAAABLI+wAAABLI+wAAABLI+wAAABLI+wAAABLI+wAAABLI+wAAABL46GCAABLaxEZpZKSEnl68iuvruLfPADA0mKaNTe7BJiMYSwAAGBphB0AAGBpDGMBACytuKTE+Wcv5u3USfxbBwBY2mf/+dL51vP4G3qYXQ5MwDAWAACwNFPDzueff67bbrtNERERstls+uCDD1y2G4ahxMRERUREyNfXV7Gxsdq3b59LG4fDoUcffVTBwcHy9/fXgAEDdOTIkUv4LQAAQE1matgpKChQhw4dNH/+/LNunz17tpKSkjR//nxt3bpVYWFh6t27t/Lz851txo8fr9WrV2v58uXatGmTTpw4of79+6u0tPRSfQ0AAFCDmTpnJz4+XvHx8WfdZhiG5s6dq8mTJ2vw4MGSpKVLlyo0NFTLli3TmDFjlJubq0WLFuntt9/WLbfcIkl65513FBkZqc8++0x9+vS5ZN8FAADUTDV2zk5aWpqysrIUFxfnXGe329WjRw9t3rxZkrR9+3YVFxe7tImIiFC7du2cbc7G4XAoLy/PZQEAANZUY8NOVlaWJCk0NNRlfWhoqHNbVlaWvL291ahRowrbnM3MmTMVGBjoXCIjI91cPQAAqClqbNg5w2azuXw2DKPcuj86X5uEhATl5uY6l4yMDLfUCgAAap4aG3bCwsIkqVwPTXZ2trO3JywsTEVFRcrJyamwzdnY7XY1aNDAZQEAANZUY8NOdHS0wsLClJyc7FxXVFSk1NRUdevWTZJ0zTXXyMvLy6VNZmamvvnmG2cbAABQt5l6N9aJEyf0ww8/OD+npaVp165daty4sZo1a6bx48drxowZiomJUUxMjGbMmCE/Pz/dc889kqTAwECNHj1aEydOVFBQkBo3bqxJkyapffv2zruzAAB12/XtO6rMKFM9W439/3tUM1PDzrZt29SzZ0/n5wkTJkiSRo4cqSVLlujJJ5/UqVOnNHbsWOXk5KhLly5at26dAgICnPu89NJL8vT01JAhQ3Tq1Cn16tVLS5YskYeHxyX/PgCAmqcRUxXqPJthGIbZRZgtLy9PgYGBys3NZf4OALjRh+mZlWo3MCr8gvf5/X5V2edC9rvY+lA9Kvv7mz49AABgabz1HABgaZm//KyyslLVq+eh8ODLzC4HJiDsAAAsbdf+b1XocMjHbld4cA+zy4EJGMYCAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAACWRtgBAFiap4eHc0HdxBOUAQCW1vv67maXAJPRswMAACyNsAMAACyNsAMAACyNOTsAAEvb+8N+FReXyMvLU+1btDK7HJiAnh0AgKUd+V+W0jN/0pH/ZZldCkxC2AEAAJbGMBYAANXsw/TMSrcdGBVejZXUTfTsAAAASyPsAAAASyPsAAAASyPsAAAASyPsAAAASyPsAAAAS+PWcwCApYUFXaai4mJ5e3mZXQpMQtgBAFhax9ZtzC4BJmMYCwAAWFqVwk5aWpq76wAAAKgWVQo7LVq0UM+ePfXOO++osLDQ3TUBAAC4TZXCzu7du9WxY0dNnDhRYWFhGjNmjL7++mt31wYAwEVL2bpFa79MVcrWLWaXApNUKey0a9dOSUlJ+umnn7R48WJlZWWpe/fuatu2rZKSkvTzzz+7u04AAKqksMihQodDhUUOs0uBSS5qgrKnp6cGDRqklStXatasWTp48KAmTZqkpk2basSIEcrMrPxbXgEAAKrDRYWdbdu2aezYsQoPD1dSUpImTZqkgwcPasOGDfrpp580cOBAd9UJAABQJVV6zk5SUpIWL16s/fv369Zbb9Vbb72lW2+9VfXqnc5O0dHReu2119S6dWu3FgsAAHChqhR2FixYoPvvv1/33XefwsLCztqmWbNmWrRo0UUVBwAAcLGqFHYOHDhw3jbe3t4aOXJkVQ4PAADgNlWas7N48WK999575da/9957Wrp06UUXBQAA4C5VCjsvvPCCgoODy60PCQnRjBkzLrooAAAAd6lS2ElPT1d0dHS59VFRUTp8+PBFF3VGSUmJnn32WUVHR8vX11eXX365nnvuOZWVlTnbGIahxMRERUREyNfXV7Gxsdq3b5/bagAAALVblebshISEaM+ePWrevLnL+t27dysoKMgddUmSZs2apYULF2rp0qVq27attm3bpvvuu0+BgYF6/PHHJUmzZ89WUlKSlixZopYtW2r69Onq3bu39u/fr4CAALfVAgCondpd0VKlZaXyqOdhdikwSZXCzl133aXHHntMAQEBuummmyRJqampevzxx3XXXXe5rbivvvpKAwcOVL9+/SRJzZs317vvvqtt27ZJOt2rM3fuXE2ePFmDBw+WJC1dulShoaFatmyZxowZ47ZaAAC1U2RYuNklwGRVGsaaPn26unTpol69esnX11e+vr6Ki4vTzTff7NY5O927d9f69ev1/fffSzrdc7Rp0ybdeuutkk6/fT0rK0txcXHOfex2u3r06KHNmzdXeFyHw6G8vDyXBQAAWFOVena8vb21YsUK/e1vf9Pu3bvl6+ur9u3bKyoqyq3FPfXUU8rNzVXr1q3l4eGh0tJSPf/887r77rslSVlZWZKk0NBQl/1CQ0OVnp5e4XFnzpypadOmubVWAABQM1Up7JzRsmVLtWzZ0l21lLNixQq98847WrZsmdq2batdu3Zp/PjxioiIcHmGj81mc9nPMIxy634vISFBEyZMcH7Oy8tTZGSk+78AAMB0+QUFzt8LAf7+ZpcDE1Qp7JSWlmrJkiVav369srOzXe6OkqQNGza4pbi//OUvevrpp53zgNq3b6/09HTNnDlTI0eOdD69OSsrS+Hhv43JZmdnl+vt+T273S673e6WGgEANdumXdtU6HDIx25X/A09zC4HJqhS2Hn88ce1ZMkS9evXT+3atTtnL8rFOHnypPN9W2d4eHg4w1V0dLTCwsKUnJysjh07SpKKioqUmpqqWbNmVUtNAACgdqlS2Fm+fLlWrlzpnChcXW677TY9//zzatasmdq2baudO3cqKSlJ999/v6TTw1fjx4/XjBkzFBMTo5iYGM2YMUN+fn665557qrU2AABQO1R5gnKLFi3cXUs58+bN05QpUzR27FhlZ2crIiJCY8aM0V//+ldnmyeffFKnTp3S2LFjlZOToy5dumjdunU8YwcA3OjD9MxKtx0Yxa3eqFmqdOv5xIkT9fLLL8swDHfX4yIgIEBz585Venq6Tp06pYMHD2r69Ony9vZ2trHZbEpMTFRmZqYKCwuVmpqqdu3aVWtdAACg9qhSz86mTZuUkpKitWvXqm3btvLy8nLZvmrVKrcUBwAAcLGqFHYaNmyoQYMGubsWAAAAt6tS2Fm8eLG76wAAAKgWVZqzI51+I/lnn32m1157Tfn5+ZKko0eP6sSJE24rDgAA4GJVqWcnPT1dffv21eHDh+VwONS7d28FBARo9uzZKiws1MKFC91dJwAAQJVU+aGCnTt31u7duxUUFORcP2jQID3wwANuKw4AgIvVs/P1532NEKytyndjffnlly63gEtSVFSUfvrpJ7cUBgCAO/jweqA6r0pzdsrKylRaWlpu/ZEjR3iYHwAAqFGqFHZ69+6tuXPnOj/bbDadOHFCU6dOrfZXSAAAAFyIKg1jvfTSS+rZs6fatGmjwsJC3XPPPTpw4ICCg4P17rvvurtGAACqLO2nIyopLZGnh6eimzQ1uxyYoEphJyIiQrt27dK7776rHTt2qKysTKNHj9awYcPk6+vr7hoBAKiy/x46qEKHQz52O2GnjqpS2JEkX19f3X///c43kAMAANREVQo7b7311jm3jxgxokrFAAAAuFuVn7Pze8XFxTp58qS8vb3l5+dH2AEAADVGle7GysnJcVlOnDih/fv3q3v37kxQBgAANUqV3431RzExMXrhhRfK9foAAACYyW1hR5I8PDx09OhRdx4SAADgolRpzs6aNWtcPhuGoczMTM2fP1833HCDWwoDAABwhyqFndtvv93ls81m02WXXaabb75ZL774ojvqAgAAcIsqhZ2ysjJ31wEAQLWo7+snL09P2b28z98YllTlhwoCAFAb3NjpWrNLgMmqFHYmTJhQ6bZJSUlV+REAAABuUaWws3PnTu3YsUMlJSVq1aqVJOn777+Xh4eHOnXq5Gxns9ncUyUAAEAVVSns3HbbbQoICNDSpUvVqFEjSacfNHjffffpxhtv1MSJE91aJAAAQFVVKey8+OKLWrdunTPoSFKjRo00ffp0xcXFEXYAADXG1n17VFRcLG8vL13b9iqzy4EJqvRQwby8PP3vf/8rtz47O1v5+fkXXRQAAO7yy/EcZR/7Vb8czzG7FJikSmFn0KBBuu+++/T+++/ryJEjOnLkiN5//32NHj1agwcPdneNAAAAVValYayFCxdq0qRJGj58uIqLi08fyNNTo0eP1pw5c9xaIAAAwMWoUtjx8/PTq6++qjlz5ujgwYMyDEMtWrSQv7+/u+sDAAC4KBf1ItDMzExlZmaqZcuW8vf3l2EY7qoLAADALaoUdn799Vf16tVLLVu21K233qrMzExJ0gMPPMCdWAAAoEapUth54okn5OXlpcOHD8vPz8+5fujQofrkk0/cVhwAAMDFqtKcnXXr1unTTz9V06ZNXdbHxMQoPT3dLYUBAAC4Q5V6dgoKClx6dM745ZdfZLfbL7ooAAAAd6lS2Lnpppv01ltvOT/bbDaVlZVpzpw56tmzp9uKAwDgYjWPaKorIqPUPKLp+RvDkqo0jDVnzhzFxsZq27ZtKioq0pNPPql9+/bp2LFj+vLLL91dIwAAVXZl9BVmlwCTValnp02bNtqzZ4+uu+469e7dWwUFBRo8eLB27typK67gogIAADXHBffsFBcXKy4uTq+99pqmTZtWHTUB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sAMAACyNsAMAACyNsAMAACyNsAMAACyNsAMAACyNsAMAACyNsAOg1tq8ebM8PDzUt29fs0sBUIPxBGUAtdYDDzyg+vXr64033tC3336rZs2amV0SgBqInh0AtVJBQYFWrlyphx9+WP3799eSJUtctq9Zs0YxMTHy9fVVz549tXTpUtlsNh0/ftzZZvPmzbrpppvk6+uryMhIPfbYYyooKLi0XwRAtSPsAKiVVqxYoVatWqlVq1YaPny4Fi9erDMd1YcOHdKdd96p22+/Xbt27dKYMWM0efJkl/337t2rPn36aPDgwdqzZ49WrFihTZs2ady4cWZ8HQDViGEsALXSDTfcoCFDhujxxx9XSUmJwsPD9e677+qWW27R008/rY8++kh79+51tn/22Wf1/PPPKycnRw0bNtSIESPk6+ur1157zdlm06ZN6tGjhwoKCuTj42PG1wJQDejZAVDr7N+/X19//bXuuusuSZKnp6eGDh2qN99807n92muvddnnuuuuc/m8fft2LVmyRPXr13cuffr0UVlZmdLS0i7NFwFwSXiaXQAAXKhFixappKRETZo0ca4zDENeXl7KycmRYRiy2Wwu+/yxE7usrExjxozRY489Vu74THQGrIWwA6BWKSkp0VtvvaUXX3xRcXFxLtvuuOMO/fOf/1Tr1q318ccfu2zbtm2by+dOnTpp3759atGiRbXXDMBczNkBUKt88MEHGjp0qLKzsxUYGOiybfLkyfr444+1atUqtWrVSk888YRGjx6tXbt2aeLEiTpy5IiOHz+uwMBA7dmzR9dff73uu+8+Pfjgg/L399d3332n5ORkzZs3z6RvB6A6MGcHQK2yaNEi3XLLLeWCjnS6Z2fXrl3KycnR+++/r1WrVumqq67SggULnHdj2e12SdJVV12l1NRUHThwQDfeeKM6duyoKVOmKDw8/JJ+HwDVj54dAHXC888/r4ULFyojI8PsUgBcYszZAWBJr776qq699loFBQXpyy+/1Jw5c3iGDlBHEXYAWNKBAwc0ffp0HTt2TM2aNdPEiROVkJBgdlkATMAwFgAAsDQmKAMAAEsj7AAAAEsj7AAAAEsj7AAAAEsj7AAAAEsj7AAAAEsj7AAAAEsj7AAAAEsj7AAAAEv7/wCei+V6zVCUlAAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "bin_edges = [i - 0.5 for i in range(1, 36)]\n", + "\n", + "plt.hist(ages_population2_df, bins=bin_edges, rwidth=0.8, color='powderblue')\n", + "\n", + "# Calculate the mean\n", + "mean_value = ages_population2_df['observation'].mean()\n", + "\n", + "# Display the mean as a vertical line on the histogram\n", + "plt.axvline(mean_value, color='cadetblue', linestyle='dashed', linewidth=2, label=f'Mean: {mean_value}')\n", + "\n", + "plt.xlabel('Age')\n", + "plt.ylabel('Frequency')\n", + "plt.title('Histogram of age')\n", + "\n", + "plt.legend()\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 4.- What do you see? Is there any difference with the frequency distribution in step 1?" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The distribution appears to be unimodal (having one mode) and skewed to the right. Vs almost perfect normal distribution in the previous graph.\n", + "\n", + "This means that the majority of individuals in the dataset are concentrated in the younger age groups, with fewer individuals in the older age groups. Vs previous graph where age distribution is more sparsed.\n", + "\n", + "The mode appears to be in the age group around 26.0.\n", + "\n", + "There are very few individuals in the age groups 19.0, 34.0, 35.0, and 36.0, which can be considered outliers or less common age groups in the dataset. There is less outliers value in the previous data set (one above 80)\n", + "\n", + "Standard deviation is very narrowed, compared to previous distribution where the spread was large." + ] + }, + { + "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": 205, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The mean age is 27.16\n", + "The standard deviation for age is 2.969813932689186\n" + ] + } + ], + "source": [ + "# your code here\n", + "mean_age = ages_population2_df['observation'].mean()\n", + "print(f\"The mean age is {mean_age:.2f}\")\n", + "\n", + "\n", + "std_age = ages_population2_df['observation'].std()\n", + "print(f\"The standard deviation for age is {std_age}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Age mean is younger and the spread is very narrowed, indicated high concentration of individuals around the mean." + ] + }, + { + "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": 207, + "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", + "
observation
021.0
121.0
224.0
331.0
454.0
552.0
637.0
769.0
836.0
930.0
\n", + "
" + ], + "text/plain": [ + " observation\n", + "0 21.0\n", + "1 21.0\n", + "2 24.0\n", + "3 31.0\n", + "4 54.0\n", + "5 52.0\n", + "6 37.0\n", + "7 69.0\n", + "8 36.0\n", + "9 30.0" + ] + }, + "execution_count": 207, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# your code here\n", + "ages_population3 = pd.read_csv('/Users/amandine/Desktop/Ironhack/03_Week/Descriptive-Stats/data/ages_population3.csv')\n", + "ages_population3.head(10)" + ] + }, + { + "cell_type": "code", + "execution_count": 209, + "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", + "
observation
count1000.000000
mean41.989000
std16.144706
min1.000000
25%30.000000
50%40.000000
75%53.000000
max77.000000
\n", + "
" + ], + "text/plain": [ + " observation\n", + "count 1000.000000\n", + "mean 41.989000\n", + "std 16.144706\n", + "min 1.000000\n", + "25% 30.000000\n", + "50% 40.000000\n", + "75% 53.000000\n", + "max 77.000000" + ] + }, + "execution_count": 209, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ages_population3.describe()" + ] + }, + { + "cell_type": "code", + "execution_count": 208, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
AgeFrequency
01.01
12.02
24.02
35.01
47.01
.........
7073.06
7174.06
7275.02
7376.01
7477.02
\n", + "

75 rows × 2 columns

\n", + "
" + ], + "text/plain": [ + " Age Frequency\n", + "0 1.0 1\n", + "1 2.0 2\n", + "2 4.0 2\n", + "3 5.0 1\n", + "4 7.0 1\n", + ".. ... ...\n", + "70 73.0 6\n", + "71 74.0 6\n", + "72 75.0 2\n", + "73 76.0 1\n", + "74 77.0 2\n", + "\n", + "[75 rows x 2 columns]" + ] + }, + "execution_count": 208, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "frequency_distribution = ages_population3['observation'].value_counts().sort_index().reset_index()\n", + "\n", + "frequency_distribution.columns = ['Age', 'Frequency']\n", + "\n", + "frequency_distribution" + ] + }, + { + "cell_type": "code", + "execution_count": 210, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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CAkJMbKzs02s/NryzTffGI0aNTLatGljjB071rGea2OO48ePG+Hh4cawYcOMr7/+2khNTTX+85//GD/++KOjDdem+k2bNs2oW7eu8e9//9tITU013nvvPaNmzZrG3LlzHW24LuVHmCmnW2+91XjkkUec1jVr1sx4+umnTaoIWVlZhiRj06ZNhmEYRnFxsREcHGzMnDnT0ebcuXNGQECAMX/+fLPKvKacPn3aaNKkibF27VqjS5cujjDDtTHPU089ZXTq1KnM7Vwbc/Tt29d46KGHnNYNHDjQGDx4sGEYXJeK4jZTOeTn52vHjh2KiYlxWh8TE6MtW7aYVBVOnTolSapTp44kKTU1VZmZmU7XyW63q0uXLlynajJ69Gj17dtXPXr0cFrPtTHPqlWrFBUVpbvvvltBQUFq27at/vGPfzi2c23M0alTJ61bt04//PCDJGnnzp3avHmz+vTpI4nrUlGWmAHYbL/99puKiopKvKm7Xr16Jd7ojephGIYmTJigTp06qVWrVpLkuBalXae0tLRqr/Fas3TpUn377bfatm1biW1cG/P89NNPmjdvniZMmKDJkyfrm2++0eOPPy673a6hQ4dybUzy1FNP6dSpU2rWrJnc3d1VVFSk6dOn67777pPEz0xFEWYqwGazOS0bhlFiHarHmDFjtGvXLm3evLnENq5T9UtPT9fYsWP12Wefydvbu8x2XJvqV1xcrKioKM2YMUOS1LZtW+3Zs0fz5s3T0KFDHe24NtVr2bJleuedd7RkyRK1bNlSKSkpGjdunEJDQxUfH+9ox3UpH24zlUNgYKDc3d1L9MJkZWWVSM248h577DGtWrVKGzZsUIMGDRzrg4ODJYnrZIIdO3YoKytLN998szw8POTh4aFNmzbplVdekYeHh+Pvn2tT/UJCQtSiRQundc2bN9fhw4cl8XNjlieeeEJPP/207r33XrVu3VpDhgzR+PHjlZSUJInrUlGEmXLw8vLSzTffrLVr1zqtX7t2rTp27GhSVdcewzA0ZswYrVixQuvXr1dERITT9oiICAUHBztdp/z8fG3atInrdIV1795du3fvVkpKiuMTFRWlBx54QCkpKbr++uu5Nia5/fbbS0xh8MMPPyg8PFwSPzdmyc3NlZub8z/B7u7ujkezuS4VZOLgY0s5/2j2ggULjL179xrjxo0zatSoYRw6dMjs0q4Zjz76qBEQEGBs3LjRyMjIcHxyc3MdbWbOnGkEBAQYK1asMHbv3m3cd999PMpokj8+zWQYXBuzfPPNN4aHh4cxffp048CBA8a//vUvw9fX13jnnXccbbg21S8+Pt6oX7++49HsFStWGIGBgcaTTz7paMN1KT/CTAW89tprRnh4uOHl5WW0a9fO8UgwqoekUj/JycmONsXFxcZzzz1nBAcHG3a73ejcubOxe/du84q+hl0YZrg25vnf//1fo1WrVobdbjeaNWtmvPnmm07buTbVLzs72xg7dqzRsGFDw9vb27j++uuNKVOmGHl5eY42XJfysxmGYZjZMwQAAHA5GDMDAAAsjTADAAAsjTADAAAsjTADAAAsjTADAAAsjTADAAAsjTADAAAsjTADAAAsjTADwCVt2bJF7u7u6t27t9mlAHBxzAAMwCWNGDFCNWvW1FtvvaW9e/eqYcOGZpcEwEXRMwPA5eTk5Gj58uV69NFHdccdd2jhwoVO21etWqUmTZrIx8dHXbt21aJFi2Sz2XTy5ElHmy1btqhz587y8fFRWFiYHn/8ceXk5FTviQCoFoQZAC5n2bJlioyMVGRkpAYPHqzk5GSd70Q+dOiQ/vznP+uuu+5SSkqKRo4cqSlTpjjtv3v3bvXq1UsDBw7Url27tGzZMm3evFljxowx43QAXGHcZgLgcm6//Xbdc889Gjt2rAoLCxUSEqJ3331XPXr00NNPP62PP/5Yu3fvdrR/5plnNH36dJ04cUK1atXS0KFD5ePjozfeeMPRZvPmzerSpYtycnLk7e1txmkBuELomQHgUvbv369vvvlG9957ryTJw8NDcXFx+uc//+nYfssttzjtc+uttzot79ixQwsXLlTNmjUdn169eqm4uFipqanVcyIAqo2H2QUAwB8tWLBAhYWFql+/vmOdYRjy9PTUiRMnZBiGbDab0z4XdjAXFxdr5MiRevzxx0scn4HEwNWHMAPAZRQWFmrx4sV68cUXFRMT47Rt0KBB+te//qVmzZrpk08+cdq2fft2p+V27dppz549aty48RWvGYD5GDMDwGV8+OGHiouLU1ZWlgICApy2TZkyRZ988olWrFihyMhIjR8/XsOHD1dKSoomTpyoI0eO6OTJkwoICNCuXbt022236cEHH9TDDz+sGjVqaN++fVq7dq3+/ve/m3R2AK4UxswAcBkLFixQjx49SgQZ6feemZSUFJ04cULvv/++VqxYoTZt2mjevHmOp5nsdrskqU2bNtq0aZMOHDigP/3pT2rbtq2effZZhYSEVOv5AKge9MwAsLzp06dr/vz5Sk9PN7sUACZgzAwAy3n99dd1yy23qG7duvryyy81e/Zs5pABrmGEGQCWc+DAAU2bNk3Hjx9Xw4YNNXHiRCUkJJhdFgCTcJsJAABYGgOAAQCApRFmAACApRFmAACApRFmAACApRFmAACApRFmAACApRFmAACApRFmAACApRFmAACApf0/7kGgZz9zfCQAAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "bin_edges = [i - 0.5 for i in range(1, 90)]\n", + "\n", + "plt.hist(ages_population3, bins=bin_edges, rwidth=0.8, color='powderblue')\n", + "\n", + "# Calculate the mean\n", + "mean_value = ages_population3['observation'].mean()\n", + "\n", + "# Display the mean as a vertical line on the histogram\n", + "plt.axvline(mean_value, color='cadetblue', linestyle='dashed', linewidth=2, label=f'Mean: {mean_value}')\n", + "\n", + "plt.xlabel('Age')\n", + "plt.ylabel('Frequency')\n", + "plt.title('Histogram of age')\n", + "\n", + "plt.legend()\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here we have two maximum.\n", + "\n", + "Normal distribution skewed to the right.\n", + "\n", + "Mean around 40/50 but withhigher standard deviation.\n", + "\n", + "Because if we look at the right, we have lots of values away from the mean, on the left we have values close to the mean." + ] + }, + { + "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": 212, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The mean age is 41.99\n", + "The standard deviation for age is 16.14\n" + ] + } + ], + "source": [ + "# your code here\n", + "mean_age = ages_population3['observation'].mean()\n", + "print(f\"The mean age is {mean_age:.2f}\")\n", + "\n", + "\n", + "std_age = ages_population3['observation'].std()\n", + "print(f\"The standard deviation for age is {std_age: .2f}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Value more sparsed and far away from the mean.\n", + "\n", + "Spread is larger." + ] + }, + { + "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": 213, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "the first quartile is 30.0\n", + "the second quartile is 40.0\n", + "the third quartile is 53.0\n", + "the fourth quartile is 77.0\n" + ] + } + ], + "source": [ + "# your code here\n", + "\n", + "sorted_ages = ages_population3['observation'].sort_values()\n", + "\n", + "q1 = np.quantile(sorted_ages, 0.25) \n", + "print(\"the first quartile is\", q1)\n", + "q2 = np.quantile(sorted_ages, 0.50)\n", + "print(\"the second quartile is\",q2)\n", + "q3 = np.quantile(sorted_ages, 0.75)\n", + "print(\"the third quartile is\", q3)\n", + "q4 = np.quantile(sorted_ages, 1)\n", + "print(\"the fourth quartile is\", q4)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Difference = |Mean - Median| = |41.99 - 40.0| = 1.99\n", + "\n", + "The result show that the data set is positively skewed. \n", + "\n", + "The small difference suggest a cluster around the median (40 yo).\n", + "\n", + "Very reduced spread, values highly concentrated around the median." + ] + }, + { + "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": 222, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "10th Percentile: 22.000\n", + "90th Percentile: 67.000\n" + ] + } + ], + "source": [ + "# Jesus' method\n", + "\n", + "#print(np.percentile(name of dataframe, % we want))\n", + "\n", + "percentiles = np.percentile(sorted_ages, [10, 90])\n", + "\n", + "print(f\"10th Percentile: {percentiles[0]:.3f}\")\n", + "print(f\"90th Percentile: {percentiles[1]:.3f}\")\n", + "\n", + "#Very skewed, difference between 2nd and 3rd quartile is lower than diff between 3rd and 4th quartile.\n", + "\n", + "#10th and 90th percentile are useful to identify outliers. Those are very far away from the mean and the IQR." + ] + }, + { + "cell_type": "code", + "execution_count": 243, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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wNLSEo8fP4YQAiqVSus1b3bEp6SkoH///hg2bFia43NAOZHxY9JEREYvKSkJ69evx4IFC9CkSROt59q3b4/vv/8e5cuXx969e7WeO3PmjNbX3t7euHz5MsqUKZPjMRNR3sMxTURk9Hbu3InOnTsjKioKDg4OWs9NmjQJe/fuxfbt21GuXDmMHDkSffv2RXh4OAIDA/Hvv//iyZMncHBwwMWLF1GrVi307t0b/fr1g52dHa5evYqQkBB88803Cl0dEeUWjmkiIqMXHByMRo0apUmYANnTFB4ejsePH2Pr1q3Yvn07qlatiqCgIM3sOSsrKwBA1apVERoaiuvXr8PPzw9eXl747LPP4OrqmqvXQ0TKYE8TEVEGvvjiCyxfvhx37txROhQiygM4pomI6P+WLVuGGjVqoHDhwjh+/DjmzZvHGkxEpMGkiYjo/65fv46ZM2fi0aNHKFmyJAIDAzFhwgSlwyKiPIK354iIiIh0wIHgRERERDpg0kRERESkAyZNRERERDpg0kRERESkAyZNRERERDpg0kRERESkAyZNRERERDpg0kRERESkAyZNRERERDr4HztO3TmyFIx7AAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "#Here we can try to do normal distribution to see if it's gonna be skewed to the left\n", + "\n", + "from scipy.stats import norm\n", + "\n", + "#ages_population3_bis = np.array(ages_population3, dtype=float)\n", + "\n", + "mean = np.mean(ages_population3)\n", + "std_dev = np.std(ages_population3)\n", + "\n", + "# Create a range of x-values (ages)\n", + "x = np.linspace(min(ages_population3), max(ages_population3), 1000)\n", + "\n", + "# Calculate the corresponding y-values using the normal distribution\n", + "y = norm.pdf(x, mean, std_dev)\n", + "\n", + "# Plot the normal distribution curve\n", + "plt.plot(x, y, 'b-', label='Normal Distribution')\n", + "\n", + "# Set the x-axis and y-axis labels\n", + "plt.xlabel('Age')\n", + "plt.ylabel('Probability Density')\n", + "plt.title('Normal Distribution of Age Data')\n", + "\n", + "# Add a legend\n", + "plt.legend()\n", + "\n", + "# Show the plot\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "\"\"\"\n", + "your comments here\n", + "\"\"\"\n", + "#Steps to analyse\n", + "\n", + "#1 do some cleaning\n", + "#2 do EDA -> Try to do something general for everything\n", + "#3 analysis\n", + "\n", + "#with enumerate function = make sure all the values are numerical\n", + "#but better to use enumerate(num) -> better to have random value so it is template \n", + "#then put num = name of the dataframe =ages3.np.select_dtypes(np.number) ???\n", + "#num = ages3.select_dtypes(np.number)" + ] + }, + { + "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": 283, + "metadata": {}, + "outputs": [], + "source": [ + "#we can put a function with \"warning ignore\" to ignore the warning function in Python" + ] + }, + { + "cell_type": "code", + "execution_count": 289, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Statistics for Neighborhood 1:\n", + " observation\n", + "count 1000.0000\n", + "mean 36.5600\n", + "std 12.8165\n", + "min 1.0000\n", + "25% 28.0000\n", + "50% 37.0000\n", + "75% 45.0000\n", + "max 82.0000\n", + "Statistics for Neighborhood 2:\n", + " observation\n", + "count 1000.000000\n", + "mean 27.155000\n", + "std 2.969814\n", + "min 19.000000\n", + "25% 25.000000\n", + "50% 27.000000\n", + "75% 29.000000\n", + "max 36.000000\n", + "Statistics for Neighborhood 3:\n", + " observations\n", + "count 1000.000000\n", + "mean 41.989000\n", + "std 16.144706\n", + "min 1.000000\n", + "25% 30.000000\n", + "50% 40.000000\n", + "75% 53.000000\n", + "max 77.000000\n" + ] + } + ], + "source": [ + "# Create a list of DataFrame objects for the three neighborhoods\n", + "neighborhoods = [ages_population_df, ages_population2_df, ages_population3] \n", + "\n", + "# Define the attributes you want to analyze\n", + "attributes = ['mean', 'std', 'min', 'max'] # Replace with actual attribute names from your dataset\n", + "\n", + "# Create a dictionary to store statistics for each neighborhood\n", + "neighborhood_stats = {}\n", + "\n", + "# Create string identifiers for neighborhoods\n", + "neighborhood_names = ['Neighborhood 1', 'Neighborhood 2', 'Neighborhood 3']\n", + "\n", + "# Calculate and store basic statistics for each attribute in each neighborhood\n", + "for i, neighborhood in enumerate(neighborhoods):\n", + " stats = neighborhood.describe()\n", + " neighborhood_stats[neighborhood_names[i]] = stats\n", + "\n", + "# Print and display statistics for each neighborhood and attribute\n", + "for neighborhood, stats in neighborhood_stats.items():\n", + " print(f\"Statistics for {neighborhood}:\")\n", + " print(stats)" + ] + }, + { + "cell_type": "code", + "execution_count": 292, + "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", + "
Neighborhood 1Neighborhood 2Neighborhood 3
mean36.560027.15500041.989000
std12.81652.96981416.144706
min1.000019.0000001.000000
25%28.000025.00000030.000000
50%37.000027.00000040.000000
75%45.000029.00000053.000000
max82.000036.00000077.000000
\n", + "
" + ], + "text/plain": [ + " Neighborhood 1 Neighborhood 2 Neighborhood 3\n", + "mean 36.5600 27.155000 41.989000\n", + "std 12.8165 2.969814 16.144706\n", + "min 1.0000 19.000000 1.000000\n", + "25% 28.0000 25.000000 30.000000\n", + "50% 37.0000 27.000000 40.000000\n", + "75% 45.0000 29.000000 53.000000\n", + "max 82.0000 36.000000 77.000000" + ] + }, + "execution_count": 292, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "data = {\n", + " 'Neighborhood 1': [36.5600, 12.8165, 1.0000, 28.0000, 37.0000, 45.0000, 82.0000],\n", + " 'Neighborhood 2': [27.1550, 2.969814, 19.0000, 25.0000, 27.0000, 29.0000, 36.0000],\n", + " 'Neighborhood 3': [41.9890, 16.144706, 1.0000, 30.0000, 40.0000, 53.0000, 77.0000]\n", + "}\n", + "\n", + "# Define attributes and create a DataFrame with neighborhoods as columns\n", + "attributes = ['mean', 'std', 'min', '25%', '50%', '75%', 'max']\n", + "neighborhood_stats_df = pd.DataFrame(data, index=attributes)\n", + "\n", + "# Display the DataFrame\n", + "neighborhood_stats_df" + ] + }, + { + "cell_type": "code", + "execution_count": 295, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAApMAAAHFCAYAAACuKXKKAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAABlOUlEQVR4nO3deVxN+f8H8NeVut1WtEcqJFu2yVIZZcluDDNjpzAxRcRghgbXMEUzlvlibENirDODse+yZcm+ZS/yJRlKIa2f3x9+93y7CnVVN7yej8d96HzO53zO+5z7ufe+fc4mE0IIEBERERFpoIy2AyAiIiKi9xeTSSIiIiLSGJNJIiIiItIYk0kiIiIi0hiTSSIiIiLSGJNJIiIiItIYk0kiIiIi0hiTSSIiIiLSGJNJIiIiItIYk8kicv78eQwYMACOjo7Q19eHkZERGjZsiLCwMDx+/Fjb4RU7X19fODg4aDuMd3bmzBl4enrC1NQUMpkMs2fPfusy//77L+RyOWQyGU6ePFn8Qb4jmUyGYcOGFVl7z58/h1KpRGRkZJG1+b7Ir9/LZDIolUq1sr1798LV1RWGhoaQyWTYuHEjAGDt2rWoXbs2FAoFZDIZzp49WyJxF1Zh3+O4uDjIZDLIZDKsWbMmz3ylUgmZTIZ///230LEsW7YMMpkMcXFxhV42MjISMpkMf/3111vrenl5oU6dOoVehyZU21Savj8+lO90KhlltR3Ah2Dx4sUICAiAs7MzxowZg1q1aiEzMxMnT57EggULcPToUWzYsEHbYRarCRMmYMSIEdoO450NHDgQz549w5o1a1C+fPkCfZmuWLECGRkZAIAlS5bA1dW1mKMsXZ4/f47JkycDePkD/LE7evQoKlWqJE0LIdC9e3dUr14dmzZtgqGhIZydnfHw4UP069cP7dq1w2+//Qa5XI7q1atrMfLXe5f3ODg4GF988QV0dXWLJJaOHTvi6NGjsLGxKZL2iOjdMZl8R0ePHoW/vz+8vb2xceNGyOVyaZ63tze+/fZb7NixQ4sRFq/nz5/DwMAAVatW1XYoReLixYvw8/ND+/btC7zM0qVLYWlpCXt7e6xevRozZ86EQqEoxiipNGvatKna9L179/D48WN07doVrVq1ksqPHDmCzMxM9O3bF56enkWy7rS0NOjr60MmkxVJe++qffv22L59OxYsWIDAwMAiadPCwgIWFhZF0pa2CSHw4sULbYdB9M54mPsdhYSEQCaTYdGiRWqJpIqenh4+++wzaTonJwdhYWGoUaMG5HI5LC0t0b9/f9y9e1dtOdUhlqNHj8Ld3R0KhQIODg4IDw8HAGzduhUNGzaEgYEBXFxc8iSsqsNIZ86cQbdu3WBiYgJTU1P07dsXDx8+VKu7du1atGnTBjY2NlAoFKhZsya+//57PHv2TK2er68vjIyMcOHCBbRp0wbGxsbSj2N+h0T+/PNPNGnSBKampjAwMECVKlUwcOBAtTp37txB3759YWlpCblcjpo1a2LGjBnIycmR6qgOmf3yyy+YOXMmHB0dYWRkBDc3Nxw7duxNb4/k4sWL6NKlC8qXLw99fX3Ur18fERER0nzVYaasrCzMnz9fOkT3NsePH8fFixfRr18/+Pn54cmTJ/j777/z1BNCICQkBPb29tDX14erqyt2794NLy+vPCM9KSkpGD16NBwdHaGnp4eKFSsiKCgoz/tRkP37JgsXLkT16tUhl8tRq1atfA9HJiQkYMiQIahUqRL09PTg6OiIyZMnIysrC8DL90b1wz558mRpv/n6+uLSpUuQyWT4888/pfZOnToFmUyG2rVrq63ns88+wyeffKJWtnbtWri5ucHQ0BBGRkZo27Ytzpw5kyfGkydP4rPPPkOFChWgr6+PBg0aYN26dWp1VO/v/v374e/vD3Nzc5iZmaFbt264d+9egfbXsmXL4OzsLPXT5cuX51sv92FupVIpjVJ+9913kMlkcHBwgK+vL5o1awYA6NGjB2QymVo/KMw27dq1CwMHDoSFhQUMDAyQnp5e4P2n+kzfuHEDHTp0gJGREezs7PDtt99K7bzpPX6bli1bom3btpgyZQpSU1PfWn/Pnj1o1aoVTExMYGBgAA8PD+zduzff7c59mLswny8AyMzMRHBwMGxtbWFiYoLWrVvj6tWr+cZ06NAhNG3aFAqFAhUrVsSECROQnZ2tVufx48cICAhAxYoVoaenhypVqiA4OFjahyqqU0wWLFiAmjVrQi6Xq30PpaamvrV/FvQ3BHj5H9169epBX18fFSpUQNeuXRETE5OnXkH79vz581GvXj0YGRnB2NgYNWrUwPjx4/OtSx8ZQRrLysoSBgYGokmTJgVeZvDgwQKAGDZsmNixY4dYsGCBsLCwEHZ2duLhw4dSPU9PT2FmZiacnZ3FkiVLxM6dO0WnTp0EADF58mTh4uIiVq9eLbZt2yaaNm0q5HK5+O9//ystP2nSJAFA2NvbizFjxoidO3eKmTNnCkNDQ9GgQQORkZEh1Z0yZYqYNWuW2Lp1q4iMjBQLFiwQjo6OokWLFmqx+/j4CF1dXeHg4CBCQ0PF3r17xc6dO6V59vb2Ut2oqCghk8lEz549xbZt28S+fftEeHi46Nevn1QnMTFRVKxYUVhYWIgFCxaIHTt2iGHDhgkAwt/fX6oXGxsrAAgHBwfRrl07sXHjRrFx40bh4uIiypcvL5KTk9+4z69cuSKMjY1F1apVxfLly8XWrVtFr169BAAxffp0KZajR48KAOLLL78UR48eFUePHn3r++nn5ycAiEuXLomUlBRhYGAgvLy88tQbN26cACAGDx4sduzYIRYvXiwqV64sbGxshKenp1Tv2bNnon79+sLc3FzMnDlT7NmzR/z666/C1NRUtGzZUuTk5BR4/74OAGFnZydq1aolVq9eLTZt2iTatWsnAIg///xTqnf//n1hZ2cn7O3txcKFC8WePXvElClThFwuF76+vkIIIV68eCF27NghAIhBgwZJ++3GjRtCCCFsbGzE4MGDpTanTZsmFAqFACD118zMTGFiYiLGjh0r1fvpp5+ETCYTAwcOFFu2bBHr168Xbm5uwtDQUFy6dEmqt2/fPqGnpyc+/fRTsXbtWrFjxw7h6+srAIjw8HCpXnh4uAAgqlSpIgIDA8XOnTvF77//LsqXL5+nn+dHtXyXLl3E5s2bxR9//CGqVasm7Z9X9++kSZOEEELEx8eL9evXCwAiMDBQHD16VJw+fVrcuHFDzJs3TwAQISEh4ujRo9J2FXabKlasKAYPHiy2b98u/vrrL5GVlVXg/efj4yP09PREzZo1xS+//CL27NkjJk6cKGQymZg8eXKB3uP8qD6zP//8szh79qyQyWRiwoQJ0nzV91Pu77wVK1YImUwmPv/8c7F+/XqxefNm0alTJ6GjoyP27NmTZ7tjY2OlsoJ+vvbv3y99l/Tp00ds3bpVrF69WlSuXFk4OTmJrKwsqa7qO9jW1lb85z//ETt37hTDhw8XAMTQoUOlemlpaaJu3brC0NBQ/PLLL2LXrl1iwoQJomzZsqJDhw55+kbFihVF3bp1xapVq8S+ffvExYsXC9U/C/obEhISIgCIXr16ia1bt4rly5eLKlWqCFNTU3Ht2rU8+/NtfXv16tVSP961a5fYs2ePWLBggRg+fPhr+wF9PJhMvoOEhAQBQPTs2bNA9WNiYgQAERAQoFZ+/PhxAUCMHz9eKvP09BQAxMmTJ6WyR48eCR0dHaFQKNQSx7NnzwoA4j//+Y9UpvqyHjlypNq6Vq5cKQCIP/74I98Yc3JyRGZmpjhw4IAAIM6dOyfN8/HxEQDE0qVL8yz3ajL5yy+/CABvTPS+//57AUAcP35crdzf31/IZDJx9epVIcT/fphcXFzUvuxPnDghAIjVq1e/dh1CCNGzZ08hl8vFnTt31Mrbt28vDAwM1GJ89YfiTZ49eyZMTExE06ZNpTIfHx8hk8nUfmgfP34s5HK56NGjh9ryquQ1949daGioKFOmjIiOjlar+9dffwkAYtu2bUKIgu3f1wEgFAqFSEhIkMqysrJEjRo1RLVq1aSyIUOGCCMjI3H79m215VXrViUlDx8+VEugcuvbt6+oUqWKNN26dWvh5+cnypcvLyIiIoQQQhw5ckQAELt27RJCCHHnzh1RtmxZERgYqNZWamqqsLa2Ft27d5fKatSoIRo0aCAyMzPV6nbq1EnY2NiI7OxsIcT/fjBf/eyFhYUJAOL+/fuv3V/Z2dnC1tZWNGzYUErmhRAiLi5O6OrqvjGZFEI9scpNldjkTuA12ab+/fur1SvM/lN9ptetW6dWt0OHDsLZ2VmaftN7nJ9Xt7lPnz7C0NBQ2s+vJpPPnj0TFSpUEJ07d1ZrJzs7W9SrV080btxYKns1mSzM50u1z19N8tatWycAqP0HUvUd/M8//6jV9fPzE2XKlJE+FwsWLMh3H06fPl2tXwvxsm+YmpqKx48fq9UtaP8s6G9IUlKSUCgUebbzzp07Qi6Xi969ewshCte3hw0bJsqVKyeI8sPD3CVo//79AJDn8FDjxo1Rs2bNPIdzbGxs1A79VahQAZaWlqhfvz5sbW2l8po1awIAbt++nWedffr0UZvu3r07ypYtK8UCALdu3ULv3r1hbW0NHR0d6OrqSudw5XdI5IsvvnjrtjZq1Eha37p16/Df//43T519+/ahVq1aaNy4sVq5r68vhBDYt2+fWnnHjh2ho6MjTdetWxdA/tv96npatWoFOzu7POt5/vw5jh49+tbtyc+6deuQkpKidmh54MCBEEJIpyMAwLFjx5Ceno7u3burLd+0adM8pwZs2bIFderUQf369ZGVlSW92rZtC5lMJl1NW5D9+yatWrWClZWVNK2jo4MePXrgxo0b0uGyLVu2oEWLFrC1tVWLRXU+6YEDBwq0nlu3biE2NhYvXrzA4cOH0a5dO7Ro0QK7d+8G8PLQplwulw777ty5E1lZWejfv7/aevX19eHp6Sntgxs3buDKlStSH89dt0OHDrh//36eQ5e5TzkBCtaHrl69inv37qF3795qpz7Y29vD3d39rfugMDTZplc/jwXdfyoymQydO3dWK6tbt+5bP1eFMXXqVGRmZkoX8bwqKioKjx8/ho+Pj1rMOTk5aNeuHaKjo/Oc5qFSmM+XSkH7gbGxcZ66vXv3Rk5ODg4ePAjg5feLoaEhvvzyS7V6qu/5V7/XW7ZsifLly2sUV0F/Q44ePYq0tLQ89ezs7NCyZUupXmH6duPGjZGcnIxevXrhn3/+0ehKfPpwMZl8B+bm5jAwMEBsbGyB6j969AgA8r0K0dbWVpqvUqFChTz19PT08pTr6ekBQL4ncltbW6tNly1bFmZmZtK6nj59ik8//RTHjx/H1KlTERkZiejoaKxfvx7AyxP6czMwMICJickbtxMAmjdvjo0bN0o/apUqVUKdOnWwevVqqc6jR49euy9U83MzMzNTm1ado/pqjK8q7HoKasmSJdDX10e7du2QnJyM5ORk1K1bFw4ODli2bJl0XpWq/dzJm8qrZQ8ePMD58+ehq6ur9jI2NoYQQvoCL8j+fZNX+0XuMlW8Dx48wObNm/PEojrfsSA/Jq1btwbwMmE8fPgwMjMz0bJlS7Ru3Vr6QduzZw88PDyki5YePHgA4GXC/Oq6165dK61XVW/06NF56gUEBOQboyZ9SLU/3rTPioom2/Rq3y7o/lMxMDCAvr6+WplcLi/SC0McHBwQEBCA33//HdevX88zXxXzl19+mSfm6dOnQwjx2lusFebzpVLQfpDf8q9+Th49egRra+s851hbWlqibNmyeb5f3nQV+tviKuhvSGHrFaRv9+vXD0uXLsXt27fxxRdfwNLSEk2aNJH+U0gfN17N/Q50dHTQqlUrbN++HXfv3lW7HUh+VF8U9+/fz1P33r17MDc3L/IYExISULFiRWk6KysLjx49kmLZt28f7t27h8jISLUrSpOTk/NtrzBXiXbp0gVdunRBeno6jh07htDQUPTu3RsODg5wc3ODmZkZ7t+/n2c51QnnRbU/imM9165dw+HDhwEAlStXzrfOzp070aFDB2lfq34wc0tISFAbPTE3N4dCocDSpUvzbTN3rG/bv2+SkJDw2jJVvObm5qhbty5++umnfNvIPTr+OpUqVUL16tWxZ88eODg4wNXVFeXKlUOrVq0QEBCA48eP49ixY2ojVqpt/Ouvv2Bvb//atlX1xo0bh27duuVbx9nZ+a0xvo1qf7xpnxUVTbbp1c9kQfdfSfvhhx+wdOlSjB8/Ps8FWKqY58yZk+dqeJW3JYYF+XwV1uvazL1eMzMzHD9+HEIItfciMTERWVlZeb5f3uVK+4L+huSu96r86hW0bw8YMAADBgzAs2fPcPDgQUyaNAmdOnXCtWvXSlVfo5LHZPIdjRs3Dtu2bYOfnx/++ecfaZRQJTMzEzt27EDnzp3RsmVLAMAff/whHaYEgOjoaMTExCA4OLjI41u5cqXaofJ169YhKytLusJR9cX26pXoCxcuLLIY5HI5PD09Ua5cOezcuRNnzpyBm5sbWrVqhdDQUJw+fRoNGzaU6i9fvhwymQwtWrQokvW3atUKGzZswL1799QSoOXLl8PAwOC1P15vsmTJEgAv7zFarVo1tXlpaWno0qULli5dig4dOqBJkyaQy+VYu3atWoJw7Ngx3L59W+3HrlOnTggJCYGZmRkcHR0LFMvr9u+b7N27Fw8ePJB+oLOzs7F27VpUrVpV+pHq1KkTtm3bhqpVq772sJxq/artzk/r1q2xbt062NnZoWPHjgCA6tWro3Llypg4cSIyMzOlEUwAaNu2LcqWLYubN2++8ZQKZ2dnODk54dy5cwgJCXnj9r4LZ2dn2NjYYPXq1Rg1apT0mbl9+zaioqIKlFQXZl3vuk0F3X+FUdCjAG9iZmaG7777DsHBwXkOWXt4eKBcuXK4fPlyoW+oX5jPV2GlpqZi06ZNaoefV61ahTJlyqB58+YAXn6/rFu3Dhs3bkTXrl2leqoronPfDupdFfQ3xM3NDQqFAn/88Qe++uorqd7du3exb98+6ZC8pn3b0NAQ7du3R0ZGBj7//HNcunSJyeRHjsnkO3Jzc8P8+fMREBCATz75BP7+/qhduzYyMzNx5swZLFq0CHXq1EHnzp3h7OyMwYMHY86cOShTpgzat2+PuLg4TJgwAXZ2dhg5cmSRx7d+/XqULVsW3t7euHTpEiZMmIB69epJ5xe5u7ujfPny+OabbzBp0iTo6upi5cqVOHfu3Dutd+LEibh79y5atWqFSpUqITk5Gb/++qva+ZgjR47E8uXL0bFjR/z444+wt7fH1q1b8dtvv8Hf37/IbuA8adIk6fy/iRMnokKFCli5ciW2bt2KsLAwmJqaFqq9rKwsLF++HDVr1sTXX3+db53OnTtj06ZNePjwISwsLDBq1CiEhoaifPny6Nq1K+7evYvJkyfDxsYGZcr872yToKAg/P3332jevDlGjhyJunXrIicnB3fu3MGuXbvw7bffokmTJgXav29ibm6Oli1bYsKECTA0NMRvv/2GK1euqN0e6Mcff8Tu3bvh7u6O4cOHw9nZGS9evEBcXBy2bduGBQsWoFKlSjA2Noa9vT3++ecftGrVChUqVIC5ubn0I96qVSv89ttv+Pfff9WeKNSqVSuEh4ejfPnyav/hcXBwwI8//ojg4GDcunUL7dq1Q/ny5fHgwQOcOHEChoaG0kjmwoUL0b59e7Rt2xa+vr6oWLEiHj9+jJiYGJw+fVrttkSaKlOmDKZMmYKvv/4aXbt2hZ+fH5KTk6FUKov8MDfw7ttUmP1XUG97jwsqKCgI8+bNw/bt29XKjYyMMGfOHPj4+ODx48f48ssvYWlpiYcPH+LcuXN4+PAh5s+fn2+bFSpUKPDnq7DMzMzg7++PO3fuoHr16ti2bRsWL14Mf39/6YhE//79MW/ePPj4+CAuLg4uLi44fPgwQkJC0KFDB7X/KL2rgv6GlCtXDhMmTMD48ePRv39/9OrVC48ePcLkyZOhr6+PSZMmAShc3/bz84NCoYCHhwdsbGyQkJCA0NBQmJqaqiW29JHS6uU/H5CzZ88KHx8fUblyZaGnpyfdgmfixIkiMTFRqpednS2mT58uqlevLnR1dYW5ubno27eviI+PV2vP09NT1K5dO8967O3tRceOHfOU45WrkFVXS546dUp07txZGBkZCWNjY9GrVy/x4MEDtWWjoqKEm5ubMDAwEBYWFuLrr78Wp0+fznMrEh8fH2FoaJjv9r96NfeWLVtE+/btRcWKFYWenp6wtLQUHTp0EIcOHVJb7vbt26J3797CzMxM6OrqCmdnZ/Hzzz9LV6wK8fqrYVXbXZArTC9cuCA6d+4sTE1NhZ6enqhXr57atuVu721Xc2/cuFEAELNnz35tHdWtVGbMmCGEeHmV/NSpU0WlSpWEnp6eqFu3rtiyZYuoV6+e6Nq1q9qyT58+FT/88INwdnYWenp6wtTUVLi4uIiRI0dKV2AXdP/mR7WNv/32m6hatarQ1dUVNWrUECtXrsxT9+HDh2L48OHC0dFR6OrqigoVKohPPvlEBAcHi6dPn0r19uzZIxo0aCDkcrkAIHx8fKR5SUlJokyZMsLQ0FDtllSqOwt069bttfu5RYsWwsTERMjlcmFvby++/PJLtdvECCHEuXPnRPfu3YWlpaXQ1dUV1tbWomXLlmLBggVSHdXVsq9eJa+6unf//v1v3W+///67cHJyEnp6eqJ69epi6dKlefq9EO9+Nfe7bpNKQfbf6z7Tqu+P3N70Hr/qTZ/ZRYsWCQB5bg0khBAHDhwQHTt2FBUqVBC6urqiYsWKomPHjmr7KL9bAxX08/W6fa6KN/d3guo7ODIyUri6ugq5XC5sbGzE+PHj81xp/+jRI/HNN98IGxsbUbZsWWFvby/GjRsnXrx4oVbvdd8vhemfBf0NEeJln61bt670PdKlSxe1W0Plrve2vh0RESFatGghrKyshJ6enrC1tRXdu3cX58+fz9MefXxkQghRMmkrlSSlUonJkyfj4cOHxXIuJr272NhY1KhRA5MmTeKNf4mKGD9fRCWHh7mJSsC5c+ewevVquLu7w8TEBFevXkVYWBhMTEwwaNAgbYdH9F7j54tIu5hMEpUAQ0NDnDx5EkuWLEFycjJMTU3h5eWFn3766bVXqRJRwfDzRaRdPMxNRERERBrjTcuJiIiISGNMJomIiIhIY0wmiYiIiEhjH/wFODk5Obh37x6MjY3f6TFWREREVHKEEEhNTYWtre073Xyeit8Hn0zeu3cPdnZ22g6DiIiINBAfH5/nWeRUunzwyaSxsTGAl53RxMREy9EQERFRQaSkpMDOzk76HafS64NPJlWHtk1MTJhMEhERvWd4ilrpx5MQiIiIiEhjTCaJiIiISGNMJomIiIhIYx/8OZNERET04crOzkZmZqa2w/jg6OnpFfiWTEwmiYiI6L0jhEBCQgKSk5O1HcoHqUyZMnB0dISent5b6zKZJCIioveOKpG0tLSEgYEBr/ouQqoHvty/fx+VK1d+675lMklERETvlezsbCmRNDMz03Y4HyQLCwvcu3cPWVlZ0NXVfWNdXoBDRERE7xXVOZIGBgZajuTDpTq8nZ2d/da6TCaJiIjovcRD28WnMPuWySQRERERaYzJJBEREdE78vLyQlBQkDTt4OCA2bNnay2eksRkkoiIiD4KUVFR0NHRQbt27dTKlUol6tevn6e+TCbDxo0bC9T2+vXrMWXKlCKI8n8iIyMhk8lK/e2PmEwSERHRR2Hp0qUIDAzE4cOHcefOnSJpU3UxUIUKFWBsbFwkbb5vmEwSERHRB+/Zs2dYt24d/P390alTJyxbtgwAsGzZMkyePBnnzp2DTCaDTCbDsmXL4ODgAADo2rUrZDKZNK0axVy6dCmqVKkCuVwOIUSew9wAkJqait69e8PIyAi2traYM2eONC8uLg4ymQxnz56VypKTkyGTyRAZGYm4uDi0aNECAFC+fHnIZDL4+voCeHnD9rCwMFSpUgUKhQL16tXDX3/9JbWTlJSEPn36wMLCAgqFAk5OTggPDy/S/Zkb7zNJREREH7y1a9fC2dkZzs7O6Nu3LwIDAzFhwgT06NEDFy9exI4dO7Bnzx4AgKmpKTp27AhLS0uEh4ejXbt20NHRkdq6ceMG1q1bh7///lut/FU///wzxo8fD6VSiZ07d2LkyJGoUaMGvL293xqvnZ0d/v77b3zxxRe4evUqTExMoFAoAAA//PAD1q9fj/nz58PJyQkHDx5E3759YWFhAU9PT0yYMAGXL1/G9u3bYW5ujhs3biAtLe0d9+DrMZmkUu/u94cKVb/StE+LKRIiInpfLVmyBH379gUAtGvXDk+fPsXevXvRunVrGBkZoWzZsrC2tpbqqxK3cuXKqZUDQEZGBlasWAELC4s3rtPDwwPff/89AKB69eo4cuQIZs2aVaBkUkdHBxUqVAAAWFpaoly5cgBejrDOnDkT+/btg5ubGwCgSpUqOHz4MBYuXAhPT0/cuXMHDRo0gKurKwBIo6rFhYe5iYiI6IN29epVnDhxAj179gQAlC1bFj169MDSpUs1as/e3v6tiSQAKdnLPR0TE6PROlUuX76MFy9ewNvbG0ZGRtJr+fLluHnzJgDA398fa9asQf369TF27FhERUW90zrfhiOTRERE9EFbsmQJsrKyULFiRalMCAFdXV0kJSUVuj1DQ0ONY1HdDLxMmTJSHCqqi3neJCcnBwCwdetWte0BALlcDgBo3749bt++ja1bt2LPnj1o1aoVhg4dil9++UXjuN+EySQRERF9sLKysrB8+XLMmDEDbdq0UZv3xRdfYOXKldDT08v3sYG6uroFepzg6xw7dizPdI0aNQBAGtm8f/8+GjRoAABqF+MA+T/SsFatWpDL5bhz5w48PT1fu24LCwv4+vrC19cXn376KcaMGVNsyaRWD3NnZWXhhx9+gKOjIxQKBapUqYIff/xRyrqBlxm7UqmEra0tFAoFvLy8cOnSJS1GTURERO+LLVu2ICkpCYMGDUKdOnXUXl9++SWWLFkCBwcHxMbG4uzZs/j333+Rnp4O4OW5hnv37kVCQoJGI5hHjhxBWFgYrl27hnnz5uHPP//EiBEjALw8J7Np06aYNm0aLl++jIMHD+KHH35QW97e3h4ymQxbtmzBw4cP8fTpUxgbG2P06NEYOXIkIiIicPPmTZw5cwbz5s1DREQEAGDixIn4559/cOPGDVy6dAlbtmxBzZo133FPvp5Wk8np06djwYIFmDt3LmJiYhAWFoaff/5Z7dL5sLAwzJw5E3PnzkV0dDSsra3h7e2N1NRULUZORERE74MlS5agdevWMDU1zTPviy++wNmzZ1G1alW0a9cOLVq0gIWFBVavXg0AmDFjBnbv3g07Oztp9LAwvv32W5w6dQoNGjTAlClTMGPGDLRt21aav3TpUmRmZsLV1RUjRozA1KlT1ZavWLEiJk+ejO+//x5WVlYYNmwYAGDKlCmYOHEiQkNDUbNmTbRt2xabN2+Go6MjgJcjmuPGjUPdunXRvHlz6OjoYM2aNYWOv6BkIvfB+hLWqVMnWFlZYcmSJVLZF198AQMDA6xYsQJCCNja2iIoKAjfffcdACA9PR1WVlaYPn06hgwZ8tZ1pKSkwNTUFE+ePIGJiUmxbQsVH17NTUT08XnT7/eLFy8QGxsLR0dH6OvraynCD1th9rFWRyabNWuGvXv34tq1awCAc+fO4fDhw+jQoQMAIDY2FgkJCWrnOMjlcnh6er72yqT09HSkpKSovYiIiIioeGj1ApzvvvsOT548QY0aNaCjo4Ps7Gz89NNP6NWrFwAgISEBAGBlZaW2nJWVFW7fvp1vm6GhoZg8eXLxBk5EREREALQ8Mrl27Vr88ccfWLVqFU6fPo2IiAj88ssv0gmkKqrL6FWEEHnKVMaNG4cnT55Ir/j4+GKLn4iIiOhjp9WRyTFjxuD777+XbiLq4uKC27dvIzQ0FD4+PtId5xMSEmBjYyMtl5iYmGe0UkUul0v3WSIiIiKi4qXVkcnnz59LN+1U0dHRkW4N5OjoCGtra+zevVuan5GRgQMHDsDd3b1EYyUiIiKivLQ6Mtm5c2f89NNPqFy5MmrXro0zZ85g5syZGDhwIICXh7eDgoIQEhICJycnODk5ISQkBAYGBujdu7c2QyciIiIiaDmZnDNnDiZMmICAgAAkJibC1tYWQ4YMwcSJE6U6Y8eORVpaGgICApCUlIQmTZpg165dMDY21mLkRERERARo+T6TJYH3mXz/8T6TREQfH95nUrvem/tMEhEREdH7jckkEREREWlMq+dMEhERERUlh++3lti64qZ1LLF1lWYcmSQiIiIijTGZJCIiIiohXl5eCAwMRFBQEMqXLw8rKyssWrQIz549w4ABA2BsbIyqVati+/bt0jKXL19Ghw4dYGRkBCsrK/Tr1w///vuvNH/Hjh1o1qwZypUrBzMzM3Tq1Ak3b96U5sfFxUEmk2H9+vVo0aIFDAwMUK9ePRw9erRItonJJBEREVEJioiIgLm5OU6cOIHAwED4+/vjq6++gru7O06fPo22bduiX79+eP78Oe7fvw9PT0/Ur18fJ0+exI4dO/DgwQN0795dau/Zs2cYNWoUoqOjsXfvXpQpUwZdu3aVHgKjEhwcjNGjR+Ps2bOoXr06evXqhaysrHfeHt4aiEo93hqIiOjtPrTvSk1vDVTaz5n08vJCdnY2Dh16+X5lZ2fD1NQU3bp1w/LlywH87zHSR48exbZt23D8+HHs3LlTauPu3buws7PD1atXUb169TzrePjwISwtLXHhwgXUqVMHcXFxcHR0xO+//45BgwYBeDnaWbt2bcTExKBGjRp52uCtgYiIiIhKqbp160p/6+jowMzMDC4uLlKZlZUVACAxMRGnTp3C/v37YWRkJL1UyZ/qUPbNmzfRu3dvVKlSBSYmJnB0dAQA3Llz57XrtbGxkdbxrng1NxEREVEJ0tXVVZuWyWRqZTKZDACQk5ODnJwcdO7cGdOnT8/Tjioh7Ny5M+zs7LB48WLY2toiJycHderUQUZGxmvXm3sd74rJJBEREVEp1bBhQ/z9999wcHBA2bJ507ZHjx4hJiYGCxcuxKefvjx14fDhwyUaIw9zExEREZVSQ4cOxePHj9GrVy+cOHECt27dwq5duzBw4EBkZ2ejfPnyMDMzw6JFi3Djxg3s27cPo0aNKtEYmUwSERERlVK2trY4cuQIsrOz0bZtW9SpUwcjRoyAqakpypQpgzJlymDNmjU4deoU6tSpg5EjR+Lnn38u0Rh5mJuIiIg+GKX9qTSRkZF5yuLi4vKU5b7ZjpOTE9avX//aNlu3bo3Lly+/dnkHBwe8evOecuXK5SnTFEcmiYiIiEhjTCaJiIiISGNMJomIiIhIY0wmiYiIiEhjTCaJiIiISGNMJomIiIhIY0wmiYiIiEhjTCaJiIiISGNMJomIiIhIY0wmiYiIiN4TcXFxkMlkOHv2rLZDkfBxikRERPThUJqW4LqeFFlTvr6+SE5OxsaNG4uszZLCkUkiIiIi0hiTSSIiIqIS8tdff8HFxQUKhQJmZmZo3bo1xowZg4iICPzzzz+QyWSQyWSIjIwEAJw4cQINGjSAvr4+XF1dcebMGe1uQD54mJuIiIioBNy/fx+9evVCWFgYunbtitTUVBw6dAj9+/fHnTt3kJKSgvDwcABAhQoV8OzZM3Tq1AktW7bEH3/8gdjYWIwYMULLW5EXk0kiIiKiEnD//n1kZWWhW7dusLe3BwC4uLgAABQKBdLT02FtbS3VX7ZsGbKzs7F06VIYGBigdu3auHv3Lvz9/bUS/+vwMDcRERFRCahXrx5atWoFFxcXfPXVV1i8eDGSkpJeWz8mJgb16tWDgYGBVObm5lYSoRYKk0kiIiKiEqCjo4Pdu3dj+/btqFWrFubMmQNnZ2fExsbmW18IUcIRaobJJBEREVEJkclk8PDwwOTJk3HmzBno6elhw4YN0NPTQ3Z2tlrdWrVq4dy5c0hLS5PKjh07VtIhvxWTSSIiIqIScPz4cYSEhODkyZO4c+cO1q9fj4cPH6JmzZpwcHDA+fPncfXqVfz777/IzMxE7969UaZMGQwaNAiXL1/Gtm3b8Msvv2h7M/LQajLp4OAgXQKf+zV06FAAL4d3lUolbG1toVAo4OXlhUuXLmkzZCIiIiKNmJiY4ODBg+jQoQOqV6+OH374ATNmzED79u3h5+cHZ2dnuLq6wsLCAkeOHIGRkRE2b96My5cvo0GDBggODsb06dO1vRl5aPVq7ujoaLUh3YsXL8Lb2xtfffUVACAsLAwzZ87EsmXLUL16dUydOhXe3t64evUqjI2NtRU2ERERlVZF+FSaolazZk3s2LEj33kWFhbYtWtXnvKmTZvmeXRiaTuXUqsjkxYWFrC2tpZeW7ZsQdWqVeHp6QkhBGbPno3g4GB069YNderUQUREBJ4/f45Vq1ZpM2wiIiIi+n+l5pzJjIwM/PHHHxg4cCBkMhliY2ORkJCANm3aSHXkcjk8PT0RFRX12nbS09ORkpKi9iIiIiKi4lFqksmNGzciOTkZvr6+AICEhAQAgJWVlVo9KysraV5+QkNDYWpqKr3s7OyKLWYiIiKij12pSSaXLFmC9u3bw9bWVq1cJpOpTQsh8pTlNm7cODx58kR6xcfHF0u8RERERFRKHqd4+/Zt7NmzB+vXr5fKVI8TSkhIgI2NjVSemJiYZ7QyN7lcDrlcXnzBEhEREZGkVIxMhoeHw9LSEh07dpTKHB0dYW1tjd27d0tlGRkZOHDgANzd3bURJhERERG9Qusjkzk5OQgPD4ePjw/Klv1fODKZDEFBQQgJCYGTkxOcnJwQEhICAwMD9O7dW4sRExEREZGK1pPJPXv24M6dOxg4cGCeeWPHjkVaWhoCAgKQlJSEJk2aYNeuXbzHJBEREVEpofVksk2bNq+9+aZMJoNSqYRSqSzZoIiIiIioQErFOZNERERElFdkZCRkMhmSk5O1HcpraX1kkoiIiKiouES4lNi6LvhcKPZ1uLu74/79+zA1NS32dWmKySQRERFRKaWnpyfdLrG04mFuIiIiohLi5eWFwMBABAUFoXz58rCyssKiRYvw7NkzDBgwAMbGxqhatSq2b98OIO9h7mXLlqFcuXLYuXMnatasCSMjI7Rr1w7379/X2jYxmSQiIiIqQRERETA3N8eJEycQGBgIf39/fPXVV3B3d8fp06fRtm1b9OvXD8+fP893+efPn+OXX37BihUrcPDgQdy5cwejR48u4a34HyaTRERERCWoXr16+OGHH+Dk5IRx48ZBoVDA3Nwcfn5+cHJywsSJE/Ho0SOcP38+3+UzMzOxYMECuLq6omHDhhg2bBj27t1bwlvxP0wmiYiIiEpQ3bp1pb91dHRgZmYGF5f/XTikemx0YmJivssbGBigatWq0rSNjc1r65YEJpNEREREJUhXV1dtWiaTqZXJZDIAL58SWNDlX3fP7pLAZJKIiIiINMZkkoiIiIg0xvtMEhER0QejJG4kTuqYTBIRERGVkMjIyDxlcXFxecpynwOZ+29fX1/4+vqq1f388895ziQRERERvZ+YTBIRERGRxphMEhEREZHGmEwSERERkcaYTBIRERGRxphMEhEREZHGmEwSERERkcaYTBIRERGRxphMEhEREZHGmEwSERERkcb4OEUiIiL6YMTUqFli66p5JaZQ9UNDQ7F+/XpcuXIFCoUC7u7umD59OpydnaU6vr6+iIiIUFuuSZMmOHbsmDQ9atQoLFu2DEZGRggLC0PPnj2leevWrcOKFSuwefNmDbeq8JhMEhEREZWAAwcOYOjQoWjUqBGysrIQHByMNm3a4PLlyzA0NJTqtWvXDuHh4dK0np6e9PfmzZuxatUq7Nq1C9evX8eAAQPg7e0NMzMzJCcnIzg4GHv37i3R7WIySURERFQCduzYoTYdHh4OS0tLnDp1Cs2bN5fK5XI5rK2t820jJiYGXl5ecHV1haurK4KCgnDr1i2YmZlh7NixCAgIQOXKlYt1O17FcyaJiIiItODJkycAgAoVKqiVR0ZGwtLSEtWrV4efnx8SExOlefXq1cPJkyeRlJSEU6dOIS0tDdWqVcPhw4dx+vRpDB8+vES3AWAySURERFTihBAYNWoUmjVrhjp16kjl7du3x8qVK7Fv3z7MmDED0dHRaNmyJdLT0wEAbdu2Rd++fdGoUSPp/EpDQ0P4+/tj4cKFmD9/PpydneHh4YFLly6VyLbwMDcRERFRCRs2bBjOnz+Pw4cPq5X36NFD+rtOnTpwdXWFvb09tm7dim7dugEAlEollEqlVE+pVKJ169bQ1dXF1KlTceHCBWzZsgX9+/fHqVOnin1bODJJREREVIICAwOxadMm7N+/H5UqVXpjXRsbG9jb2+P69ev5zr9y5QpWrlyJKVOmIDIyEs2bN4eFhQW6d++O06dPIyUlpTg2QQ1HJomIiIhKgBACgYGB2LBhAyIjI+Ho6PjWZR49eoT4+HjY2Njk297gwYMxY8YMGBkZITs7G5mZmQAg/ZuTk1O0G5EPjkwSERERlYChQ4fijz/+wKpVq2BsbIyEhAQkJCQgLS0NAPD06VOMHj0aR48eRVxcHCIjI9G5c2eYm5uja9euedpbvHgxLC0t8dlnnwEAPDw8sG/fPhw7dgyzZs1CrVq1UK5cuWLfLo5MEhER0QejsDcSL0nz588HAHh5eamVh4eHw9fXFzo6Orhw4QKWL1+O5ORk2NjYoEWLFli7di2MjY3Vlnnw4AFCQkIQFRUllTVu3BjffvstOnbsCEtLyzw3Py8uWh+Z/O9//4u+ffvCzMwMBgYGqF+/vtrJokIIKJVK2NraQqFQwMvLq8SuTiIiIiIqKkKIfF++vr4AAIVCgZ07dyIxMREZGRm4ffs2li1bBjs7uzxtWVlZIS4uDra2tmrlEydOxKNHjxATE4PGjRuXxGZpN5lMSkqCh4cHdHV1sX37dly+fBkzZsxQG5INCwvDzJkzMXfuXERHR8Pa2hre3t5ITU3VXuBEREREBEDLh7mnT58OOzs7tUcGOTg4SH8LITB79mwEBwdLl8NHRETAysoKq1atwpAhQ0o6ZCIiIiLKRasjk5s2bYKrqyu++uorWFpaokGDBli8eLE0PzY2FgkJCWjTpo1UJpfL4enpqXaOQG7p6elISUlRexERERFR8dBqMnnr1i3Mnz8fTk5O2LlzJ7755hsMHz4cy5cvBwAkJCQAeHleQG5WVlbSvFeFhobC1NRUeuV3ngERERERFQ2tJpM5OTlo2LAhQkJC0KBBAwwZMgR+fn7S1U4qMplMbVoIkadMZdy4cXjy5In0io+PL7b4iYiIiD52Wk0mbWxsUKtWLbWymjVr4s6dOwAAa2trAMgzCpmYmJhntFJFLpfDxMRE7UVERERExUOryaSHhweuXr2qVnbt2jXY29sDABwdHWFtbY3du3dL8zMyMnDgwAG4u7uXaKxERERElJdWr+YeOXIk3N3dERISgu7du+PEiRNYtGgRFi1aBODl4e2goCCEhITAyckJTk5OCAkJgYGBAXr37q3N0ImIiIgIWk4mGzVqhA0bNmDcuHH48ccf4ejoiNmzZ6NPnz5SnbFjxyItLQ0BAQFISkpCkyZNsGvXrjx3giciIiKikqf1xyl26tQJnTp1eu18mUwGpVIJpVJZckERERERUYFoPZkkIiIiKirzvtlXYusauqBloeorlUpMnjxZrSz37Q6FEJg8eTIWLVokHY2dN28eateuLdUfNWoUli1bBiMjI4SFhaFnz57SvHXr1mHFihXYvHnzO2xV4Wn92dxEREREH4vatWvj/v370uvChQvSvLc9Qnrz5s1YtWoVdu3ahenTp2PAgAF49OgRACA5ORnBwcGYN29eiW8Tk0kiIiKiElK2bFlYW1tLLwsLCwB5HyFdp04dRERE4Pnz51i1ahUAICYmBl5eXnB1dUWvXr1gYmKCW7duAXh5jUlAQAAqV65c4tvEZJKIiIiohFy/fh22trZwdHREz549pWSwII+QrlevHk6ePImkpCScOnUKaWlpqFatGg4fPozTp09j+PDhWtkmJpNEREREJaBJkyZYvnw5du7cicWLFyMhIQHu7u549OhRgR4h3bZtW/Tt2xeNGjWCr68vIiIiYGhoCH9/fyxcuBDz58+Hs7MzPDw8cOnSpRLbLl6AQ0RERFQC2rdvL/3t4uICNzc3VK1aFREREWjatCmAtz9C+tU73CiVSrRu3Rq6urqYOnUqLly4gC1btqB///44depU8W7Q/+PIJBEREZEWGBoawsXFBdevX9foEdJXrlzBypUrMWXKFERGRqJ58+awsLBA9+7dcfr0aaSkpBT7NgBMJomIiIi0Ij09HTExMbCxsSn0I6SFEBg8eDBmzJgBIyMjZGdnIzMzEwCkf3NyckpkO5hMEhEREZWA0aNH48CBA4iNjcXx48fx5ZdfIiUlBT4+PmqPkN6wYQMuXrwIX1/f1z5CevHixbC0tMRnn30GAPDw8MC+fftw7NgxzJo1C7Vq1UK5cuVKZLt4ziQRERF9MAp7I/GSdPfuXfTq1Qv//vsvLCws0LRpUxw7dgz29vYACv4I6QcPHiAkJES6yhsAGjdujG+//RYdO3aEpaUlIiIiSmy7ZEIIUWJr04KUlBSYmpriyZMnMDEx0XY4pIG73x8qVP1K0z4tpkiIiEqvD+278k2/3y9evEBsbCwcHR2hr6+vpQg/bIXZxzzMTUREREQaYzJJRERERBpjMklEREREGmMySUREREQaYzJJRERERBpjMklEREREGmMySUREREQaYzJJRERERBpjMklEREREGmMySUREREQa47O5iYiI6IMxo0enElvXt2u3FHoZBwcH3L59O095QEAA5s2bB19f3zzP1W7SpAmOHTsmTY8aNQrLli2DkZERwsLC0LNnT2neunXrsGLFCmzevLnQsWmKySQRERFRCYmOjkZ2drY0ffHiRXh7e+Orr76Sytq1a4fw8HBpWk9PT/p78+bNWLVqFXbt2oXr169jwIAB8Pb2hpmZGZKTkxEcHIy9e/eWzMb8PyaTREREpVBhR9h6OH5XTJFQUbKwsFCbnjZtGqpWrQpPT0+pTC6Xw9raOt/lY2Ji4OXlBVdXV7i6uiIoKAi3bt2CmZkZxo4di4CAAFSuXLlYt+FVPGeSiIiISAsyMjLwxx9/YODAgZDJZFJ5ZGQkLC0tUb16dfj5+SExMVGaV69ePZw8eRJJSUk4deoU0tLSUK1aNRw+fBinT5/G8OHDS3w7mEwSERERacHGjRuRnJwMX19fqax9+/ZYuXIl9u3bhxkzZiA6OhotW7ZEeno6AKBt27bo27cvGjVqJJ1faWhoCH9/fyxcuBDz58+Hs7MzPDw8cOnSpRLZDh7mJiIiItKCJUuWoH379rC1tZXKevToIf1dp04duLq6wt7eHlu3bkW3bt0AAEqlEkqlUqqnVCrRunVr6OrqYurUqbhw4QK2bNmC/v3749SpU8W+HRyZJCIiIipht2/fxp49e/D111+/sZ6NjQ3s7e1x/fr1fOdfuXIFK1euxJQpUxAZGYnmzZvDwsIC3bt3x+nTp5GSklIc4athMklERERUwsLDw2FpaYmOHTu+sd6jR48QHx8PGxubPPOEEBg8eDBmzJgBIyMjZGdnIzMzEwCkf3Nycoo++FcwmSQiIiIqQTk5OQgPD4ePjw/Klv3fGYdPnz7F6NGjcfToUcTFxSEyMhKdO3eGubk5unbtmqedxYsXw9LSEp999hkAwMPDA/v27cOxY8cwa9Ys1KpVC+XKlSv27eE5k0RERPTB0ORG4iVtz549uHPnDgYOHKhWrqOjgwsXLmD58uVITk6GjY0NWrRogbVr18LY2Fit7oMHDxASEoKoqCiprHHjxvj222/RsWNHWFpa5rn5eXFhMklERERUgtq0aQMhRJ5yhUKBnTt3FqgNKysrxMXF5SmfOHEiJk6c+K4hFopWD3MrlUrIZDK1V+6bdAohoFQqYWtrC4VCAS8vrxK7zJ2IiIiI3k7r50zWrl0b9+/fl14XLlyQ5oWFhWHmzJmYO3cuoqOjYW1tDW9vb6SmpmoxYiIiIiJS0XoyWbZsWVhbW0sv1WOGhBCYPXs2goOD0a1bN9SpUwcRERF4/vw5Vq1apeWoiYiIiAgoBcnk9evXYWtrC0dHR/Ts2RO3bt0CAMTGxiIhIQFt2rSR6srlcnh6eqqdbPqq9PR0pKSkqL2IiIiIqHhoNZls0qQJli9fjp07d2Lx4sVISEiAu7s7Hj16hISEBAAvTzDNzcrKSpqXn9DQUJiamkovOzu7Yt0GIiIioo+ZVpPJ9u3b44svvoCLiwtat26NrVu3AoDapey5H3wOvDz8/WpZbuPGjcOTJ0+kV3x8fPEET0RERETaP8ydm6GhIVxcXHD9+nXpqu5XRyETExPzjFbmJpfLYWJiovYiIiIiouJRqpLJ9PR0xMTEwMbGBo6OjrC2tsbu3bul+RkZGThw4ADc3d21GCURERERqWj1puWjR49G586dUblyZSQmJmLq1KlISUmBj48PZDIZgoKCEBISAicnJzg5OSEkJAQGBgbo3bu3NsMmIiIiov+n1WTy7t276NWrF/79919YWFigadOmOHbsGOzt7QEAY8eORVpaGgICApCUlIQmTZpg165deR4pRERERETaodVkcs2aNW+cL5PJoFQqoVQqSyYgIiIieq/d/f5Qia2r0rRPS2xdpVmpOmeSiIiI6EPm5eWFwMBABAUFoXz58rCyssKiRYvw7NkzDBgwAMbGxqhatSq2b98OAMjOzsagQYPg6OgIhUIBZ2dn/Prrr1J7L168QO3atTF48GCpLDY2Fqampli8eHGJbBOTSSIiIqISFBERAXNzc5w4cQKBgYHw9/fHV199BXd3d5w+fRpt27ZFv3798Pz5c+Tk5KBSpUpYt24dLl++jIkTJ2L8+PFYt24dAEBfXx8rV65EREQENm7ciOzsbPTr1w8tWrSAn59fiWwPk0kiIiKiElSvXj388MMPcHJywrhx46BQKGBubg4/Pz84OTlh4sSJePToEc6fPw9dXV1MnjwZjRo1gqOjI/r06QNfX18pmQSA+vXrY+rUqfDz88PIkSNx8+ZN/P777yW2PVo9Z5KIiIjoY1O3bl3pbx0dHZiZmcHFxUUqU91POzExEQCwYMEC/P7777h9+zbS0tKQkZGB+vXrq7X57bff4p9//sGcOXOwfft2mJubF/+G/D+OTBIRERGVIF1dXbVpmUymVqZ60l9OTg7WrVuHkSNHYuDAgdi1axfOnj2LAQMGICMjQ62NxMREXL16FTo6Orh+/Xrxb0QuHJkkIiIiKqUOHToEd3d3BAQESGU3b97MU2/gwIGoU6cO/Pz8MGjQILRq1Qq1atUqkRg1GpnMysrCnj17sHDhQqSmpgIA7t27h6dPnxZpcEREREQfs2rVquHkyZPYuXMnrl27hgkTJiA6Olqtzrx583D06FEsX74cvXv3xpdffok+ffrkGb0sLoVOJm/fvg0XFxd06dIFQ4cOxcOHDwEAYWFhGD16dJEHSERERPSx+uabb9CtWzf06NEDTZo0waNHj9RGKa9cuYIxY8bgt99+g52dHYCXyWVycjImTJhQIjEW+jD3iBEj4OrqinPnzsHMzEwq79q1K77++usiDY6IiIioMEr7jcQjIyPzlMXFxeUpE0JIf4eHhyM8PFxtfmhoKACgRo0aeP78udo8ExMTxMbGvnuwBVToZPLw4cM4cuQI9PT01Mrt7e3x3//+t8gCIyIiIqLSr9CHuXNycpCdnZ2n/O7du3xmNhEREdFHptDJpLe3N2bPni1Ny2QyPH36FJMmTUKHDh2KMjYiIiIiKuUKfZh71qxZaNGiBWrVqoUXL16gd+/euH79OszNzbF69eriiJGIiIiISqlCJ5O2trY4e/YsVq9ejdOnTyMnJweDBg1Cnz59oFAoiiNGIiIiIiqlNLppuUKhwMCBAzFw4MCijoeIiIioQHJf8UxFqzD7ttDJ5PLly984v3///oVtkj4yM3p0KlT9Ho7fFVMkRET0PlI9evD58+c8KlpMVDc819HReWtdje4zmVtmZiaeP38OPT09GBgYMJkkIiKiYqWjo4Ny5cohMTERAGBgYCA9z5reXU5ODh4+fAgDAwOULfv2VLHQyWRSUlKesuvXr8Pf3x9jxowpbHNEREREhWZtbQ0AUkJJRatMmTKoXLlygZJ0jc6ZfJWTkxOmTZuGvn374sqVK0XRJBEREdFryWQy2NjYwNLSEpmZmdoO54Ojp6eHMmUKdgfJIkkmgZdDzvfu3Suq5oiIiIjeSkdHp0Dn9VHxKXQyuWnTJrVpIQTu37+PuXPnwsPDo8gCIyIiIqLSr9DJ5Oeff642LZPJYGFhgZYtW2LGjBlFFRcRERERvQcKnUzm5OQURxxERERE9B4q9LO5iYiIiIhUCjQyOWrUqAI3OHPmTI2DISIiIqL3S4GSyTNnzhSoMd4wlIiIiOjjUqBkcv/+/cUdBxERERG9h4rsPpNERETFzeH7rYWqHzetYzFFQkQqGiWT0dHR+PPPP3Hnzh3pQeAq69evL5LAiIiIiKj0K/TV3GvWrIGHhwcuX76MDRs2IDMzE5cvX8a+fftgampaHDESERERUSlV6GQyJCQEs2bNwpYtW6Cnp4dff/0VMTEx6N69OypXrlwcMRIRERFRKVXoZPLmzZvo2PHlOShyuRzPnj2DTCbDyJEjsWjRoiIPkIiIiIhKr0InkxUqVEBqaioAoGLFirh48SIAIDk5Gc+fP9c4kNDQUMhkMgQFBUllQggolUrY2tpCoVDAy8sLly5d0ngdRERERFS0CpxMnj17FgDw6aefYvfu3QCA7t27Y8SIEfDz80OvXr3QqlUrjYKIjo7GokWLULduXbXysLAwzJw5E3PnzkV0dDSsra3h7e0tJbNEREREpF0FTiYbNmyITz75BDVr1kSvXr0AAOPGjcPo0aPx4MEDdOvWDUuWLCl0AE+fPkWfPn2wePFilC9fXioXQmD27NkIDg5Gt27dUKdOHUREROD58+dYtWpVoddDREREREWvwMnkkSNH0LBhQ/zyyy+oWrUq+vbtiwMHDmDs2LHYtGkTZs6cqZYMFtTQoUPRsWNHtG7dWq08NjYWCQkJaNOmjVQml8vh6emJqKio17aXnp6OlJQUtRcRERERFY8C32fSzc0Nbm5u+M9//oN169YhPDwcrVu3hoODAwYOHAgfHx9UqlSpUCtfs2YNTp8+jejo6DzzEhISAABWVlZq5VZWVrh9+/Zr2wwNDcXkyZMLFQcREVFxm/fNPm2HQFQsCn0BjkKhgI+PDyIjI3Ht2jX06tULCxcuhKOjIzp06FDgduLj4zFixAj88ccf0NfXf229V5/3LYR44zPAx40bhydPnkiv+Pj4AsdERERERIXzTo9TrFq1Kr7//nvY2dlh/Pjx2LlzZ4GXPXXqFBITE/HJJ59IZdnZ2Th48CDmzp2Lq1evAng5QmljYyPVSUxMzDNamZtcLodcLtdga4iIiIiosAo9Mqly4MAB+Pj4wNraGmPHjkW3bt1w5MiRAi/fqlUrXLhwAWfPnpVerq6u6NOnD86ePYsqVarA2tpaunIcADIyMnDgwAG4u7trGjYRERERFaFCjUzGx8dj2bJlWLZsGWJjY+Hu7o45c+age/fuMDQ0LNSKjY2NUadOHbUyQ0NDmJmZSeVBQUEICQmBk5MTnJycEBISAgMDA/Tu3btQ6yIiIiKi4lHgZNLb2xv79++HhYUF+vfvj4EDB8LZ2bk4Y8PYsWORlpaGgIAAJCUloUmTJti1axeMjY2Ldb1EREREVDAFTiYVCgX+/vtvdOrUCTo6OsUSTGRkpNq0TCaDUqmEUqkslvURERER0bspcDK5adOm4oyDiIiIiN5DGl+AQ0RERETEZJKIiIiINMZkkoiIiIg0xmSSiIiIiDTGZJKIiIiINPZOj1MkUpn3zT5th0BERERawJFJIiIiItIYRyZLCYfvtxaqfty0jsUUCREREVHBcWSSiIiIiDTGkUkiIg3c/f5QgetWmvZpMUZCRKRdHJkkIiIiIo0xmSQiIiIijTGZJCIiIiKNMZkkIiIiIo0xmSQiIiIijTGZJCIiIiKNMZkkIiIiIo0xmSQiIiIijTGZJCIiIiKNMZkkIiIiIo0xmSQiIiIijTGZJCIiIiKNMZkkIiIiIo0xmSQiIiIijTGZJCIiIiKNMZkkIiIiIo0xmSQiIiIijTGZJCIiIiKNMZkkIiIiIo0xmSQiIiIijTGZJCIiIiKNaTWZnD9/PurWrQsTExOYmJjAzc0N27dvl+YLIaBUKmFrawuFQgEvLy9cunRJixETERERUW5aTSYrVaqEadOm4eTJkzh58iRatmyJLl26SAljWFgYZs6ciblz5yI6OhrW1tbw9vZGamqqNsMmIiIiov+n1WSyc+fO6NChA6pXr47q1avjp59+gpGREY4dOwYhBGbPno3g4GB069YNderUQUREBJ4/f45Vq1ZpM2wiIiIi+n+l5pzJ7OxsrFmzBs+ePYObmxtiY2ORkJCANm3aSHXkcjk8PT0RFRX12nbS09ORkpKi9iIiIiKi4lFW2wFcuHABbm5uePHiBYyMjLBhwwbUqlVLShitrKzU6ltZWeH27duvbS80NBSTJ08u1piJiIhiatQs3AJe84onECIt0/rIpLOzM86ePYtjx47B398fPj4+uHz5sjRfJpOp1RdC5CnLbdy4cXjy5In0io+PL7bYiYiIiD52Wh+Z1NPTQ7Vq1QAArq6uiI6Oxq+//orvvvsOAJCQkAAbGxupfmJiYp7RytzkcjnkcnnxBk1EREREAErByOSrhBBIT0+Ho6MjrK2tsXv3bmleRkYGDhw4AHd3dy1GSEREREQqWh2ZHD9+PNq3bw87OzukpqZizZo1iIyMxI4dOyCTyRAUFISQkBA4OTnByckJISEhMDAwQO/evbUZNhF9gGb06FSo+j0cvyumSIiI3i9aTSYfPHiAfv364f79+zA1NUXdunWxY8cOeHt7AwDGjh2LtLQ0BAQEICkpCU2aNMGuXbtgbGyszbCJiIiI6P9pNZlcsmTJG+fLZDIolUoolcqSCYiIiIiICqXUnTNJRERERO8PJpNEREREpDGt3xqISifejJeIiIgKgiOTRERERKQxJpNEREREpDEe5iai13L4fmuh6sdN61hMkRARUWnFZJKIPkjzvtmn7RCIiD4KPMxNRERERBpjMklEREREGmMySUREREQaYzJJRERERBpjMklEREREGmMySUREREQaYzJJRERERBrjfSaJ6L3A58UTEZVOHJkkIiIiIo0xmSQiIiIijTGZJCIiIiKNMZkkIiIiIo0xmSQiIiIijTGZJCIiIiKNMZkkIiIiIo0xmSQiIiIijTGZJCIiIiKNMZkkIiIiIo0xmSQiIiIijTGZJCIiIiKNMZkkIiIiIo0xmSQiIiIijTGZJCIiIiKNMZkkIiIiIo0xmSQiIiIijWk1mQwNDUWjRo1gbGwMS0tLfP7557h69apaHSEElEolbG1toVAo4OXlhUuXLmkpYiIiIiLKTavJ5IEDBzB06FAcO3YMu3fvRlZWFtq0aYNnz55JdcLCwjBz5kzMnTsX0dHRsLa2hre3N1JTU7UYOREREREBQFltrnzHjh1q0+Hh4bC0tMSpU6fQvHlzCCEwe/ZsBAcHo1u3bgCAiIgIWFlZYdWqVRgyZIg2wiYiIiKi/1eqzpl88uQJAKBChQoAgNjYWCQkJKBNmzZSHblcDk9PT0RFReXbRnp6OlJSUtReRERERFQ8Sk0yKYTAqFGj0KxZM9SpUwcAkJCQAACwsrJSq2tlZSXNe1VoaChMTU2ll52dXfEGTkRERPQRKzXJ5LBhw3D+/HmsXr06zzyZTKY2LYTIU6Yybtw4PHnyRHrFx8cXS7xEREREpOVzJlUCAwOxadMmHDx4EJUqVZLKra2tAbwcobSxsZHKExMT84xWqsjlcsjl8uINmIiIiIgAaHlkUgiBYcOGYf369di3bx8cHR3V5js6OsLa2hq7d++WyjIyMnDgwAG4u7uXdLhERERE9AqtjkwOHToUq1atwj///ANjY2PpPEhTU1MoFArIZDIEBQUhJCQETk5OcHJyQkhICAwMDNC7d29thk5E78glwqVQ9dcVUxxERPRutJpMzp8/HwDg5eWlVh4eHg5fX18AwNixY5GWloaAgAAkJSWhSZMm2LVrF4yNjUs4WiIiIiJ6lVaTSSHEW+vIZDIolUoolcriD4iIiIiICqXUXM1NRERERO8fJpNEREREpDEmk0RERESkMSaTRERERKQxJpNEREREpDEmk0RERESkMSaTRERERKQxJpNEREREpDEmk0RERESkMa0+AYeIiKhYKU0LWf9J8cRB9AHjyCQRERERaYzJJBERERFpjMkkEREREWmMySQRERERaYzJJBERERFpjMkkEREREWmMySQRERERaYzJJBERERFpjMkkEREREWmMySQRERERaYzJJBERERFpjMkkEREREWmMySQRERERaYzJJBERERFprKy2AyANKU0LWf9J8cRBREREHzWOTBIRERGRxphMEhEREZHGmEwSERERkcaYTBIRERGRxphMEhEREZHGmEwSERERkcaYTBIRERGRxrSaTB48eBCdO3eGra0tZDIZNm7cqDZfCAGlUglbW1soFAp4eXnh0qVL2gmWiIiIiPLQajL57Nkz1KtXD3Pnzs13flhYGGbOnIm5c+ciOjoa1tbW8Pb2RmpqaglHSkRERET50eoTcNq3b4/27dvnO08IgdmzZyM4OBjdunUDAERERMDKygqrVq3CkCFDSjJUIiIiIspHqT1nMjY2FgkJCWjTpo1UJpfL4enpiaioqNcul56ejpSUFLUXERERERWPUptMJiQkAACsrKzUyq2srKR5+QkNDYWpqan0srOzK9Y4iYiIiD5mpTaZVJHJZGrTQog8ZbmNGzcOT548kV7x8fHFHSIRERHRR0ur50y+ibW1NYCXI5Q2NjZSeWJiYp7Rytzkcjnkcnmxx0dEREREpXhk0tHREdbW1ti9e7dUlpGRgQMHDsDd3V2LkRERERGRilZHJp8+fYobN25I07GxsTh79iwqVKiAypUrIygoCCEhIXBycoKTkxNCQkJgYGCA3r17azFqIiIiIlLRajJ58uRJtGjRQpoeNWoUAMDHxwfLli3D2LFjkZaWhoCAACQlJaFJkybYtWsXjI2NtRUyEREREeWi1WTSy8sLQojXzpfJZFAqlVAqlSUXFBEREREVWKk9Z5KIiIiISj8mk0RERESkMSaTRERERKQxJpNEREREpDEmk0RERESkMSaTRERERKQxJpNEREREpDEmk0RERESkMSaTRERERKQxJpNEREREpDEmk0RERESkMSaTRERERKQxJpNEREREpDEmk0RERESkMSaTRERERKQxJpNEREREpDEmk0RERESkMSaTRERERKQxJpNEREREpDEmk0RERESkMSaTRERERKQxJpNEREREpDEmk0RERESksbLaDoCIPiBK04LXdaxcfHEQEVGJ4cgkEREREWmMySQRERERaYzJJBERERFpjMkkEREREWmMySQRERERaYzJJBERERFpjMkkEREREWnsvbjP5G+//Yaff/4Z9+/fR+3atTF79mx8+umn2g7rveIS4VKo+uuKKQ4iotKsMN+V/J4keqnUj0yuXbsWQUFBCA4OxpkzZ/Dpp5+iffv2uHPnjrZDIyIiIvrolfpkcubMmRg0aBC+/vpr1KxZE7Nnz4adnR3mz5+v7dCIiIiIPnqlOpnMyMjAqVOn0KZNG7XyNm3aICoqSktREREREZFKqT5n8t9//0V2djasrKzUyq2srJCQkJDvMunp6UhPT5emnzx5AgBISUkpvkCLQE7680LVT5GJQtXPTssuVP2n2YWrn5bxrMB10zMzC9V2anrB2wZK/3v9PinOflma+iRQvP2SfbLolKbvyve5TwKlv1+q4hOicO8hlTyZKMXv0r1791CxYkVERUXBzc1NKv/pp5+wYsUKXLlyJc8ySqUSkydPLskwiYiIqJjEx8ejUqVK2g6D3qBUj0yam5tDR0cnzyhkYmJintFKlXHjxmHUqFHSdE5ODh4/fgwzMzPIZLJijfdDl5KSAjs7O8THx8PExETb4RCxT1Kpwz5ZdIQQSE1Nha2trbZDobco1cmknp4ePvnkE+zevRtdu3aVynfv3o0uXbrku4xcLodcLlcrK1euXHGG+dExMTHhlySVKuyTVNqwTxYNU1NTbYdABVCqk0kAGDVqFPr16wdXV1e4ublh0aJFuHPnDr755htth0ZERET00Sv1yWSPHj3w6NEj/Pjjj7h//z7q1KmDbdu2wd7eXtuhEREREX30Sn0yCQABAQEICAjQdhgfPblcjkmTJuU5jYBIW9gnqbRhn6SPUam+mpuIiIiISrdSfdNyIiIiIirdmEwSERERkcaYTBIRERGRxphMlnIODg6YPXt2gevHxcVBJpPh7Nmzr62zbNmyYrv3plKpRP369Yul7bfx8vJCUFCQVtb9MWGfLDj2yZLDfllw7JdU1JhMFgNfX1/IZDJMmzZN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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Transpose the DataFrame for plotting\n", + "neighborhood_stats_df = neighborhood_stats_df.T\n", + "\n", + "# Create a bar plot\n", + "plt.figure(figsize=(10, 6))\n", + "neighborhood_stats_df.plot(kind='bar', rot=0)\n", + "plt.title('Comparison of Ages between different Neighborhoods')\n", + "plt.xlabel('Neighborhood')\n", + "plt.ylabel('Value')\n", + "plt.legend(title='Attributes', loc='upper left', bbox_to_anchor=(1, 1))\n", + "\n", + "# Show the plot\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 301, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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jcWdO3ewePFiOeIkIiIiInrhaH1me8KECWjdujVu3LgBY2NjqbxPnz747bffajQ4IiIiIqIXmdZntnfv3o09e/bA0NBQo9zR0RF///13jQVGRERERPSi0/rMdnl5Oe7du1eh/OLFizAzM6uRoIiIiIiIXgZaJ9sBAQFYsGCB9FyhUKCwsBCRkZHo3r17TcZGRERERPRC03oZyeeff45OnTqhSZMmuHPnDoKCgnDq1CnUq1cPq1evliNGIiIiIqIXktbJtr29PTIyMrB69WocPHgQ5eXlGDZsGAYOHKhxwSQRERER0b+d1sk2ABgbG2Po0KEYOnRoTcdDRERERPTS0DrZXrFixSPrBw8e/MTBEBERPVLpQe3aG7SSJw4iomrSOtmeMGGCxvPS0lIUFxfD0NAQKpWKyTYRERER0f+n9d1Ibty4ofEoLCxEVlYWfH19eYEkEREREdEDtE62K+Pq6orZs2dXOOtNRERERPRvViPJNgDo6enh0qVLNdUdEREREdELT+s12+vXr9d4LoTA5cuXsWjRIvj4+NRYYERERERELzqtk+3evXtrPFcoFLCyssLrr7+Ozz77rKbiIiIiIiJ64WmdbJeXl8sRBxERERHRS6fG1mwTEREREZGmap3ZnjhxYrU7nD9//hMHQ0RERET0MqlWsn3o0KFqdaZQKJ4qGCIiIiKil0m1ku2dO3fKHQcRERER0UtH6wskSSabf9eufbeO8sRBRERERDXmiZLttLQ0/O9//8OFCxdw9+5djbp169bVSGBERERERC86re9G8uOPP8LHxwcnTpxAYmIiSktLceLECezYsQPm5uZyxEhERERE9ELSOtmOjo7G559/jo0bN8LQ0BBffPEFMjMz0a9fPzRs2FCOGImIiIiIXkhaJ9tnzpxBjx49AABKpRJFRUVQKBR4//33sXTp0hoPkIiIiIjoRaV1sm1paYmCggIAQP369XHs2DEAwM2bN1FcXPzEgcTExEChUCAsLEwqE0IgKioK9vb2MDY2hr+/P44fP/7EYxARERERPUvVTrYzMjIAAK+99hqSk5MBAP369cOECRMwYsQIDBgwAJ07d36iINLS0rB06VK0aNFCozw2Nhbz58/HokWLkJaWBltbWwQEBEjJPhERERHR86zayXarVq3w6quvwtPTEwMGDAAATJs2DZMmTcKVK1fQt29fLFu2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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Transpose the DataFrame for plotting\n", + "neighborhood_stats_df = neighborhood_stats_df.T\n", + "\n", + "colors = ['lemonchiffon', 'palegreen', 'lightpink']\n", + "\n", + "# Create a bar plot\n", + "plt.figure(figsize=(10, 6))\n", + "neighborhood_stats_df.plot(kind='bar', rot=0, color=colors)\n", + "plt.title('Comparison of Ages between different Neighborhoods')\n", + "plt.xlabel('Neighborhood')\n", + "plt.ylabel('Value')\n", + "plt.legend(title='Neighborhoods', loc='upper left', bbox_to_anchor=(1, 1))\n", + "\n", + "plt.show()" + ] + } + ], + "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 +} From d1277f97e0e8a73507285aaf1055a007e5e7d766 Mon Sep 17 00:00:00 2001 From: Amandine0424 <138607470+Amandine0424@users.noreply.github.com> Date: Mon, 6 Nov 2023 19:02:00 +0100 Subject: [PATCH 6/6] Delete your-code/main.ipynb --- your-code/main.ipynb | 1438 ------------------------------------------ 1 file changed, 1438 deletions(-) delete mode 100644 your-code/main.ipynb diff --git a/your-code/main.ipynb b/your-code/main.ipynb deleted file mode 100644 index cd918be..0000000 --- a/your-code/main.ipynb +++ /dev/null @@ -1,1438 +0,0 @@ -{ - "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 pandas as pd\n", - "import numpy as np\n", - "import matplotlib.pyplot as plt" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Challenge 1\n", - "#### 1.- Define a function that simulates rolling a dice 10 times. Save the information in a dataframe.\n", - "**Hint**: you can use the *choices* function from module *random* to help you with the simulation." - ] - }, - { - "cell_type": "code", - "execution_count": 85, - "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", - "
Number
05
15
23
34
46
55
65
72
85
96
\n", - "
" - ], - "text/plain": [ - " Number\n", - "0 5\n", - "1 5\n", - "2 3\n", - "3 4\n", - "4 6\n", - "5 5\n", - "6 5\n", - "7 2\n", - "8 5\n", - "9 6" - ] - }, - "execution_count": 85, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# your code here\n", - "\n", - "import random\n", - "\n", - "\n", - "def rolling_dice():\n", - " return random.choices(range(1, 7), k=10) #6 angles of the dice, rolling 10 times\n", - "\n", - "dice_rolls = rolling_dice()\n", - "\n", - "dice_df = pd.DataFrame({'Number': dice_rolls})\n", - "dice_df.head(10)\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### 2.- Plot the results sorted by value." - ] - }, - { - "cell_type": "code", - "execution_count": 91, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'whiskers': [,\n", - " ],\n", - " 'caps': [,\n", - " ],\n", - " 'boxes': [],\n", - " 'medians': [],\n", - " 'fliers': [],\n", - " 'means': []}" - ] - }, - "execution_count": 91, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# your code here\n", - "sorted_rolls = dice_df['Number'].sort_values()\n", - "\n", - "plt.boxplot(sorted_rolls)" - ] - }, - { - "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": 92, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " Dice number Frequency\n", - "0 2 1\n", - "1 3 1\n", - "2 4 1\n", - "3 5 5\n", - "4 6 2\n" - ] - } - ], - "source": [ - "#https://stackoverflow.com/questions/41551658/how-to-create-a-frequency-distribution-table-on-given-data-with-python-in-jupyte\n", - "\n", - "#Calculate the freq dist and sort by dice number (index)\n", - "frequency_distribution = pd.Series(sorted_rolls).value_counts().sort_index().reset_index()\n", - "#Why do we need to reset ?\n", - "\n", - "frequency_distribution.columns = ['Dice number', 'Frequency']\n", - "\n", - "print(frequency_distribution)\n" - ] - }, - { - "cell_type": "code", - "execution_count": 136, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 136, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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F3eXAickJCTIYrE4/FSsWNHdZcEJv/32m3r27KmyZcvK399fjRs31rZt29xSC0HlOuvWrdPAgQO1efNmrVy5UlevXtXjjz+ujIwMd5eGQqpSpYrGjh2rrVu3auvWrXr00UfVqVMn/fjjj+4uDU7asmWLPvzwQzVq1MjdpeAO1K9fXydOnLD/7Nq1y90loZDOnTun5s2by9vbW8uWLdOePXs0adIklS5d2i31FOuP0He15cuXO0zPnj1boaGh2rZtm1q2bOmmquCMjh07Oky/+eabmjZtmjZv3qz69eu7qSo469KlS+rRo4dmzJihMWPGuLsc3AEvLy9GUYqpcePGKTw8XLNnz7bPq1atmtvqYUTlFi5cuCBJCgkJcXMluBO5ublasGCBMjIyFBMT4+5y4ISBAweqffv2euyxx9xdCu7Q/v37FRYWpsjISD333HM6cOCAu0tCIX311VeKjo7WM888o9DQUDVp0kQzZsxwWz0ElZswDENDhw7VI488ogYNGri7HDhh165dCggIkNVq1YsvvqjFixerXr167i4LhbRgwQJt375dSUlJ7i4Fd+ihhx7S3LlztWLFCs2YMUMnT55Us2bNlJaW5u7SUAgHDhzQtGnTVKtWLa1YsUIvvviiBg8erLlz57qlHj6Z9iYGDhyopUuX6rvvvivyb2iGa125ckVHjhzR+fPn9e9//1szZ87UunXrCCvFwNGjRxUdHa1vv/1WUVFRkqTWrVurcePGevvtt91bHO5YRkaGatSooVdffVVDhw51dzm4DR8fH0VHR2vjxo32eYMHD9aWLVu0adOm370eRlQKMGjQIH311VdKTk4mpBRDPj4+qlmzpqKjo5WUlKSoqChNmTLF3WWhELZt26bU1FTdf//98vLykpeXl9atW6d33nlHXl5eys3NdXeJuAOlSpVSw4YNtX//fneXgkKoVKlSvj/s6tatqyNHjrilHm6mvY5hGBo0aJAWL16stWvXKjIy0t0lwQUMw1B2dra7y0AhxMbG5ns6pG/fvrrvvvv02muvydPT002V4W5kZ2dr7969atGihbtLQSE0b94830dz/Pzzz4qIiHBLPQSV6wwcOFDz5s3TkiVLFBgYqJMnT0qSgoOD5efn5+bqUBgjRozQE088ofDwcF28eFELFizQ2rVr8z3RBXMKDAzMd09YqVKlVLZsWe4VK0aGDx+ujh07qmrVqkpNTdWYMWOUnp6u3r17u7s0FMIrr7yiZs2a6a233tKzzz6rH374QR9++KE+/PBDt9RDULnOtGnTJF27Jn692bNnq0+fPr9/QXDaqVOn9Pzzz+vEiRMKDg5Wo0aNtHz5csXFxbm7NKDEOHbsmLp166YzZ86ofPnyevjhh7V582a3/UUO5zzwwANavHixXn/9df3jH/9QZGSk3n77bfXo0cMt9XAzLQAAMC1upgUAAKZFUAEAAKZFUAEAAKZFUAEAAKZFUAEAAKZFUAEAAKZFUAEAAKZFUAEAAKZFUAFKEIvFoi+//NLdZRSJPn366Kmnnvpd9zlr1iw9/vjjhV7/m2++UZMmTWSz2YqwKuDeQlABirk+ffrIYrHIYrHI29tbFSpUUFxcnD766KN8b4gnTpzQE0884aZK7y3Z2dkaOXKk/v73vxd6mw4dOshisWjevHlFWBlwbyGoAPeAdu3a6cSJEzp06JCWLVumNm3aaMiQIerQoYOuXr1qX69ixYqyWq1urLR4MQzD4fhd79///rcCAgKc/kbgvn37aurUqa4oDygRCCrAPcBqtapixYqqXLmymjZtqhEjRmjJkiVatmyZ5syZY1/vxks/x44d03PPPaeQkBCVKlVK0dHR+v777+3Lv/76a91///3y9fVV9erVlZiYeNM3bun/XX6ZOHGiKlWqpLJly2rgwIHKycm5aQ2SVLp0aXudhw4dksVi0cKFC9WiRQv5+fnpgQce0M8//6wtW7YoOjpaAQEBateunU6fPp2vhsTERIWGhiooKEh/+tOfdOXKFfsywzA0fvx4Va9eXX5+foqKitIXX3xhX7527VpZLBatWLFC0dHRslqt2rBhQ4G/64IFC/Tkk0/ap7OyslS/fn398Y9/tM87ePCggoODNWPGDPu8J598Uj/88IMOHDhw0+MI4P/h25OBe9Sjjz6qqKgoLVq0SP3798+3/NKlS2rVqpUqV66sr776ShUrVtT27dvtl4tWrFihnj176p133lGLFi3066+/2t+ER40addP9Jicnq1KlSkpOTtYvv/yirl27qnHjxhowYIBT9Y8aNUpvv/22qlatqhdeeEHdunVTUFCQpkyZIn9/fz377LMaOXKk/VvPJWn16tXy9fVVcnKyDh06pL59+6pcuXJ68803JUlvvPGGFi1apGnTpqlWrVpav369evbsqfLly6tVq1b2dl599VVNnDhR1atXV+nSpQusb8OGDQ7fJuvr66t//etfeuihhxQfH6+OHTvq+eefV5s2bRx+94iICIWGhmrDhg2qXr26U8cEKJEMAMVa7969jU6dOhW4rGvXrkbdunXt05KMxYsXG4ZhGNOnTzcCAwONtLS0Ardt0aKF8dZbbznM++STT4xKlSrdspaIiAjj6tWr9nnPPPOM0bVr1wJryBMcHGzMnj3bMAzDOHjwoCHJmDlzpn35/PnzDUnG6tWr7fOSkpKMOnXqOOw7JCTEyMjIsM+bNm2aERAQYOTm5hqXLl0yfH19jY0bNzrsu1+/fka3bt0MwzCM5ORkQ5Lx5Zdf3vR3NAzDOHfunCHJWL9+fb5l48ePN8qVK2cMGjTIqFixonH69Ol86zRp0sRISEi45T4AXMOICnAPMwxDFoulwGX/+9//1KRJE4WEhBS4fNu2bdqyZYt9NEKScnNzlZWVpcuXL8vf37/A7erXry9PT0/7dKVKlbRr1y6na2/UqJH9/ytUqCBJatiwocO81NRUh22ioqIc6oqJidGlS5d09OhRpaamKisrS3FxcQ7bXLlyRU2aNHGYFx0dfcvaMjMzJV0bRbnRsGHDtGTJEk2dOlXLli1TuXLl8q3j5+eny5cv33IfAK4hqAD3sL179yoyMrLAZX5+frfc1mazKTExUV26dMm3rKA36Dze3t4O0xaLxeHpI4vFIsMwHNa5/h6WgtrJC1s3zivsY77Xr7t06VJVrlzZYfmNNxiXKlXqlu2VLVtWFotF586dy7csNTVV+/btk6enp/bv36927drlW+fs2bMqX758oWoHSjqCCnCPWrNmjXbt2qVXXnmlwOWNGjXSzJkzdfbs2QJHVZo2bap9+/apZs2aLq2rfPnyOnHihH16//79LhtdSElJUWZmpj2Ebd68WQEBAapSpYrKlCkjq9WqI0eOONyPcid8fHxUr1497dmzJ9/nqLzwwgtq0KCBBgwYoH79+ik2Nlb16tWzL8/KytKvv/6abxQHQMEIKsA9IDs7WydPnlRubq5OnTql5cuXKykpSR06dFCvXr0K3KZbt25666239NRTTykpKUmVKlXSjh07FBYWppiYGI0cOVIdOnRQeHi4nnnmGXl4eGjnzp3atWuXxowZc8e1Pvroo3r33Xf18MMPy2az6bXXXss3CnOnrly5on79+umNN97Q4cOHNWrUKL388svy8PBQYGCghg8frldeeUU2m02PPPKI0tPTtXHjRgUEBKh3795O7att27b67rvv9Je//MU+77333tOmTZu0c+dOhYeHa9myZerRo4e+//57+fj4SLoWnqxWq2JiYlzyOwP3Oh5PBu4By5cvV6VKlVStWjW1a9dOycnJeuedd7RkyRKH+0Wu5+Pjo2+//VahoaGKj49Xw4YNNXbsWPv6bdu21TfffKOVK1fqgQce0MMPP6zJkycrIiLirmqdNGmSwsPD1bJlS3Xv3l3Dhw+/6f0uzoqNjVWtWrXUsmVLPfvss+rYsaMSEhLsy0ePHq2RI0cqKSlJdevWVdu2bfX111/f9PLYrQwYMED/+c9/dOHCBUnSTz/9pL/+9a96//33FR4eLulacDl//rzDh8LNnz9fPXr0cNnvDNzrLMaNF4sBAIXy7LPPqkmTJnr99dcLtf7p06d13333aevWrXcUjoCSiBEVALhDEyZMUEBAQKHXP3jwoN5//31CCuAERlQAAIBpMaICAABMi6ACAABMi6ACAABMi6ACAABMi6ACAABMi6ACAABMi6ACAABMi6ACAABMi6ACAABM6/8DwgXJesyA1dgAAAAASUVORK5CYII=\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "plt.xlabel('Dice number (x)')\n", - "plt.ylabel('Frequency (y)')\n", - "plt.title('Frequency distribution - Dice Rolls ')\n", - "\n", - "plt.yticks(range(min(sorted_rolls), max(sorted_rolls) + 1))\n", - "plt.xticks(range(min(sorted_rolls), max(sorted_rolls) + 1))\n", - "\n", - "sorted_rolls.hist(bins=6, edgecolor='black')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# What is the relation between this plot and the plot above? \n", - "\n", - "# We can see that the median is the same on both graphs (5)\n", - "# Negatively skewed\n", - "# Also they show the same percentiles (develop here)\n", - "\n", - "#Frequency distribution graph is \"easier to read\" and should be used for data presentation to the stakeholders." - ] - }, - { - "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": 95, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "4.6\n" - ] - } - ], - "source": [ - "# your code here\n", - "def calculate_mean(data):\n", - " mean = sum(data)/len(data)\n", - " return mean\n", - "\n", - "print(calculate_mean(dice_rolls))" - ] - }, - { - "cell_type": "code", - "execution_count": 96, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "4.6\n" - ] - } - ], - "source": [ - "#Other method\n", - "\n", - "def mean(data):\n", - " \n", - " total_sum = 0\n", - " len_data = 0\n", - " \n", - " for value in data:\n", - " total_sum += value\n", - " len_data += 1\n", - "\n", - " mean = total_sum / len_data\n", - "\n", - " return mean\n", - "\n", - "print(mean(dice_rolls))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### 2.- First, calculate the frequency distribution. Then, calculate the mean using the values of the frequency distribution you've just computed. You are not allowed to use any methods or functions that directly calculate the mean value. " - ] - }, - { - "cell_type": "code", - "execution_count": 97, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " Dice number Frequency\n", - "0 2 1\n", - "1 3 1\n", - "2 4 1\n", - "3 5 5\n", - "4 6 2\n", - "Mean is 2.0\n" - ] - } - ], - "source": [ - "# your code here\n", - "frequency_distribution = dice_df.value_counts().sort_index().reset_index() #chaining method\n", - "frequency_distribution.columns = ['Dice number', 'Frequency']\n", - "print(frequency_distribution)\n", - "\n", - "#Calculate mean by calling function\n", - "mean_frequency_distribution = mean(frequency_distribution['Frequency']) \n", - "print(f'Mean is {mean_frequency_distribution}')\n", - "\n", - "# Why the result is not the same as when we calculate the mean ?" - ] - }, - { - "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": 98, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[2, 3, 4, 5, 5, 5, 5, 5, 6, 6]\n", - "10\n", - "Median is 5.0\n" - ] - } - ], - "source": [ - "# Method without function\n", - "\n", - "# your code here\n", - "\n", - "#Convert values into list to calculate the median\n", - "values_list = sorted_rolls.to_list()\n", - "print(values_list)\n", - "\n", - "print(len(values_list)) #Median = value in the middle \n", - "#If even number, we take the two elements in the list divided by 2\n", - "\n", - "median = (values_list[4] + values_list[5])/2\n", - "print(f'Median is {median}')" - ] - }, - { - "cell_type": "code", - "execution_count": 99, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Median is 5.0\n" - ] - } - ], - "source": [ - "#With function\n", - "\n", - "def median(lst):\n", - " sortedlst = sorted(lst)\n", - " lstlen = len(lst)\n", - " index = (lstlen - 1) // 2\n", - " \n", - " if (lstlen % 2):\n", - " return sortedlst[index] #if total list values is even \n", - " else:\n", - " return (sortedlst[index] + sortedlst[index + 1])/2.0 #if total list values is odd\n", - "\n", - "#values_list = [2, 2, 2, 4, 4, 4, 4, 5, 6, 6]\n", - "calculate_median = median(values_list)\n", - "print(f'Median is {calculate_median}')" - ] - }, - { - "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": 100, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "the first quartile is 4.25\n", - "the second quartile is 5.0\n", - "the third quartile is 5.0\n", - "the fourth quartile is 6\n" - ] - } - ], - "source": [ - "#Comparing with results given by quantile formula\n", - "\n", - "q1 = np.quantile(values_list, 0.25) \n", - "print(\"the first quartile is\", q1)\n", - "q2 = np.quantile(values_list, 0.50)\n", - "print(\"the second quartile is\",q2)\n", - "q3 = np.quantile(values_list, 0.75)\n", - "print(\"the third quartile is\", q3)\n", - "q4 = np.quantile(values_list, 1)\n", - "print(\"the fourth quartile is\", q4)" - ] - }, - { - "cell_type": "code", - "execution_count": 101, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Q1: 4.00, Q2: 5.0, Q3: 5.00, Q4: 6.00\n" - ] - } - ], - "source": [ - "# Find quartiles \n", - "\n", - "def quartiles(lst):\n", - " sortedlst = sorted(lst)\n", - " lstlen = len(lst)\n", - " \n", - " middle = len(lst)//2\n", - "\n", - "# lower quartile\n", - " q1_lower_quartile = median(lst[:middle])\n", - "\n", - "# median\n", - " q2 = median(lst)\n", - "\n", - "# upper quartile\n", - " q3_upper_quartile = median(lst[middle:])\n", - " \n", - " return q1_lower_quartile, q2, q3_upper_quartile\n", - "\n", - "#fourth quartile =max value\n", - " q4 = max(lst)\n", - " \n", - "\n", - "q1_lower_quartile, q2, q3_upper_quartile = quartiles(values_list)\n", - "print(f'Q1: {q1_lower_quartile:.2f}, Q2: {q2}, Q3: {q3_upper_quartile:.2f}, Q4: {q4:.2f}')" - ] - }, - { - "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": 138, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Unnamed: 0rollvalue
0001
1112
2226
3331
4446
5555
6662
7772
8884
9991
\n", - "
" - ], - "text/plain": [ - " Unnamed: 0 roll value\n", - "0 0 0 1\n", - "1 1 1 2\n", - "2 2 2 6\n", - "3 3 3 1\n", - "4 4 4 6\n", - "5 5 5 5\n", - "6 6 6 2\n", - "7 7 7 2\n", - "8 8 8 4\n", - "9 9 9 1" - ] - }, - "execution_count": 138, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# your code here\n", - "roll_dice_df = pd.read_csv('/Users/amandine/Desktop/Ironhack/03_Week/Descriptive-Stats/data/roll_the_dice_hundred.csv')\n", - "roll_dice_df.head(10)" - ] - }, - { - "cell_type": "code", - "execution_count": 84, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'whiskers': [,\n", - " ],\n", - " 'caps': [,\n", - " ],\n", - " 'boxes': [],\n", - " 'medians': [],\n", - " 'fliers': [],\n", - " 'means': []}" - ] - }, - "execution_count": 84, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAhYAAAGdCAYAAABO2DpVAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAAASE0lEQVR4nO3dX2yVd/3A8c9hZGft1naCklE5rP4ZthuyCVt0P4wZ/k1/jrgLvTBUiYmLf5pNbYxmu3GNc9U7TUjIZpbtAifGGHCJgagX0BitQpFkme0AhYjiZpZoTyl4ko3zu/jFZnXU7Wk/p4cDr1fSkOfp8+dzd958z9NzSvV6vR4AAAmWNXsAAODyISwAgDTCAgBIIywAgDTCAgBIIywAgDTCAgBIIywAgDTLl/qGFy5ciDNnzkRHR0eUSqWlvj0AsAD1ej2mp6eju7s7li2bf11iycPizJkzUalUlvq2AECC06dPx5o1a+b9/ZKHRUdHR0T8/2CdnZ1LfXsAYAGq1WpUKpXZ1/H5LHlY/Pvtj87OTmEBAC3mtR5j8PAmAJBGWAAAaYQFAJBGWAAAaYQFAJBGWAAAaYQFAJBGWAAAaYQFAJCmcFj89a9/jYGBgVi5cmW0t7fHbbfdFuPj442YDQBoMYU+0vsf//hHbN68ObZs2RL79u2LVatWxR//+Me4/vrrGzQeANBKCoXFd77znahUKvHEE0/M7uvp6cmeCQBoUYXC4umnn46PfOQj8YlPfCIOHjwYb37zm+OLX/xi3HvvvfOeU6vVolarzW5Xq9WFTwukO3fuXExOTqZc6/z583Hq1Kno6emJtra2RV+vt7c32tvbEyYDlkqhsPjTn/4UO3fujKGhoXjwwQfjd7/7Xdx///1RLpfj05/+9EXPGRkZieHh4ZRhgXyTk5OxadOmZo9xUePj47Fx48ZmjwEUUKrX6/XXe/DVV18dt99+e/z617+e3Xf//ffHoUOH4je/+c1Fz7nYikWlUompqSlfmw6XgMwVi4mJiRgYGIhdu3ZFX1/foq9nxQIuHdVqNbq6ul7z9bvQisXq1avj5ptvnrOvr68vfvKTn8x7TrlcjnK5XOQ2wBJqb29PXxXo6+uz0gBXqEJ/brp58+Z47rnn5uw7duxY3HjjjalDAQCtqVBYfOUrX4mxsbF45JFH4sSJE/HUU0/FY489FoODg42aDwBoIYXC4o477og9e/bED3/4w1i/fn1885vfjO9+97uxbdu2Rs0HALSQQs9YRETcfffdcffddzdiFgCgxfmuEAAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgjbAAANIICwAgTaGweOihh6JUKs35ueGGGxo1GwDQYpYXPeGWW26JX/7yl7PbV111VepAAEDrKhwWy5cvt0oBAFxU4bA4fvx4dHd3R7lcjne/+93xyCOPxFvf+tZ5j6/ValGr1Wa3q9XqwiYF5jh+/HhMT083e4w5JiYm5vx7qejo6Iibbrqp2WPAFaFUr9frr/fgffv2xblz52LdunXxwgsvxMMPPxyTk5Px7LPPxsqVKy96zkMPPRTDw8Ov2j81NRWdnZ0LnxyuYMePH49169Y1e4yWcuzYMXEBi1CtVqOrq+s1X78LhcV/mpmZibe97W3xta99LYaGhi56zMVWLCqVirCARThy5Ehs2rQpdu3aFX19fc0eZ9b58+fj1KlT0dPTE21tbc0eJyL+f/VkYGAgxsfHY+PGjc0eB1rW6w2Lwm+FvNK1114b73znO+P48ePzHlMul6NcLi/mNsA8+vr6LrkXy82bNzd7BKCJFvU5FrVaLSYmJmL16tVZ8wAALaxQWHz1q1+NgwcPxsmTJ+O3v/1tfPzjH49qtRrbt29v1HwAQAsp9FbIX/7yl/jkJz8ZL774YrzpTW+K97znPTE2NhY33nhjo+YDAFpIobDYvXt3o+YAAC4DvisEAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANIsKi5GRkSiVSvHlL385aRwAoJUtOCwOHToUjz32WGzYsCFzHgCghS0oLM6ePRvbtm2L73//+/GGN7wheyYAoEUtX8hJg4OD8dGPfjQ++MEPxsMPP/xfj63ValGr1Wa3q9XqQm4JvELppX/Fu25YFm3/PBZxxqNS/03bP4/Fu25YFqWX/tXsUeCKUDgsdu/eHUeOHIlDhw69ruNHRkZieHi48GDA/K45++c48rnrIkY/FzHa7GkubX0RceRz18XE2T9HxP80exy47BUKi9OnT8eXvvSl+PnPfx7XXHPN6zrngQceiKGhodntarUalUql2JTAHP+6bm1sfPRs/OAHP4i+3t5mj3NJm5icjG3btsXj/7u22aPAFaFQWIyPj8ff//732LRp0+y+l19+OUZHR2PHjh1Rq9XiqquumnNOuVyOcrmcMy0QERH15dfE75+/EOevXxfRfVuzx7mknX/+Qvz++QtRX/76/jMELE6hsPjABz4QzzzzzJx9n/nMZ6K3tze+/vWvvyoqAIArS6Gw6OjoiPXr18/Zd+2118bKlStftR8AuPJ4nBwASLOgPzd9pQMHDiSMAQBcDqxYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkEZYAABphAUAkKZQWOzcuTM2bNgQnZ2d0dnZGXfeeWfs27evUbMBAC2mUFisWbMmvv3tb8fhw4fj8OHD8f73vz8+9rGPxbPPPtuo+QCAFrK8yMFbt26ds/2tb30rdu7cGWNjY3HLLbekDgYAtJ5CYfFKL7/8cvz4xz+OmZmZuPPOO+c9rlarRa1Wm92uVqsLvSUAcIkr/PDmM888E9ddd12Uy+X4/Oc/H3v27Imbb7553uNHRkaiq6tr9qdSqSxqYADg0lU4LN7xjnfE0aNHY2xsLL7whS/E9u3b4w9/+MO8xz/wwAMxNTU1+3P69OlFDQwAXLoKvxVy9dVXx9vf/vaIiLj99tvj0KFD8b3vfS8effTRix5fLpejXC4vbkoAoCUs+nMs6vX6nGcoAIArV6EViwcffDD6+/ujUqnE9PR07N69Ow4cOBD79+9v1HwAQAspFBYvvPBCfOpTn4q//e1v0dXVFRs2bIj9+/fHhz70oUbNBwC0kEJh8fjjjzdqDgDgMuC7QgCANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEgjLACANMICAEhTKCxGRkbijjvuiI6Ojli1alXcc8898dxzzzVqNgCgxRQKi4MHD8bg4GCMjY3FL37xi3jppZfiwx/+cMzMzDRqPgCghSwvcvD+/fvnbD/xxBOxatWqGB8fj/e9732pgwEAradQWPynqampiIhYsWLFvMfUarWo1Wqz29VqdTG3BCLi3LlzERFx5MiRJk8y1/nz5+PUqVPR09MTbW1tzR4nIiImJiaaPQJcURYcFvV6PYaGhuK9731vrF+/ft7jRkZGYnh4eKG3AS5icnIyIiLuvffeJk/SOjo6Opo9AlwRSvV6vb6QEwcHB+NnP/tZ/OpXv4o1a9bMe9zFViwqlUpMTU1FZ2fnQm4NV7wXX3wx9u7dG729vdHe3t7scWZNTEzEwMBA7Nq1K/r6+po9zqyOjo646aabmj0GtLRqtRpdXV2v+fq9oBWL++67L55++ukYHR39r1EREVEul6NcLi/kNsA83vjGN8ZnP/vZZo8xr76+vti4cWOzxwCaoFBY1Ov1uO+++2LPnj1x4MCBeMtb3tKouQCAFlQoLAYHB+Opp56Kn/70p9HR0RHPP/98RER0dXVdMg9qAQDNU+hzLHbu3BlTU1Nx1113xerVq2d/fvSjHzVqPgCghRR+KwQAYD6+KwQASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0wgIASCMsAIA0hcNidHQ0tm7dGt3d3VEqlWLv3r0NGAsAaEWFw2JmZiZuvfXW2LFjRyPmAQBa2PKiJ/T390d/f38jZgEAWlzhsCiqVqtFrVab3a5Wq42+JVDAuXPnYnJyMuVaExMTc/5drN7e3mhvb0+5FrA0Gh4WIyMjMTw83OjbAAs0OTkZmzZtSr3mwMBAynXGx8dj48aNKdcClkapXq/XF3xyqRR79uyJe+65Z95jLrZiUalUYmpqKjo7Oxd6ayBJ5orF+fPn49SpU9HT0xNtbW2Lvp4VC7h0VKvV6Orqes3X74avWJTL5SiXy42+DbBA7e3tqasCmzdvTrsW0Hp8jgUAkKbwisXZs2fjxIkTs9snT56Mo0ePxooVK2Lt2rWpwwEAraVwWBw+fDi2bNkyuz00NBQREdu3b48nn3wybTAAoPUUDou77rorFvG8JwBwGfOMBQCQRlgAAGmEBQCQRlgAAGmEBQCQRlgAAGmEBQCQRlgAAGmEBQCQpuHfbvqf/v2pndVqdalvDQAs0L9ft1/r07eXPCymp6cjIqJSqSz1rQGARZqeno6urq55f1+qL/EXf1y4cCHOnDkTHR0dUSqVlvLWQINVq9WoVCpx+vTp6OzsbPY4QKJ6vR7T09PR3d0dy5bN/yTFkocFcPmqVqvR1dUVU1NTwgKuUB7eBADSCAsAII2wANKUy+X4xje+EeVyudmjAE3iGQsAII0VCwAgjbAAANIICwAgjbAAANIIC2DRRkdHY+vWrdHd3R2lUin27t3b7JGAJhEWwKLNzMzErbfeGjt27Gj2KECTLfmXkAGXn/7+/ujv72/2GMAlwIoFAJBGWAAAaYQFAJBGWAAAaYQFAJDGX4UAi3b27Nk4ceLE7PbJkyfj6NGjsWLFili7dm0TJwOWmm83BRbtwIEDsWXLllft3759ezz55JNLPxDQNMICAEjjGQsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADSCAsAII2wAADS/B9nJH8/99x/+QAAAABJRU5ErkJggg==\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# your code here\n", - "sorted_rolls = roll_dice_df['value'].sort_values()\n", - "\n", - "plt.boxplot(sorted_rolls)" - ] - }, - { - "cell_type": "code", - "execution_count": 105, - "metadata": {}, - "outputs": [], - "source": [ - "\n", - "#Perfect normal distribution\n", - "\n", - "#IQR (to develop)\n", - "\n", - "#Mean : around 50\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": 106, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "3.74\n" - ] - } - ], - "source": [ - "# your code here\n", - "roll_dice_df['value'] = pd.to_numeric(roll_dice_df['value']) #convert str into numerical values\n", - "\n", - "mean_hundred_dice_rolls = calculate_mean(roll_dice_df['value'])\n", - "print(mean_hundred_dice_rolls)" - ] - }, - { - "cell_type": "code", - "execution_count": 107, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "3.74\n" - ] - } - ], - "source": [ - "#Check if value with np.mean is the same :\n", - "\n", - "average = np.mean(roll_dice_df['value'])\n", - "print(average)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### 3.- Now, calculate the frequency distribution.\n" - ] - }, - { - "cell_type": "code", - "execution_count": 141, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " Dice Number Frequency\n", - "0 1 12\n", - "1 2 17\n", - "2 3 14\n", - "3 4 22\n", - "4 5 12\n", - "5 6 23\n" - ] - } - ], - "source": [ - "# your code here\n", - "frequency_distribution = roll_dice_df['value'].value_counts().sort_index().reset_index()\n", - "\n", - "frequency_distribution.columns = ['Dice Number', 'Frequency']\n", - "\n", - "print(frequency_distribution)" - ] - }, - { - "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": 146, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjMAAAHFCAYAAAAHcXhbAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAABAuUlEQVR4nO3deXgO9/7/8dct5M4iQhBJKgmtrZamVWotUqSCoJZWSwWnPV1QpSvntPhVBT2cnjaHbiScFq1TYmkpLUmqpYdqSlFLGwSxtDSRqCCZ3x+9cn97yyK5Re57kufjuua6OjOfmXnfc0/cr858ZsZiGIYhAAAAk6ri7AIAAACuB2EGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGAACYGmEGLi0+Pl4Wi8U2eHh4KCAgQOHh4YqJidHp06cLLDN16lRZLJZyrfPw4cN2dVapUkW1atVS9+7dtWHDhutaZ3x8vG1a/v44fPjwddc8cuRIu5r/PKxdu/a614//c/W+9vb2VoMGDdSvXz/FxcUpJyenwDLdunVTt27dSrWdvXv3aurUqaU+Pq7eVv6x949//KNU67mWGTNmKCEhocD0xMREWSwWJSYmlun2UHlUdXYBQEnExcWpWbNmunz5sk6fPq0tW7Zo1qxZ+sc//qEPP/xQPXr0sLV95JFH1KtXL6fUOW7cOD300EPKzc3Vjz/+qGnTpql3797atGmTunTp4pSaiuPp6alNmzYVmN6sWTMnVFOx/Xlf//7770pLS9O6dev06KOPas6cOVq/fr3q169vaz9v3rxSb2Pv3r2aNm2aunXrpgYNGpR4OUe25YgZM2Zo8ODBGjBggN301q1ba+vWrWrevHm51IGKhzADU2jZsqXatGljGx80aJAmTJigzp07a+DAgTp48KDq1asnSapfv77dj0J5CgkJUfv27SVJnTp1UuPGjdW1a1ctWLDAJcNMlSpVbPWWxIULF+Tl5XUDK6q4CtvXI0aM0KhRo9S3b18NHjxY27Zts80rjx/2/O/T2SGiRo0apToOgatxmQmmFRISojlz5uj8+fN6++23bdOLusy0ZMkSdejQQdWrV1f16tV1++23a8GCBXZtPv/8c3Xv3l01atSQl5eXOnXqpC+++MLhGvMD2KlTp+ym//DDD+rfv79q1aolDw8P3X777Vq0aJFD2/juu+/Ut29f+fv7y2q1KigoSH369NGxY8ccrlv6v/24c+dODR48WLVq1dItt9wiSTIMQ/PmzdPtt98uT09P1apVS4MHD9bPP/9stw7DMDR79myFhobKw8NDrVu31rp16wpc1ijq8llRlx9K8j3l179nzx49+OCD8vX1Vb169TR69GhlZGTYtc3Ly9Obb75p+zw1a9ZU+/bttXr1aknSX/7yF/n5+enChQsF9tM999yjFi1alGbX2omIiNCjjz6qb775RsnJybbphV1mmj9/vsLCwlS9enX5+PioWbNmmjx5sqQ/9uGQIUMkSeHh4bZLWvmXKbt166aWLVsqOTlZHTt2lJeXl0aPHl3ktvL3y6uvvqqQkBB5eHioTZs2BfbzyJEjCz0LdPXfocViUXZ2thYtWmSrLX+bRX3Pq1evVocOHeTl5SUfHx/17NlTW7duLXQ7JfmeUXERZmBqvXv3lpubm92PQGFefvllDRs2TEFBQYqPj9fKlSsVHR2tI0eO2Nq8//77ioiIUI0aNbRo0SJ99NFH8vPz07333utwoElNTZUkNWnSxDZt//796tixo/bs2aM33nhDK1asUPPmzTVy5EjNnj27VOvPzs5Wz549derUKf373//Wxo0b9frrryskJETnz58v0TquXLliN+Tm5trNHzhwoBo1aqTly5frrbfekiQ99thjevrpp9WjRw8lJCRo3rx52rNnjzp27GgX3KZNm6YXXnhBPXv2VEJCgp544gk9+uij2r9/f6k+55+V9nsaNGiQmjRpoo8//lgvvviilixZogkTJti1GTlypMaPH6+2bdvqww8/1LJly9SvXz9buBo/frzOnTunJUuW2C23d+9ebd68WWPGjHH480hSv379JKnY43jZsmV68skn1bVrV61cuVIJCQmaMGGCsrOzJUl9+vTRjBkzJEn//ve/tXXrVm3dulV9+vSxrSM9PV3Dhw/XQw89pE8//VRPPvlksXXFxsZq/fr1ev311/X++++rSpUqioyMLBAoSmLr1q3y9PRU7969bbUVd3lryZIl6t+/v2rUqKGlS5dqwYIFOnfunLp166YtW7YUaF+S7xkVmAG4sLi4OEOSsX379iLb1KtXz7j11ltt41OmTDH+fGj//PPPhpubmzFs2LAi15GdnW34+fkZUVFRdtNzc3ONsLAw46677iq2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pUsXeXt7Kz09XVu2bFGrVq30xBNPqFatWnr22Wc1ffp0PfLIIxoyZIjS0tI0derUApcv2rZtq6ZNm+rZZ5/VlStXVKtWLa1cubLAXSs34nu6++679fDDD2v69Ok6deqU+vbtK6vVqu+++05eXl4aN26crW3NmjU1YsQIzZ8/X6GhoYqKiirxdvLy8mzPkcnJydHRo0e1bt06ffTRR7r11lv10UcfFbv8o48+Kk9PT3Xq1EmBgYE6efKkYmJi5Ovrq7Zt20r643lMkvTOO+/Ix8dHHh4eatiwYYFLMCXl5uamnj17auLEicrLy9OsWbOUmZmpadOm2do88MADevnllzV06FA999xzunjxot54441C+9S0atVKiYmJWrNmjQIDA+Xj41Poma0qVapo9uzZGjZsmPr27avHHntMOTk5eu211/Tbb79p5syZDn0eVGBO7HwMXFP+XS75g7u7u+Hv72907drVmDFjhnH69OkCyxR2F4VhGMbixYuNtm3bGh4eHkb16tWNO+64w+5OIcMwjKSkJKNPnz6Gn5+fUa1aNeOmm24y+vTpYyxfvrzYOvPv/njttdcKnT9kyBCjatWqxqFDhwzDMIzdu3cbUVFRhq+vr+Hu7m6EhYUVqKUkdzP9+OOPxoMPPmjccssthqenp+Hr62vcddddRnx8fLH1Gsa177DJ349nzpwpdP7ChQuNdu3aGd7e3oanp6dxyy23GCNGjDB27Nhha5OXl2fExMQYwcHBhru7u3HbbbcZa9asKXD3jGEYxoEDB4yIiAijRo0aRt26dY1x48YZn3zySaF355Tkeyqq/sLunMrNzTX++c9/Gi1btjTc3d0NX19fo0OHDsaaNWsKfO7ExERDkjFz5swi993Vrr5zzNPT0wgJCTGioqKMhQsXGjk5OQWWuXofLVq0yAgPDzfq1atnuLu7G0FBQcb9999v7Nq1y265119/3WjYsKHh5uZmd/x07drVaNGiRaH1FXU306xZs4xp06YZ9evXN9zd3Y077rjD+Oyzzwos/+mnnxq333674enpadx8881GbGxsoX+HKSkpRqdOnQwvLy+7O9quvpspX0JCgtGuXTvDw8PD8Pb2Nrp372589dVXdm1K8z2j4rIYRgm60QNAGfrzw9LM5plnntH8+fOVlpbm8BkPAGWLy0wAUALbtm3TgQMHNG/ePD322GME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W6fs7OwyLQgAAKA0HOoAnO/qcAMAAFDeShVmLBZLgT4x9JEBAADOVKo+M4ZhaOTIkbaXSV68eFGPP/54gbuZVqxYUXYVAgAAFKNUYSY6OtpufPjw4WVaDAAAQGmVKszExcXdqDoAAAAccl0dgAEAAJyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyNMAMAAEyN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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "plt.bar(frequency_distribution['Dice Number'], frequency_distribution['Frequency'], color='blue')\n", - "\n", - "plt.ylabel('Frequency')\n", - "plt.xlabel('Dice Number')\n", - "plt.title('Dice Rolls Frequency Distribution')\n", - "\n", - "plt.yticks(range(min(frequency_distribution['Frequency']), max(frequency_distribution['Frequency']) + 1))\n", - "plt.xticks(range(min(frequency_distribution['Dice Number']), max(frequency_distribution['Dice Number']) + 1))\n", - "\n", - "plt.show()" - ] - }, - { - "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": 111, - "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", - "
Unnamed: 0rollvalue
0005
1116
2221
\n", - "
" - ], - "text/plain": [ - " Unnamed: 0 roll value\n", - "0 0 0 5\n", - "1 1 1 6\n", - "2 2 2 1" - ] - }, - "execution_count": 111, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# your code here\n", - "roll_the_dice_thousand_df = pd.read_csv('/Users/amandine/Desktop/Ironhack/03_Week/Descriptive-Stats/data/roll_the_dice_thousand.csv')\n", - "roll_the_dice_thousand_df.head(3)" - ] - }, - { - "cell_type": "code", - "execution_count": 120, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " index value\n", - "0 1 175\n", - "1 2 167\n", - "2 3 175\n", - "3 4 168\n", - "4 5 149\n", - "5 6 166\n" - ] - } - ], - "source": [ - "frequency_distribution = roll_the_dice_thousand_df['value'].value_counts().sort_index().reset_index()\n", - "print(frequency_distribution)" - ] - }, - { - "cell_type": "code", - "execution_count": 121, - "metadata": {}, - "outputs": [ - { - "ename": "ValueError", - "evalue": "weights should have the same shape as x", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[121], line 3\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[38;5;66;03m#bins = frequency_distribution_2.index.to_list()\u001b[39;00m\n\u001b[0;32m----> 3\u001b[0m \u001b[43mplt\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mhist\u001b[49m\u001b[43m(\u001b[49m\u001b[43mfrequency_distribution\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mindex\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mbins\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m7\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mweights\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mfrequency_distribution\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mvalues\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 4\u001b[0m plt\u001b[38;5;241m.\u001b[39mxlabel(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mDice Values\u001b[39m\u001b[38;5;124m'\u001b[39m)\n\u001b[1;32m 5\u001b[0m plt\u001b[38;5;241m.\u001b[39mylabel(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mFrequency\u001b[39m\u001b[38;5;124m'\u001b[39m)\n", - "File \u001b[0;32m~/anaconda3/lib/python3.10/site-packages/matplotlib/pyplot.py:2618\u001b[0m, in \u001b[0;36mhist\u001b[0;34m(x, bins, range, density, weights, cumulative, bottom, histtype, align, orientation, rwidth, log, color, label, stacked, data, **kwargs)\u001b[0m\n\u001b[1;32m 2612\u001b[0m \u001b[38;5;129m@_copy_docstring_and_deprecators\u001b[39m(Axes\u001b[38;5;241m.\u001b[39mhist)\n\u001b[1;32m 2613\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mhist\u001b[39m(\n\u001b[1;32m 2614\u001b[0m x, bins\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, \u001b[38;5;28mrange\u001b[39m\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, density\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m, weights\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m,\n\u001b[1;32m 2615\u001b[0m cumulative\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m, bottom\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, histtype\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mbar\u001b[39m\u001b[38;5;124m'\u001b[39m, align\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mmid\u001b[39m\u001b[38;5;124m'\u001b[39m,\n\u001b[1;32m 2616\u001b[0m orientation\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mvertical\u001b[39m\u001b[38;5;124m'\u001b[39m, rwidth\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, log\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m, color\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m,\n\u001b[1;32m 2617\u001b[0m label\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, stacked\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mFalse\u001b[39;00m, \u001b[38;5;241m*\u001b[39m, data\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs):\n\u001b[0;32m-> 2618\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mgca\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mhist\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 2619\u001b[0m \u001b[43m \u001b[49m\u001b[43mx\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mbins\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mbins\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mrange\u001b[39;49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mrange\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdensity\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdensity\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mweights\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mweights\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 2620\u001b[0m \u001b[43m \u001b[49m\u001b[43mcumulative\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mcumulative\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mbottom\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mbottom\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mhisttype\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mhisttype\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 2621\u001b[0m \u001b[43m \u001b[49m\u001b[43malign\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43malign\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43morientation\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43morientation\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mrwidth\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mrwidth\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mlog\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mlog\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 2622\u001b[0m \u001b[43m \u001b[49m\u001b[43mcolor\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mcolor\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mlabel\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mlabel\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mstacked\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mstacked\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 2623\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43m{\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mdata\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mdata\u001b[49m\u001b[43m}\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mif\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mdata\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01mis\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;129;43;01mnot\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43;01melse\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43m{\u001b[49m\u001b[43m}\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/anaconda3/lib/python3.10/site-packages/matplotlib/__init__.py:1442\u001b[0m, in \u001b[0;36m_preprocess_data..inner\u001b[0;34m(ax, data, *args, **kwargs)\u001b[0m\n\u001b[1;32m 1439\u001b[0m \u001b[38;5;129m@functools\u001b[39m\u001b[38;5;241m.\u001b[39mwraps(func)\n\u001b[1;32m 1440\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21minner\u001b[39m(ax, \u001b[38;5;241m*\u001b[39margs, data\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs):\n\u001b[1;32m 1441\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m data \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m-> 1442\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mfunc\u001b[49m\u001b[43m(\u001b[49m\u001b[43max\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;28;43mmap\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43msanitize_sequence\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43margs\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1444\u001b[0m bound \u001b[38;5;241m=\u001b[39m new_sig\u001b[38;5;241m.\u001b[39mbind(ax, \u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n\u001b[1;32m 1445\u001b[0m auto_label \u001b[38;5;241m=\u001b[39m (bound\u001b[38;5;241m.\u001b[39marguments\u001b[38;5;241m.\u001b[39mget(label_namer)\n\u001b[1;32m 1446\u001b[0m \u001b[38;5;129;01mor\u001b[39;00m bound\u001b[38;5;241m.\u001b[39mkwargs\u001b[38;5;241m.\u001b[39mget(label_namer))\n", - "File \u001b[0;32m~/anaconda3/lib/python3.10/site-packages/matplotlib/axes/_axes.py:6731\u001b[0m, in \u001b[0;36mAxes.hist\u001b[0;34m(self, x, bins, range, density, weights, cumulative, bottom, histtype, align, orientation, rwidth, log, color, label, stacked, **kwargs)\u001b[0m\n\u001b[1;32m 6728\u001b[0m w \u001b[38;5;241m=\u001b[39m [\u001b[38;5;28;01mNone\u001b[39;00m] \u001b[38;5;241m*\u001b[39m nx\n\u001b[1;32m 6730\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mlen\u001b[39m(w) \u001b[38;5;241m!=\u001b[39m nx:\n\u001b[0;32m-> 6731\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mweights should have the same shape as x\u001b[39m\u001b[38;5;124m'\u001b[39m)\n\u001b[1;32m 6733\u001b[0m input_empty \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mTrue\u001b[39;00m\n\u001b[1;32m 6734\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m xi, wi \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mzip\u001b[39m(x, w):\n", - "\u001b[0;31mValueError\u001b[0m: weights should have the same shape as x" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAi4AAAGiCAYAAADA0E3hAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAcu0lEQVR4nO3db2yV5f348U9paaturRG0FkEEpxMl6mgDo6wandag0ZBskcVF1GliszmETqeMRYYxaXTRfXUKbgoaE3REReeDztEHG1Zxf2DFGCFxEWZBW0kxtqhbGXD/Hhj6W9fiOLV/uNrXK7kfnMv7Puc6uazn7X2fP3lZlmUBAJCAMcM9AQCAIyVcAIBkCBcAIBnCBQBIhnABAJIhXACAZAgXACAZwgUASIZwAQCSIVwAgGTkHC6vvPJKXHnllTFhwoTIy8uLF1988X8es2HDhqioqIji4uKYOnVqPProo/2ZKwAwyuUcLp988kmcd9558fDDDx/R/jt27IjLL788qquro7m5OX7yk5/EwoUL4/nnn895sgDA6Jb3RX5kMS8vL1544YWYN2/eYfe544474qWXXopt27Z1j9XW1sYbb7wRr7/+en8fGgAYhQoG+wFef/31qKmp6TF22WWXxapVq+Lf//53jB07ttcxXV1d0dXV1X374MGD8eGHH8a4ceMiLy9vsKcMAAyALMti7969MWHChBgzZmDeVjvo4dLW1hZlZWU9xsrKymL//v3R3t4e5eXlvY6pr6+P5cuXD/bUAIAhsHPnzpg4ceKA3Negh0tE9DpLcujq1OHOnixZsiTq6uq6b3d0dMSpp54aO3fujJKSksGbKAAwYDo7O2PSpEnx5S9/ecDuc9DD5eSTT462trYeY7t3746CgoIYN25cn8cUFRVFUVFRr/GSkhLhAgCJGci3eQz697jMnj07Ghsbe4ytX78+Kisr+3x/CwDA4eQcLh9//HFs2bIltmzZEhGffdx5y5Yt0dLSEhGfXeZZsGBB9/61tbXx7rvvRl1dXWzbti1Wr14dq1atittuu21gngEAMGrkfKlo06ZNcdFFF3XfPvRelOuuuy6efPLJaG1t7Y6YiIgpU6ZEQ0NDLF68OB555JGYMGFCPPTQQ/Gtb31rAKYPAIwmX+h7XIZKZ2dnlJaWRkdHh/e4AEAiBuP1228VAQDJEC4AQDKECwCQDOECACRDuAAAyRAuAEAyhAsAkAzhAgAkQ7gAAMkQLgBAMoQLAJAM4QIAJEO4AADJEC4AQDKECwCQDOECACRDuAAAyRAuAEAyhAsAkAzhAgAkQ7gAAMkQLgBAMoQLAJAM4QIAJEO4AADJEC4AQDKECwCQDOECACRDuAAAyRAuAEAyhAsAkAzhAgAkQ7gAAMkQLgBAMoQLAJAM4QIAJEO4AADJEC4AQDKECwCQDOECACRDuAAAyRAuAEAyhAsAkAzhAgAkQ7gAAMkQLgBAMoQLAJAM4QIAJEO4AADJEC4AQDKECwCQDOECACRDuAAAyRAuAEAyhAsAkAzhAgAkQ7gAAMkQLgBAMoQLAJAM4QIAJEO4AADJEC4AQDKECwCQjH6Fy4oVK2LKlClRXFwcFRUV0dTU9Ln7r1mzJs4777w49thjo7y8PG644YbYs2dPvyYMAIxeOYfL2rVrY9GiRbF06dJobm6O6urqmDt3brS0tPS5/6uvvhoLFiyIG2+8Md5666149tln469//WvcdNNNX3jyAMDoknO4PPDAA3HjjTfGTTfdFNOmTYv/+7//i0mTJsXKlSv73P9Pf/pTnHbaabFw4cKYMmVKfOMb34ibb745Nm3a9IUnDwCMLjmFy759+2Lz5s1RU1PTY7ympiY2btzY5zFVVVWxa9euaGhoiCzL4oMPPojnnnsurrjiisM+TldXV3R2dvbYAAByCpf29vY4cOBAlJWV9RgvKyuLtra2Po+pqqqKNWvWxPz586OwsDBOPvnkOP744+OXv/zlYR+nvr4+SktLu7dJkyblMk0AYITq15tz8/LyetzOsqzX2CFbt26NhQsXxl133RWbN2+Ol19+OXbs2BG1tbWHvf8lS5ZER0dH97Zz587+TBMAGGEKctl5/PjxkZ+f3+vsyu7du3udhTmkvr4+5syZE7fffntERJx77rlx3HHHRXV1ddxzzz1RXl7e65iioqIoKirKZWoAwCiQ0xmXwsLCqKioiMbGxh7jjY2NUVVV1ecxn376aYwZ0/Nh8vPzI+KzMzUAAEcq50tFdXV18fjjj8fq1atj27ZtsXjx4mhpaem+9LNkyZJYsGBB9/5XXnllrFu3LlauXBnbt2+P1157LRYuXBgzZ86MCRMmDNwzAQBGvJwuFUVEzJ8/P/bs2RN33313tLa2xvTp06OhoSEmT54cERGtra09vtPl+uuvj71798bDDz8cP/rRj+L444+Piy++OO69996BexYAwKiQlyVwvaazszNKS0ujo6MjSkpKhns6AMARGIzXb79VBAAkQ7gAAMkQLgBAMoQLAJAM4QIAJEO4AADJEC4AQDKECwCQDOECACRDuAAAyRAuAEAyhAsAkAzhAgAkQ7gAAMkQLgBAMoQLAJAM4QIAJEO4AADJEC4AQDKECwCQDOECACRDuAAAyRAuAEAyhAsAkAzhAgAkQ7gAAMkQLgBAMoQLAJAM4QIAJEO4AADJEC4AQDKECwCQDOECACRDuAAAyRAuAEAyhAsAkAzhAgAkQ7gAAMkQLgBAMoQLAJAM4QIAJEO4AADJEC4AQDKECwCQDOECACRDuAAAyRAuAEAyhAsAkAzhAgAkQ7gAAMkQLgBAMoQLAJAM4QIAJEO4AADJEC4AQDKECwCQDOECACRDuAAAyRAuAEAyhAsAkAzhAgAkQ7gAAMkQLgBAMvoVLitWrIgpU6ZEcXFxVFRURFNT0+fu39XVFUuXLo3JkydHUVFRnH766bF69ep+TRgAGL0Kcj1g7dq1sWjRolixYkXMmTMnfvWrX8XcuXNj69atceqpp/Z5zNVXXx0ffPBBrFq1Kr7yla/E7t27Y//+/V948gDA6JKXZVmWywGzZs2KGTNmxMqVK7vHpk2bFvPmzYv6+vpe+7/88svxne98J7Zv3x4nnHBCvybZ2dkZpaWl0dHRESUlJf26DwBgaA3G63dOl4r27dsXmzdvjpqamh7jNTU1sXHjxj6Peemll6KysjLuu+++OOWUU+LMM8+M2267Lf75z38e9nG6urqis7OzxwYAkNOlovb29jhw4ECUlZX1GC8rK4u2trY+j9m+fXu8+uqrUVxcHC+88EK0t7fH97///fjwww8P+z6X+vr6WL58eS5TAwBGgX69OTcvL6/H7SzLeo0dcvDgwcjLy4s1a9bEzJkz4/LLL48HHnggnnzyycOedVmyZEl0dHR0bzt37uzPNAGAESanMy7jx4+P/Pz8XmdXdu/e3esszCHl5eVxyimnRGlpaffYtGnTIsuy2LVrV5xxxhm9jikqKoqioqJcpgYAjAI5nXEpLCyMioqKaGxs7DHe2NgYVVVVfR4zZ86ceP/99+Pjjz/uHnv77bdjzJgxMXHixH5MGQAYrXK+VFRXVxePP/54rF69OrZt2xaLFy+OlpaWqK2tjYjPLvMsWLCge/9rrrkmxo0bFzfccENs3bo1Xnnllbj99tvje9/7XhxzzDED90wAgBEv5+9xmT9/fuzZsyfuvvvuaG1tjenTp0dDQ0NMnjw5IiJaW1ujpaWle/8vfelL0djYGD/84Q+jsrIyxo0bF1dffXXcc889A/csAIBRIefvcRkOvscFANIz7N/jAgAwnIQLAJAM4QIAJEO4AADJEC4AQDKECwCQDOECACRDuAAAyRAuAEAyhAsAkAzhAgAkQ7gAAMkQLgBAMoQLAJAM4QIAJEO4AADJEC4AQDKECwCQDOECACRDuAAAyRAuAEAyhAsAkAzhAgAkQ7gAAMkQLgBAMoQLAJAM4QIAJEO4AADJEC4AQDKECwCQDOECACRDuAAAyRAuAEAyhAsAkAzhAgAkQ7gAAMkQLgBAMoQLAJAM4QIAJEO4AADJEC4AQDKECwCQDOECACRDuAAAyRAuAEAyhAsAkAzhAgAkQ7gAAMkQLgBAMoQLAJAM4QIAJEO4AADJEC4AQDKECwCQDOECACRDuAAAyRAuAEAyhAsAkAzhAgAkQ7gAAMkQLgBAMoQLAJAM4QIAJKNf4bJixYqYMmVKFBcXR0VFRTQ1NR3Rca+99loUFBTE+eef35+HBQBGuZzDZe3atbFo0aJYunRpNDc3R3V1dcydOzdaWlo+97iOjo5YsGBBfPOb3+z3ZAGA0S0vy7IslwNmzZoVM2bMiJUrV3aPTZs2LebNmxf19fWHPe473/lOnHHGGZGfnx8vvvhibNmy5bD7dnV1RVdXV/ftzs7OmDRpUnR0dERJSUku0wUAhklnZ2eUlpYO6Ot3Tmdc9u3bF5s3b46ampoe4zU1NbFx48bDHvfEE0/EO++8E8uWLTuix6mvr4/S0tLubdKkSblMEwAYoXIKl/b29jhw4ECUlZX1GC8rK4u2trY+j/n73/8ed955Z6xZsyYKCgqO6HGWLFkSHR0d3dvOnTtzmSYAMEIdWUn8l7y8vB63syzrNRYRceDAgbjmmmti+fLlceaZZx7x/RcVFUVRUVF/pgYAjGA5hcv48eMjPz+/19mV3bt39zoLExGxd+/e2LRpUzQ3N8ctt9wSEREHDx6MLMuioKAg1q9fHxdffPEXmD4AMJrkdKmosLAwKioqorGxscd4Y2NjVFVV9dq/pKQk3nzzzdiyZUv3VltbG1/96ldjy5YtMWvWrC82ewBgVMn5UlFdXV1ce+21UVlZGbNnz45f//rX0dLSErW1tRHx2ftT3nvvvXjqqadizJgxMX369B7Hn3TSSVFcXNxrHADgf8k5XObPnx979uyJu+++O1pbW2P69OnR0NAQkydPjoiI1tbW//mdLgAA/ZHz97gMh8H4HDgAMLiG/XtcAACGk3ABAJIhXACAZAgXACAZwgUASIZwAQCSIVwAgGQIFwAgGcIFAEiGcAEAkiFcAIBkCBcAIBnCBQBIhnABAJIhXACAZAgXACAZwgUASIZwAQCSIVwAgGQIFwAgGcIFAEiGcAEAkiFcAIBkCBcAIBnCBQBIhnABAJIhXACAZAgXACAZwgUASIZwAQCSIVwAgGQIFwAgGcIFAEiGcAEAkiFcAIBkCBcAIBnCBQBIhnABAJIhXACAZAgXACAZwgUASIZwAQCSIVwAgGQIFwAgGcIFAEiGcAEAkiFcAIBkCBcAIBnCBQBIhnABAJIhXACAZAgXACAZwgUASIZwAQCSIVwAgGQIFwAgGcIFAEiGcAEAkiFcAIBkCBcAIBnCBQBIhnABAJIhXACAZPQrXFasWBFTpkyJ4uLiqKioiKampsPuu27durj00kvjxBNPjJKSkpg9e3b8/ve/7/eEAYDRK+dwWbt2bSxatCiWLl0azc3NUV1dHXPnzo2WlpY+93/llVfi0ksvjYaGhti8eXNcdNFFceWVV0Zzc/MXnjwAMLrkZVmW5XLArFmzYsaMGbFy5crusWnTpsW8efOivr7+iO7jnHPOifnz58ddd93V5z/v6uqKrq6u7tudnZ0xadKk6OjoiJKSklymCwAMk87OzigtLR3Q1++czrjs27cvNm/eHDU1NT3Ga2pqYuPGjUd0HwcPHoy9e/fGCSeccNh96uvro7S0tHubNGlSLtMEAEaonMKlvb09Dhw4EGVlZT3Gy8rKoq2t7Yju4/77749PPvkkrr766sPus2TJkujo6Ojedu7cmcs0AYARqqA/B+Xl5fW4nWVZr7G+PPPMM/Gzn/0sfvvb38ZJJ5102P2KioqiqKioP1MDAEawnMJl/PjxkZ+f3+vsyu7du3udhflva9eujRtvvDGeffbZuOSSS3KfKQAw6uV0qaiwsDAqKiqisbGxx3hjY2NUVVUd9rhnnnkmrr/++nj66afjiiuu6N9MAYBRL+dLRXV1dXHttddGZWVlzJ49O379619HS0tL1NbWRsRn709577334qmnnoqIz6JlwYIF8eCDD8bXv/717rM1xxxzTJSWlg7gUwEARrqcw2X+/PmxZ8+euPvuu6O1tTWmT58eDQ0NMXny5IiIaG1t7fGdLr/61a9i//798YMf/CB+8IMfdI9fd9118eSTT37xZwAAjBo5f4/LcBiMz4EDAINr2L/HBQBgOAkXACAZwgUASIZwAQCSIVwAgGQIFwAgGcIFAEiGcAEAkiFcAIBkCBcAIBnCBQBIhnABAJIhXACAZAgXACAZwgUASIZwAQCSIVwAgGQIFwAgGcIFAEiGcAEAkiFcAIBkCBcAIBnCBQBIhnABAJIhXACAZAgXACAZwgUASIZwAQCSIVwAgGQIFwAgGcIFAEiGcAEAkiFcAIBkCBcAIBnCBQBIhnABAJIhXACAZAgXACAZwgUASIZwAQCSIVwAgGQIFwAgGcIFAEiGcAEAkiFcAIBkCBcAIBnCBQBIhnABAJIhXACAZAgXACAZwgUASIZwAQCSIVwAgGQIFwAgGcIFAEiGcAEAkiFcAIBkCBcAIBnCBQBIhnABAJIhXACAZAgXACAZwgUASEa/wmXFihUxZcqUKC4ujoqKimhqavrc/Tds2BAVFRVRXFwcU6dOjUcffbRfkwUARrecw2Xt2rWxaNGiWLp0aTQ3N0d1dXXMnTs3Wlpa+tx/x44dcfnll0d1dXU0NzfHT37yk1i4cGE8//zzX3jyAMDokpdlWZbLAbNmzYoZM2bEypUru8emTZsW8+bNi/r6+l7733HHHfHSSy/Ftm3busdqa2vjjTfeiNdff73Px+jq6oqurq7u2x0dHXHqqafGzp07o6SkJJfpAgDDpLOzMyZNmhQfffRRlJaWDsydZjno6urK8vPzs3Xr1vUYX7hwYXbBBRf0eUx1dXW2cOHCHmPr1q3LCgoKsn379vV5zLJly7KIsNlsNpvNNgK2d955J5fc+FwFkYP29vY4cOBAlJWV9RgvKyuLtra2Po9pa2vrc//9+/dHe3t7lJeX9zpmyZIlUVdX1337o48+ismTJ0dLS8vAFRv9cqienf0aftbi6GEtji7W4+hx6IrJCSecMGD3mVO4HJKXl9fjdpZlvcb+1/59jR9SVFQURUVFvcZLS0v9S3iUKCkpsRZHCWtx9LAWRxfrcfQYM2bgPsSc0z2NHz8+8vPze51d2b17d6+zKoecfPLJfe5fUFAQ48aNy3G6AMBollO4FBYWRkVFRTQ2NvYYb2xsjKqqqj6PmT17dq/9169fH5WVlTF27NgcpwsAjGY5n7upq6uLxx9/PFavXh3btm2LxYsXR0tLS9TW1kbEZ+9PWbBgQff+tbW18e6770ZdXV1s27YtVq9eHatWrYrbbrvtiB+zqKgoli1b1uflI4aWtTh6WIujh7U4uliPo8dgrEXOH4eO+OwL6O67775obW2N6dOnxy9+8Yu44IILIiLi+uuvj3/84x/xxz/+sXv/DRs2xOLFi+Ott96KCRMmxB133NEdOgAAR6pf4QIAMBz8VhEAkAzhAgAkQ7gAAMkQLgBAMo6acFmxYkVMmTIliouLo6KiIpqamj53/w0bNkRFRUUUFxfH1KlT49FHHx2imY58uazFunXr4tJLL40TTzwxSkpKYvbs2fH73/9+CGc7suX6d3HIa6+9FgUFBXH++ecP7gRHkVzXoqurK5YuXRqTJ0+OoqKiOP3002P16tVDNNuRLde1WLNmTZx33nlx7LHHRnl5edxwww2xZ8+eIZrtyPXKK6/ElVdeGRMmTIi8vLx48cUX/+cxA/LaPWC/evQF/OY3v8nGjh2bPfbYY9nWrVuzW2+9NTvuuOOyd999t8/9t2/fnh177LHZrbfemm3dujV77LHHsrFjx2bPPffcEM985Ml1LW699dbs3nvvzf7yl79kb7/9drZkyZJs7Nix2d/+9rchnvnIk+taHPLRRx9lU6dOzWpqarLzzjtvaCY7wvVnLa666qps1qxZWWNjY7Zjx47sz3/+c/baa68N4axHplzXoqmpKRszZkz24IMPZtu3b8+ampqyc845J5s3b94Qz3zkaWhoyJYuXZo9//zzWURkL7zwwufuP1Cv3UdFuMycOTOrra3tMXbWWWdld955Z5/7//jHP87OOuusHmM333xz9vWvf33Q5jha5LoWfTn77LOz5cuXD/TURp3+rsX8+fOzn/70p9myZcuEywDJdS1+97vfZaWlpdmePXuGYnqjSq5r8fOf/zybOnVqj7GHHnoomzhx4qDNcTQ6knAZqNfuYb9UtG/fvti8eXPU1NT0GK+pqYmNGzf2eczrr7/ea//LLrssNm3aFP/+978Hba4jXX/W4r8dPHgw9u7dO6C/BDoa9XctnnjiiXjnnXdi2bJlgz3FUaM/a/HSSy9FZWVl3HfffXHKKafEmWeeGbfddlv885//HIopj1j9WYuqqqrYtWtXNDQ0RJZl8cEHH8Rzzz0XV1xxxVBMmf8wUK/d/fp16IHU3t4eBw4c6PUjjWVlZb1+nPGQtra2Pvffv39/tLe3R3l5+aDNdyTrz1r8t/vvvz8++eSTuPrqqwdjiqNGf9bi73//e9x5553R1NQUBQXD/qc9YvRnLbZv3x6vvvpqFBcXxwsvvBDt7e3x/e9/Pz788EPvc/kC+rMWVVVVsWbNmpg/f37861//iv3798dVV10Vv/zlL4diyvyHgXrtHvYzLofk5eX1uJ1lWa+x/7V/X+PkLte1OOSZZ56Jn/3sZ7F27do46aSTBmt6o8qRrsWBAwfimmuuieXLl8eZZ545VNMbVXL5uzh48GDk5eXFmjVrYubMmXH55ZfHAw88EE8++aSzLgMgl7XYunVrLFy4MO66667YvHlzvPzyy7Fjxw4/OzNMBuK1e9j/t2z8+PGRn5/fq5Z3797dq8wOOfnkk/vcv6CgIMaNGzdocx3p+rMWh6xduzZuvPHGePbZZ+OSSy4ZzGmOCrmuxd69e2PTpk3R3Nwct9xyS0R89uKZZVkUFBTE+vXr4+KLLx6SuY80/fm7KC8vj1NOOSVKS0u7x6ZNmxZZlsWuXbvijDPOGNQ5j1T9WYv6+vqYM2dO3H777RERce6558Zxxx0X1dXVcc899zhDP4QG6rV72M+4FBYWRkVFRTQ2NvYYb2xsjKqqqj6PmT17dq/9169fH5WVlTF27NhBm+tI15+1iPjsTMv1118fTz/9tOvGAyTXtSgpKYk333wztmzZ0r3V1tbGV7/61diyZUvMmjVrqKY+4vTn72LOnDnx/vvvx8cff9w99vbbb8eYMWNi4sSJgzrfkaw/a/Hpp5/GmDE9X+ry8/Mj4v//3z5DY8Beu3N6K+8gOfTxtlWrVmVbt27NFi1alB133HHZP/7xjyzLsuzOO+/Mrr322u79D32kavHixdnWrVuzVatW+Tj0AMl1LZ5++umsoKAge+SRR7LW1tbu7aOPPhqupzBi5LoW/82nigZOrmuxd+/ebOLEidm3v/3t7K233so2bNiQnXHGGdlNN900XE9hxMh1LZ544omsoKAgW7FiRfbOO+9kr776alZZWZnNnDlzuJ7CiLF3796subk5a25uziIie+CBB7Lm5ubuj6YP1mv3UREuWZZljzzySDZ58uSssLAwmzFjRrZhw4buf3bddddlF154YY/9//jHP2Zf+9rXssLCwuy0007LVq5cOcQzHrlyWYsLL7wwi4he23XXXTf0Ex+Bcv27+E/CZWDluhbbtm3LLrnkkuyYY47JJk6cmNXV1WWffvrpEM96ZMp1LR566KHs7LPPzo455pisvLw8++53v5vt2rVriGc98vzhD3/43P/+D9Zrd16WOVcGAKRh2N/jAgBwpIQLAJAM4QIAJEO4AADJEC4AQDKECwCQDOECACRDuAAAyRAuAEAyhAsAkAzhAgAk4/8BrQWhjBP+6s8AAAAASUVORK5CYII=\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "#bins = frequency_distribution_2.index.to_list()\n", - "\n", - "plt.xlabel('Dice Values')\n", - "plt.ylabel('Frequency')\n", - "plt.title('Dice Rolls Frequency Distribution')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "\"\"\"\n", - "your comments here\n", - "\"\"\"\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Challenge 4\n", - "In the `data` folder of this repository you will find three different files with the prefix `ages_population`. These files contain information about a poll answered by a thousand people regarding their age. Each file corresponds to the poll answers in different neighbourhoods of Barcelona.\n", - "\n", - "#### 1.- Read the file `ages_population.csv`. Calculate the frequency distribution and plot it as we did during the lesson. Try to guess the range in which the mean and the standard deviation will be by looking at the plot. " - ] - }, - { - "cell_type": "code", - "execution_count": 250, - "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", - "
observation
068.0
112.0
245.0
338.0
449.0
527.0
639.0
712.0
842.0
933.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\n", - "5 27.0\n", - "6 39.0\n", - "7 12.0\n", - "8 42.0\n", - "9 33.0" - ] - }, - "execution_count": 250, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# your code here\n", - "ages_population_df = pd.read_csv('/Users/amandine/Desktop/Ironhack/03_Week/Descriptive-Stats/data/ages_population.csv')\n", - "ages_population_df.head(10)" - ] - }, - { - "cell_type": "code", - "execution_count": 251, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1.0 2\n", - "2.0 2\n", - "4.0 1\n", - "5.0 2\n", - "6.0 2\n", - " ..\n", - "69.0 1\n", - "70.0 1\n", - "71.0 1\n", - "73.0 1\n", - "82.0 1\n", - "Name: observation, Length: 72, dtype: int64\n" - ] - } - ], - "source": [ - "frequency_distribution_3 = ages_population_df['observation'].value_counts().sort_index()\n", - "print(frequency_distribution_3)" - ] - }, - { - "cell_type": "code", - "execution_count": 263, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Text(0.5, 1.0, 'Ages population')" - ] - }, - "execution_count": 263, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "plt.hist(frequency_distribution_3.index, bins=200, weights=frequency_distribution_3.values)\n", - "plt.xlabel('Ages')\n", - "plt.ylabel('Frequency')\n", - "plt.title('Ages population')" - ] - }, - { - "cell_type": "code", - "execution_count": 264, - "metadata": {}, - "outputs": [], - "source": [ - "#Mean is generally around the most frequent values, so ages around 40,45\n", - "#Data are pretty sparse, so we can expect the standard deviation to be pretty high -> 1,4" - ] - }, - { - "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": 265, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "The average is 13.88888888888889, and the standard deviation is 11.183514101315424\n" - ] - } - ], - "source": [ - "# your code here\n", - "average = np.mean(frequency_distribution_3)\n", - "std_ages = np.std(frequency_distribution_3)\n", - "\n", - "print(f\"The average is {average}, and the standard deviation is {std_ages}\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "plt.figure(figsize=(10, 6))\n", - "plt.bar(df['Age'], df['Count'])\n", - "plt.xlabel('Age')\n", - "plt.ylabel('Count')\n", - "plt.title('Age Population Distribution')\n", - "plt.show()" - ] - }, - { - "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": "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 -}