From 414d05a99b20b0c45459901a211f320b3c3a9710 Mon Sep 17 00:00:00 2001 From: mariabourbon Date: Thu, 9 Nov 2023 17:37:17 +0000 Subject: [PATCH 1/2] solved lab --- .../.ipynb_checkpoints/lab-checkpoint.ipynb | 1653 +++++++++++++++++ your-code/ages_population.csv | 1001 ++++++++++ your-code/ages_population2.csv | 1001 ++++++++++ your-code/ages_population3.csv | 1001 ++++++++++ your-code/lab.ipynb | 1653 +++++++++++++++++ your-code/main.ipynb | 522 ------ your-code/roll_the_dice_hundred.csv | 101 + your-code/roll_the_dice_thousand.csv | 1001 ++++++++++ 8 files changed, 7411 insertions(+), 522 deletions(-) create mode 100644 your-code/.ipynb_checkpoints/lab-checkpoint.ipynb create mode 100644 your-code/ages_population.csv create mode 100644 your-code/ages_population2.csv create mode 100644 your-code/ages_population3.csv create mode 100644 your-code/lab.ipynb delete mode 100644 your-code/main.ipynb create mode 100644 your-code/roll_the_dice_hundred.csv create mode 100644 your-code/roll_the_dice_thousand.csv diff --git a/your-code/.ipynb_checkpoints/lab-checkpoint.ipynb b/your-code/.ipynb_checkpoints/lab-checkpoint.ipynb new file mode 100644 index 0000000..989983a --- /dev/null +++ b/your-code/.ipynb_checkpoints/lab-checkpoint.ipynb @@ -0,0 +1,1653 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Understanding Descriptive Statistics\n", + "\n", + "Import the necessary libraries here:" + ] + }, + { + "cell_type": "code", + "execution_count": 73, + "metadata": {}, + "outputs": [], + "source": [ + "# Libraries\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import pandas as pd" + ] + }, + { + "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": 108, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([1, 2, 2, 1, 3, 4, 5, 1, 2, 2])" + ] + }, + "execution_count": 108, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# your code here\n", + "def game_dice():\n", + " data = np.random.randint(1,6,size = 10)\n", + " return data \n", + "\n", + "numbers =game_dice()\n", + "numbers" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 2.- Plot the results sorted by value." + ] + }, + { + "cell_type": "code", + "execution_count": 109, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([1, 1, 2, 2, 2, 3, 4, 5, 5, 5])" + ] + }, + "execution_count": 109, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# your code here\n", + "output = game_dice()\n", + "output_sorted = np.sort(output)\n", + "output_sorted" + ] + }, + { + "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": 115, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{1: 3, 2: 4, 3: 1, 4: 1, 5: 1}\n" + ] + } + ], + "source": [ + "numbers_frequency = {}\n", + "\n", + "for value in numbers:\n", + " if value in numbers_frequency:\n", + " numbers_frequency[value] += 1\n", + " else:\n", + " numbers_frequency[value] = 1\n", + "print(numbers_frequency)" + ] + }, + { + "cell_type": "code", + "execution_count": 116, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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7t27q1+/fi5dz48ZhlHt9l69esnT01O/+tWvtGrVKv3nP/9x6Tw//TyrExUVpZ49ezq1PfbYYyopKdGBAwdcOn9N7dixQ7GxsWrfvr1T+5NPPqlLly5VGvW50ecMuAvCDdAAIiMj1bt3b6flx0JCQpzWz5w5I0l69NFH1bRpU6dl/vz5MgxD58+f13fffaerV68qODi40jmraquJc+fOqby8XK+99lqlc8fHx0uSzp4967RPQECA07qXl5ck6b///a8k6dtvv5WkG06oDQoK0ujRo7Vs2TJVVFTo0KFD2r17t5555hmXruXHSktLde7cuWofbXXu3Fkff/yxAgMDNXXqVHXu3FmdO3fWq6++Wqtz/fTzrE51n925c+dqdd7aOnfuXJW1XrtHPz3/jT5nwF3wOgbgBn46mtGmTRtJ0muvvXbdN1yCgoIcb1YVFhZW2v7TtmsjO3a73an9p3/AWrVqpSZNmmjs2LGaOnVqlecODw+v5moquzYJ99r8murMmDFDa9as0YcffqitW7eqZcuWevzxx2t1vqps3rxZFRUVN3x9u2/fvurbt68qKiqUk5Oj1157TTNnzlRQUJDGjBlTo3PV5rtzqvvsroWJ6312Pw2ZtRUQEKCCgoJK7dcmbl/7/xBobAg3gBu6//771bJlS/3rX/+qdtTC09NTP/vZz/T+++9rwYIFjj+CFy5c0KZNm5z6BgUFydvbW4cOHXJq//DDD53WfXx8NHDgQOXm5qpHjx7y9PS86evp06eP/P39lZqaqjFjxlT7xz86Olp9+vTR/PnzdeTIEf3qV79S8+bNb+r8eXl5SkpKkr+/v37961/XaJ8mTZro5z//ue666y797W9/04EDBzRmzJg6H634/PPP9dlnnzk9mlq7dq18fX11zz33SPrhy/4k6dChQ4qIiHD027hxY6XjeXl51bi22NhYbdiwQadPn3Ya0Vq9erV8fHx4dRyNFuEGcEMtWrTQa6+9pvHjx+v8+fN69NFHFRgYqG+//VafffaZvv32W6WkpEiSXnrpJT300EMaPHiwnn32WVVUVGj+/Plq3ry5zp8/7zimzWbTE088oZUrV6pz587q2bOn/vnPf2rt2rWVzv/qq6/qgQceUN++ffWb3/xGHTt21IULF/TVV19p06ZN2rFjR62v55VXXtGkSZM0aNAgPf300woKCtJXX32l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du1aZd/CwkIFBQU5tQUFBam8vFxnz55VSEhIpX3sdrvsdrtjvaSkpG4vAAAAuBXTw01ERIQOHjyo77//XhkZGRo/fryysrKuG3BsNpvTumEYVbZfk5ycrLlz59Zt0dXo+L+bG+xcjd2JecPMLgEAYEGmP5by9PRUly5d1Lt3byUnJ6tnz5569dVXq+wbHByswsJCp7aioiJ5eHgoICCgyn1mz56t4uJix5Kfn1/n1wAAANyH6SM3P2UYhtNjpB+LiYnRpk2bnNq2bdum3r17q2nTplXu4+XlJS8vrzqvEwAAuCdTR27mzJmj3bt368SJEzp8+LCef/55ZWZm6vHHH5f0w6jLuHHjHP0nT56skydPKjExUV988YVWrlypFStWKCkpyaxLAAAAbsbUkZszZ85o7NixKigokL+/v3r06KGtW7dq8ODBkqSCggLl5eU5+oeHh2vLli2aNWuWXn/9dYWGhmrJkiW8Bg4AABxMDTcrVqyodnt6enqltv79++vAgQP1VBEAAGjsTJ9QDAAAUJcINwAAwFIINwAAwFIINwAAwFIINwAAwFIINwAAwFIINwAAwFIINwAAwFIINwAAwFIINwAAwFIINwAAwFIINwAAwFIINwAAwFIINwAAwFIINwAAwFIINwAAwFIINwAAwFIINwAAwFIINwAAwFIINwAAwFIINwAAwFIINwAAwFIINwAAwFIINwAAwFIINwAAwFIINwAAwFIINwAAwFIINwAAwFIINwAAwFIINwAAwFIINwAAwFIINwAAwFIINwAAwFJMDTfJycm699575evrq8DAQD3yyCM6evRotftkZmbKZrNVWr788ssGqhoAALgzU8NNVlaWpk6dqr1792r79u0qLy9XXFycSktLb7jv0aNHVVBQ4FjuuOOOBqgYAAC4Ow8zT75161an9bS0NAUGBmr//v3q169ftfsGBgaqZcuW9VgdAABojNxqzk1xcbEkqXXr1jfse/fddyskJESxsbHauXNnfZcGAAAaCVNHbn7MMAwlJibqgQceULdu3a7bLyQkRMuXL1d0dLTsdrvWrFmj2NhYZWZmVjnaY7fbZbfbHeslJSX1Uj8AAHAPbhNunnnmGR06dEh79uyptl9ERIQiIiIc6zExMcrPz9fChQurDDfJycmaO3dundcLAADck1s8lpo2bZo2btyonTt3ql27drXe/7777tOxY8eq3DZ79mwVFxc7lvz8/JstFwAAuDGXRm6OHz+u8PDwmz65YRiaNm2aNmzYoMzMTJePmZubq5CQkCq3eXl5ycvL62bKBAAAjYhL4aZLly7q16+fJk6cqEcffVTe3t4unXzq1Klau3atPvzwQ/n6+qqwsFCS5O/vr2bNmkn6YeTl1KlTWr16tSRp8eLF6tixo6KiolRWVqa33npLGRkZysjIcKkGAABgLS49lvrss890991369lnn1VwcLB+/etf65///Getj5OSkqLi4mINGDBAISEhjmX9+vWOPgUFBcrLy3Osl5WVKSkpST169FDfvn21Z88ebd68WSNHjnTlUgAAgMXYDMMwXN25vLxcmzZtUnp6uj766CPdcccdmjhxosaOHau2bdvWZZ11pqSkRP7+/iouLpafn1+dH7/j/26u82Na1Yl5w+rsWNz3mqvL+w4ADaU2f79vakKxh4eHRowYoXfeeUfz58/X119/raSkJLVr107jxo1TQUHBzRweAACg1m4q3OTk5GjKlCkKCQnRokWLlJSUpK+//lo7duzQqVOnNHz48LqqEwAAoEZcmlC8aNEipaWl6ejRo4qPj9fq1asVHx+v2277ISuFh4dr2bJluuuuu+q0WAAAgBtxKdykpKRowoQJeuqppxQcHFxln7CwMK1YseKmigMAAKgtl8LN9b4w78c8PT01fvx4Vw4PAADgMpfm3KSlpendd9+t1P7uu+9q1apVN10UAACAq1wKN/PmzVObNm0qtQcGBupPf/rTTRcFAADgKpfCzcmTJ6v8qYQOHTo4feEeAABAQ3Mp3AQGBurQoUOV2j/77DMFBATcdFEAAACucincjBkzRtOnT9fOnTtVUVGhiooK7dixQzNmzNCYMWPqukYAAIAac+ltqZdfflknT55UbGysPDx+OMTVq1c1btw45twAAABTuRRuPD09tX79er300kv67LPP1KxZM3Xv3l0dOnSo6/oAAABqxaVwc82dd96pO++8s65qAQAAuGkuhZuKigqlp6frk08+UVFRka5eveq0fceOHXVSHAAAQG25FG5mzJih9PR0DRs2TN26dZPNZqvrugAAAFziUrhZt26d3nnnHcXHx9d1PQAAADfFpVfBPT091aVLl7quBQAA4Ka5FG6effZZvfrqqzIMo67rAQAAuCkuPZbas2ePdu7c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AQBAY9Ko5txkZ2crLi7OqW3IkCHKycnRlStXTKoKAAC4E1NHbmqrsLBQQUFBTm1BQUEqLy/X2bNnFRISUmkfu90uu93uWC8pKan3OgEAgHkaVbiRJJvN5rRuGEaV7dckJydr7ty59V4XcCvq+L+bzS6h0Tgxb1idHYv7XnPcd3PU5X13RaN6LBUcHKzCwkKntqKiInl4eCggIKDKfWbPnq3i4mLHkp+f3xClAgAAkzSqkZuYmBht2rTJqW3btm3q3bu3mjZtWuU+Xl5e8vLyaojyAACAGzB15ObixYs6ePCgDh48KOmHV70PHjyovLw8ST+MuowbN87Rf/LkyTp58qQSExP1xRdfaOXKlVqxYoWSkpLMKB8AALghU0ducnJyNHDgQMd6YmKiJGn8+PFKT09XQUGBI+hIUnh4uLZs2aJZs2bp9ddfV2hoqJYsWcJr4AAAwMHUcDNgwADHhOCqpKenV2rr37+/Dhw4UI9VAQCAxqxRTSgGAAC4EcINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFNPDzRtvvKHw8HB5e3srOjpau3fvvm7fzMxM2Wy2SsuXX37ZgBUDAAB3Zmq4Wb9+vWbOnKnnn39eubm56tu3r4YOHaq8vLxq9zt69KgKCgocyx133NFAFQMAAHdnarhZtGiRJk6cqEmTJikyMlKLFy9W+/btlZKSUu1+gYGBCg4OdixNmjRpoIoBAIC7My3clJWVaf/+/YqLi3Nqj4uL06efflrtvnfffbdCQkIUGxurnTt31meZAACgkfEw68Rnz55VRUWFgoKCnNqDgoJUWFhY5T4hISFavny5oqOjZbfbtWbNGsXGxiozM1P9+vWrch+73S673e5YLykpqbuLAAAAbse0cHONzWZzWjcMo1LbNREREYqIiHCsx8TEKD8/XwsXLrxuuElOTtbcuXPrrmAAAODWTHss1aZNGzVp0qTSKE1RUVGl0Zzq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TEyMOnfurFWrVikxMdHEytwH4QaoB9OmTdPGjRu1a9cutWvXzuxybgmenp7q0qWLJKl3797at2+fXn31VS1btszkyqxr//79KioqUnR0tKOtoqJCu3bt0tKlS2W329WkSRMTK7w1NG/eXN27d9exY8fMLsVtEG6AOmQYhqZNm6YNGzYoMzNT4eHhZpd0yzIMQ3a73ewyLC02NrbSWzpPPfWU7rrrLv32t78l2DQQu92uL774Qn379jW7FLdBuLGwixcv6quvvnKsHz9+XAcPHlTr1q0VFhZmYmXWNXXqVK1du1YffvihfH19VVhYKEny9/dXs2bNTK7OuubMmaOhQ4eqffv2unDhgtatW6fMzMxKb6+hbvn6+laaT9a8eXMFBAQwz6weJSUlKSEhQWFhYSoqKtLLL7+skpISjR8/3uzS3AbhxsJycnI0cOBAx/q1Z7Hjx49Xenq6SVVZW0pKiiRpwIABTu1paWl68sknG76gW8SZM2c0duxYFRQUyN/fXz169NDWrVs1ePBgs0sD6tw333yjX/7ylzp79qzatm2r++67T3v37lWHDh3MLs1t2AzDMMwuAgAAoK7wPTcAAMBSCDcAAMBSCDcAAMBSCDcAAMBSCDcAAMBSCDcAAMBSCDcAAMBSCDcALGHAgAGaOXOm2WUAcAOEGwCmS0hI0KBBg6rclp2dLZvNpgMHDjRwVQAaK8INANNNnDhRO3bs0MmTJyttW7lypXr16qV77rnHhMoANEaEGwCm+8UvfqHAwMBKv3l26dIlrV+/Xo888oh++ctfql27dvLx8VH37t319ttvV3tMm82mDz74wKmtZcuWTuc4deqURo8erVatWikgIEDDhw/XiRMn6uaiAJiGcAPAdB4eHho3bpzS09P145+7e/fdd1VWVqZJkyYpOjpaf//733XkyBH96le/0tixY/X//t//c/mcly5d0sCBA9WiRQvt2rVLe/bsUYsWLfTQQw+prKysLi4LgEkINwDcwoQJE3TixAllZmY62lauXKmRI0fq9ttvV1JSknr16qVOnTpp2rRpGjJkiN59912Xz7du3TrddtttevPNN9W9e3dFRkYqLS1NeXl5TjUAaHw8zC4AACTprrvuUp8+fbRy5UoNHDhQX3/9tXbv3q1t27apoqJC8+bN0/r163Xq1CnZ7XbZ7XY1b97c5fPt379fX331lXx9fZ3aL1++rK+//vpmLweAiQg3ANzGxIkT9cwzz+j1119XWlqaOnTooNjYWC1YsEB/+ctftHjxYnXv3l3NmzfXzJkzq318ZLPZnB5xSdKVK1cc/3316lVFR0frb3/7W6V927ZtW3cXBaDBEW4AuI3/+Z//0YwZM7R27VqtWrVKTz/9tGw2m3bv3q3hw4friSeekPRDMDl27JgiIyOve6y2bduqoKDAsX7s2DFdunTJsX7PPfdo/fr1CgwMlJ+fX/1dFIAGx5wbAG6jRYsWGj16tObMmaPTp0/rySeflCR16dJF27dv16effqovvvhCv/71r1VYWFjtsR588EEtXbpUBw4cUE5OjiZPnqymTZs6tj/++ONq06aNhg8frt27d+v48ePKysrSjBkz9M0339TnZQKoZ4QbAG5l4sSJ+u677zRo0CCFhYVJkn73u9/pnnvu0ZAhQzRgwAAFBwfrkUceqfY4r7zyitq3b69+/frpscceU1JSknx8fBzbfXx8tGvXLoWFhWnkyJGKjIzUhAkT9N///peRHKCRsxk/fSgNAADQiDFyAwAALIVwAwAALIVwAwAALIVwAwAALIVwAwAALIVwAwAALIVwAwAALIVwAwAALIVwAwAALIVwAwAALIVwAwAALIVwAwAALOX/A0aO4kNaGSxHAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# your code here\n", + "plt.bar(numbers_frequency.keys(), numbers_frequency.values())\n", + "plt.xlabel('Value')\n", + "plt.ylabel('Frequency')\n", + "plt.title('Frequency Distribution')\n", + "plt.show()" + ] + }, + { + "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": 117, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "2.3" + ] + }, + "execution_count": 117, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# your code here\n", + "\n", + "mean = numbers.sum()/len(numbers)\n", + "mean" + ] + }, + { + "cell_type": "code", + "execution_count": 118, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'\\nyour comments here\\n'" + ] + }, + "execution_count": 118, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\"\"\"\n", + "your comments here\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": 119, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "2.3" + ] + }, + "execution_count": 119, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# your code here\n", + "\n", + "def mean(numbers):\n", + " numbers_frequency = {}\n", + " for value in numbers:\n", + " if value in numbers_frequency:\n", + " numbers_frequency[value] += 1\n", + " else:\n", + " numbers_frequency[value] = 1\n", + " sum_numbers = 0\n", + " total_frequency = 0\n", + " for value, frequency in numbers_frequency.items():\n", + " sum_numbers += value * frequency\n", + " total_frequency += frequency\n", + " mean = sum_numbers / total_frequency\n", + " return mean\n", + "\n", + "mean(numbers)" + ] + }, + { + "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": 120, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "2.0" + ] + }, + "execution_count": 120, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# your code here\n", + "\n", + "def median(numbers):\n", + " sorted_numbers = np.sort(numbers)\n", + " size = len(sorted_numbers)\n", + " \n", + " if size % 2 == 0: # se for par \n", + " middle1 = sorted_numbers[size // 2 - 1]\n", + " middle2 = sorted_numbers[size // 2]\n", + " median_value = (middle1 + middle2) / 2\n", + " else: # se for impar\n", + " median_value = sorted_numbers[size // 2]\n", + "\n", + " return median_value\n", + "\n", + "median(numbers)" + ] + }, + { + "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": 121, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(1, 2.0, 3)" + ] + }, + "execution_count": 121, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "def quartiles(numbers):\n", + " sorted_numbers = np.sort(numbers)\n", + " size = len(numbers)\n", + " q2 = median(numbers)\n", + "\n", + " if size % 2 == 0: #se for par \n", + " first_half = sorted_numbers[:size // 2]\n", + " second_half = sorted_numbers[size // 2:]\n", + " q1 = median(first_half)\n", + " q3 = median(second_half)\n", + " \n", + " else: # se for ímpar \n", + " first_half = sorted_numbers[:size // 2]\n", + " second_half = sorted_numbers[size // 2 + 1:]\n", + " q1 = median(first_half)\n", + " q3 = median(second_half)\n", + "\n", + " return q1, q2, q3\n", + "\n", + "quartiles(numbers)" + ] + }, + { + "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": 122, + "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", + "
Unnamed: 0rollvalue
0001
1112
2226
3331
4446
............
9595954
9696966
9797971
9898983
9999996
\n", + "

100 rows × 3 columns

\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", + ".. ... ... ...\n", + "95 95 95 4\n", + "96 96 96 6\n", + "97 97 97 1\n", + "98 98 98 3\n", + "99 99 99 6\n", + "\n", + "[100 rows x 3 columns]" + ] + }, + "execution_count": 122, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# your code here\n", + "roll_dice = pd.read_csv('roll_the_dice_hundred.csv')\n", + "roll_dice" + ] + }, + { + "cell_type": "code", + "execution_count": 123, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'\\nyour comments here\\n'" + ] + }, + "execution_count": 123, + "metadata": {}, + "output_type": "execute_result" + } + ], + "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": 124, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "3.74" + ] + }, + "execution_count": 124, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# your code here\n", + "mean(roll_dice[\"value\"])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 3.- Now, calculate the frequency distribution.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 125, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "value\n", + "6 23\n", + "4 22\n", + "2 17\n", + "3 14\n", + "1 12\n", + "5 12\n", + "Name: count, dtype: int64" + ] + }, + "execution_count": 125, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "numbers_frequency = roll_dice[\"value\"].value_counts()\n", + "frequency_numbers = {}\n", + "\n", + "for value in numbers:\n", + " if value in frequency_numbers:\n", + " frequency_numbers[value] += 1\n", + " else:\n", + " frequency_numbers[value] = 1\n", + "\n", + "numbers_frequency\n" + ] + }, + { + "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": 126, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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sqwiX2/ZsqV8fX31xBNPaOHChfr22289Os71n2dRmjRpohYtWrgtGzBggDIzM7V3716Pjl9SmzZtUpcuXRQZGem2fPDgwbp48WK+UZ3iPmfAW1BmgJugUaNGatOmjdv0a+Hh4W7z33//vSTpoYceUsWKFd2myZMny7IsnT17VufOnVNeXp7CwsLyHbOgZSVx5swZXb16Va+++mq+Y/fs2VOS9OOPP7ptU716dbd5p9MpSfr5558lST/88IMkFXsDbGhoqPr166c5c+YoNzdXBw4c0Pbt2zV69GiP3suvZWdn68yZM0Veqqpbt64++ugjhYSEaNSoUapbt67q1q2rl19+uVTHuv7zLEpRn92ZM2dKddzSOnPmTIFZr52j649f3OcMeAsenwBscP1oRY0aNSRJr776aqFPoISGhrqefDp9+nS+169fdm3kJicnx2359X9hVatWTRUqVNCjjz6qUaNGFXjs6OjoIt5Nftdumr12f0xREhMT9eabb2r16tVav369qlatqocffrhUxyvIunXrlJubW+zj1B06dFCHDh2Um5ur3bt369VXX9WYMWMUGhqq/v37l+hYpfnumqI+u2vlobDP7vpSWVrVq1dXenp6vuXXbrS+9u8hYBrKDOAF2rVrp6pVq+rLL78sclTC19dXd999t1auXKmpU6e6/tLLysrS2rVr3dYNDQ1VpUqVdODAAbflq1evdpv38/NT586d9fnnn6t58+by9fW94fcTExOjoKAgzZ49W/379y/yL/vWrVsrJiZGkydP1sGDB/XEE0/I39//ho5//PhxjR8/XkFBQRo+fHiJtqlQoYLatm2rhg0b6u2339bevXvVv3//Mh+NOHTokPbv3+92qWnx4sUKCAhQq1atJP3y5XqSdODAAd1xxx2u9dasWZNvf06ns8TZunTpolWrVunUqVNuI1aLFi2Sn58fj3LDWJQZwAtUqVJFr776qgYNGqSzZ8/qoYceUkhIiH744Qft379fP/zwg2bNmiVJ+vvf/64ePXqoW7duGjdunHJzczV58mT5+/vr7Nmzrn06HA498sgjmj9/vurWrasWLVros88+0+LFi/Md/+WXX1b79u3VoUMH/elPf1KdOnWUlZWlI0eOaO3atdq0aVOp38+0adM0bNgwde3aVY8//rhCQ0N15MgR7d+/XzNnznRbPzExUf369ZPD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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# your code here\n", + "plt.bar(numbers_frequency.index, numbers_frequency.values)\n", + "plt.xlabel('Value')\n", + "plt.ylabel('Frequency')\n", + "plt.title('Frequency Distribution')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 127, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'\\nyour comments here\\n'" + ] + }, + "execution_count": 127, + "metadata": {}, + "output_type": "execute_result" + } + ], + "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": 130, + "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", + "
Unnamed: 0rollvalue
0005
1116
2221
3336
4445
............
9959959951
9969969964
9979979974
9989989983
9999999996
\n", + "

1000 rows × 3 columns

\n", + "
" + ], + "text/plain": [ + " Unnamed: 0 roll value\n", + "0 0 0 5\n", + "1 1 1 6\n", + "2 2 2 1\n", + "3 3 3 6\n", + "4 4 4 5\n", + ".. ... ... ...\n", + "995 995 995 1\n", + "996 996 996 4\n", + "997 997 997 4\n", + "998 998 998 3\n", + "999 999 999 6\n", + "\n", + "[1000 rows x 3 columns]" + ] + }, + "execution_count": 130, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# your code here\n", + "roll_thousand = pd.read_csv('roll_the_dice_thousand.csv')\n", + "roll_thousand" + ] + }, + { + "cell_type": "code", + "execution_count": 131, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "value\n", + "1 175\n", + "3 175\n", + "4 168\n", + "2 167\n", + "6 166\n", + "5 149\n", + "Name: count, dtype: int64" + ] + }, + "execution_count": 131, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "numbers_frequency = roll_thousand[\"value\"].value_counts()\n", + "frequency_numbers = {}\n", + "\n", + "for value in numbers:\n", + " if value in frequency_numbers:\n", + " frequency_numbers[value] += 1\n", + " else:\n", + " frequency_numbers[value] = 1\n", + "\n", + "numbers_frequency\n" + ] + }, + { + "cell_type": "code", + "execution_count": 132, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjsAAAHFCAYAAAAUpjivAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAAA1WklEQVR4nO3deXQUZb7G8afN0pCYBELIJknMICgSZIsboCSySMCAREcYcAiyqAMiCDnOoMchzPUSEEEURkQHAggI4gVEUTDsMOIViCxBLwYMmyRGAckChJDU/cNDj00WTNOkO+X3c06dQ73vW1W/qsbD41tV3RbDMAwBAACY1A2uLgAAAOB6IuwAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAtWz+/PmyWCyVLikpKa4uz1SuvNb16tVTaGio4uPjlZaWpvz8/ArbpKamymKx1Og4586dU2pqqjZv3lyj7So71s0336yHHnqoRvu5miVLlmjGjBmV9lksFqWmpjr1eIC78XR1AcDvVXp6um677Ta7tvDwcBdVY26Xr3Vpaany8/O1fft2TZkyRa+++qqWLVumrl272sYOGzZMPXr0qNH+z507p4kTJ0qS4uLifvN2jhzLEUuWLFFWVpbGjBlToW/Hjh1q0qTJda8BcCXCDuAiMTExio2N/U1jS0tLZbFY5OnJf7KOuPJaP/LII3ruuefUqVMnJSUlKTs7WyEhIZKkJk2aXPd//M+dOycfH59aOdbV3HPPPS49PlAbuI0FuJnNmzfLYrHo3Xff1bhx43TTTTfJarXq0KFDkqT169erS5cu8vf3l4+Pjzp27KgNGzZU2M+aNWvUpk0bWa1WRUdH69VXX61w2+TIkSOyWCyaP39+he0ru72RnZ2tAQMGKDg4WFarVS1atNA///nPSut/77339OKLLyo8PFz+/v7q2rWrDh48WOE4a9euVZcuXRQQECAfHx+1aNFCaWlpkqR3331XFotFO3bsqLDdP/7xD3l5eenkyZNXvaaViYyM1LRp01RYWKg5c+bY2iu7tbRx40bFxcWpUaNGql+/viIjI/XII4/o3LlzOnLkiBo3bixJmjhxou2W2eDBg+32l5mZqUcffVQNGzZU06ZNqzzWZStXrtQdd9yhevXq6Q9/+IPeeOMNu/7Lt+iOHDli1375+l++pRYXF6c1a9bo6NGjdrf0Lqvsc87KylKfPn3UsGFD1atXT23atNGCBQsqPc5v/ZwBVyLsAC5SVlamS5cu2S2/Nn78eB07dkxvvfWWPvroIwUHB2vRokXq3r27/P39tWDBAr3//vsKDAzUgw8+aBd4NmzYoD59+sjPz09Lly7V1KlT9f777ys9Pd3her/++mvdeeedysrK0rRp0/Txxx+rV69eevbZZ223cH7thRde0NGjR/Wvf/1Lb7/9trKzs5WYmKiysjLbmLlz56pnz54qLy+3neezzz6rEydOSJL69eun0NDQCoHq0qVLmjNnjvr27XtNt/569uwpDw8Pbd26tcoxR44cUa9eveTt7a158+Zp7dq1mjx5snx9fXXx4kWFhYVp7dq1kqShQ4dqx44d2rFjh1566SW7/SQlJemWW27R8uXL9dZbb1Vb1549ezRmzBg999xzWrlypTp06KDRo0fr1VdfrfE5vvnmm+rYsaNCQ0NttVUWHi87ePCgOnTooAMHDuiNN97QihUrdPvtt2vw4MF65ZVXKoz/LZ8z4HIGgFqVnp5uSKp0KS0tNTZt2mRIMu6//3677YqLi43AwEAjMTHRrr2srMxo3bq1cdddd9na7r77biM8PNw4f/68ra2goMAIDAw0fv2ffU5OjiHJSE9Pr1CnJGPChAm29QcffNBo0qSJcfbsWbtxzzzzjFGvXj3j9OnThmEYtvp79uxpN+799983JBk7duwwDMMwCgsLDX9/f6NTp05GeXl5lddrwoQJhre3t/HDDz/Y2pYtW2ZIMrZs2VLldobxn2u9c+fOKseEhIQYLVq0sDver6/RBx98YEgy9uzZU+U+fvzxxwrX68r9/f3vf6+y79eioqIMi8VS4XjdunUz/P39jeLiYrtzy8nJsRt3+fpv2rTJ1tarVy8jKiqq0tqvrLt///6G1Wo1jh07ZjcuISHB8PHxMX7++We741ztcwbcATM7gIssXLhQO3futFt+/UzOI488Yjf+888/1+nTp5WcnGw3G1ReXq4ePXpo586dKi4uVnFxsXbu3KmkpCTVq1fPtr2fn58SExMdqvXChQvasGGD+vbtKx8fH7vj9+zZUxcuXNAXX3xht03v3r3t1u+44w5J0tGjR23nU1BQoBEjRlT79tNf/vIXSdI777xja5s1a5ZatWql+++/36Hz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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.bar(numbers_frequency.index, numbers_frequency.values)\n", + "plt.xlabel('Value')\n", + "plt.ylabel('Frequency')\n", + "plt.title('Frequency Distribution')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 133, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'\\nyour comments here: it has much more answers than the data before. \\n'" + ] + }, + "execution_count": 133, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\"\"\"\n", + "your comments here: it has much more answers than the data before. \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": 134, + "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", + "
observation
068.0
112.0
245.0
338.0
449.0
......
99527.0
99647.0
99753.0
99833.0
99931.0
\n", + "

1000 rows × 1 columns

\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", + ".. ...\n", + "995 27.0\n", + "996 47.0\n", + "997 53.0\n", + "998 33.0\n", + "999 31.0\n", + "\n", + "[1000 rows x 1 columns]" + ] + }, + "execution_count": 134, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# your code here\n", + "age_population = pd.read_csv('ages_population.csv')\n", + "age_population" + ] + }, + { + "cell_type": "code", + "execution_count": 135, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "observation\n", + "39.0 45\n", + "41.0 36\n", + "30.0 34\n", + "35.0 33\n", + "43.0 32\n", + " ..\n", + "73.0 1\n", + "82.0 1\n", + "70.0 1\n", + "71.0 1\n", + "69.0 1\n", + "Name: count, Length: 72, dtype: int64" + ] + }, + "execution_count": 135, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "numbers_frequency = age_population[\"observation\"].value_counts()\n", + "frequency_numbers = {}\n", + "\n", + "for value in numbers:\n", + " if value in frequency_numbers:\n", + " frequency_numbers[value] += 1\n", + " else:\n", + " frequency_numbers[value] = 1\n", + "\n", + "numbers_frequency\n" + ] + }, + { + "cell_type": "code", + "execution_count": 136, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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Y665/6677pKfn5/+8pe/aOHChfrhhx88Ok/Oz/NaGjZsqKZNm7q19evXT6mpqdq1a5dH5y+oDRs2qFOnTqpWrZpb+6BBg3T+/PlcszrX+5wBX0GYAW6C+vXrq0WLFm7b1apUqeL2+ueff5Yk9e7dW6VKlXLbpk6dKmOMzpw5o7NnzyorK0uhoaG5zplXW0GcPn1aV65c0Ztvvpnr3N27d5ck/fLLL27vqVixottrp9MpSbpw4YIk6dSpU5J03RtgQ0JC1KdPH82bN0+ZmZnau3evvvrqKz3zzDMejeVq6enpOn369DUvVdWqVUvr1q1T5cqVNWLECNWqVUu1atXS66+/Xqhz5fw8r+Van93p06cLdd7COn36dJ61Zv+Mcp7/ep8z4Ct4fALwgpyzFZUqVZIkvfnmm/k+gRISEuJ68unkyZO59udsy565ycjIcGvP+QerfPnyKlGihJ544gmNGDEiz3OHh4dfYzS5Zd80m31/zLVER0frvffe06effqo1a9aoXLlyevzxxwt1vrysXr1amZmZ132c+v7779f999+vzMxM7dixQ2+++aZGjRqlkJAQ9e3bt0DnKszaNdf67LLDQ36fXc5QWVgVK1bUiRMncrVn32id/f8hYBvCDOAD7rvvPpUrV04HDx685qyEn5+f7rnnHq1YsULTp093/dFLS0vTZ5995tY3JCREpUuX1t69e93aP/30U7fXAQEB6tixo3bv3q0mTZrIz8/vhsfTpk0bBQcHa+7cuerbt+81/9g3b95cbdq00dSpU7V//3795S9/UZkyZW7o/EePHtXYsWMVHBysYcOGFeg9JUqUUKtWrVSvXj29//772rVrl/r27VvksxEHDhzQnj173C41LVmyRIGBgbr77rsl/b64niTt3btXdevWdfVbtWpVruM5nc4C19apUyetXLlSx48fd5uxWrRokQICAniUG9YizAA+oGzZsnrzzTc1cOBAnTlzRr1791blypV16tQp7dmzR6dOndKcOXMkSf/4xz/UtWtXdenSRWPGjFFmZqamTp2qMmXK6MyZM65jOhwO9e/fX++++65q1aqlpk2b6ptvvtGSJUtynf/1119X27Ztdf/99+vpp59WzZo1lZaWpu+++06fffaZNmzYUOjxzJgxQ0OHDlXnzp315z//WSEhIfruu++0Z88ezZo1y61/dHS0+vTp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n9dtt7n/6S9RooTr0Wxrx+ed+47tk/1o9vz5883BgwfNqFGjTJkyZcyRI0e8XVqhpKWlmd27d5vdu3cbSSY2Ntbs3r3b9Yj5lClTTHBwsFmxYoXZt2+f+dOf/uTzj+Rle/rpp01wcLDZtGmT22OV58+fd/WxdXzjxo0zW7ZsMUlJSWbv3r3mpZdeMrfddptZu3atMcbeceXn6qeZjLF3fGPGjDGbNm0yP/zwg/n666/NQw89ZAIDA13/btg6LmN+f4y+ZMmS5tVXXzWHDx8277//vgkICDCLFy929bF5fJmZmaZ69ermhRdeyLXP5nENHDjQ3HHHHa5Hs1esWGEqVapknn/+eVcfG8dHmCmEf/7zn6ZGjRrGz8/P3H333a5Hfm2yceNGIynXNnDgQGPM74/lTZgwwYSGhhqn02natWtn9u3b592iCyivcUkycXFxrj62jm/w4MGu//duv/1206lTJ1eQMcbeceUnZ5ixdXzZ63OUKlXKhIWFmV69epkDBw649ts6rmyfffaZadSokXE6naZevXrmrbfecttv8/j+9a9/GUnm0KFDufbZPK7U1FQTHR1tqlevbkqXLm3uvPNOM378eJORkeHqY+P4HMYY45UpIQAAgCLAPTMAAMBqhBkAAGA1wgwAALAaYQYAAFiNMAMAAKxGmAEAAFYjzAAAAKsRZgAAgNUIMwB8wrZt21SiRAl17drV26UAsAwrAAPwCUOHDlXZsmX1zjvv6ODBg6pevbq3SwJgCWZmAHhdenq6PvjgAz399NN66KGHtGDBArf9q1atUkREhPz9/dWxY0ctXLhQDodDv/76q6vPtm3b1K5dO/n7+6tatWoaOXKk0tPTXftnz56tiIgIlS5dWiEhIerdu/ctGh2Am40wA8Drli9frrp166pu3brq37+/4uLilD1pfOTIEfXu3VuPPvqoEhMTNWzYMI0fP97t/fv27dODDz6oXr16ae/evVq+fLm2bt2qZ555RpK0Y8cOjRw5Ui+//LIOHTqkNWvWqF27drd8nABuDi4zAfC6++67T//93/+t6OhoXblyRVWqVNHSpUvVuXNnvfjii1q9erX27dvn6v/Xv/5Vr776qs6ePaty5cppwIAB8vf317x581x9tm7dqvbt2ys9PV1ffPGFnnzySf34448KDAz0xhAB3ETMzADwqkOHDumbb75R3759JUklS5ZUnz599O6777r2t2zZ0u0999xzj9vrnTt3asGCBSpbtqxre/DBB5WVlaWkpCR16dJFNWrU0J133qknnnhC77//vs6fP39rBgjgpivp7QIA/LHNnz9fV65c0R133OFqM8aoVKlSOnv2rIwxcjgcbu/JOaGclZWlYcOGaeTIkbmOX716dfn5+WnXrl3atGmT1q5dq7///e+KiYlRQkKCypUrd1PGBeDWIcwA8JorV65o0aJFmjFjhiIjI932PfbYY3r//fdVr149ffHFF277duzY4fb67rvv1oEDB1S7du18z1WyZEl17txZnTt31oQJE1SuXDlt2LBBvXr1KroBAfAKwgwAr/n888919uxZDRkyRMHBwW77evfurfnz52vFihWKjY3VCy+8oCFDhigxMdH1tFP2jM0LL7yge++9VyNGjNCf//xnlSlTRv/5z38UHx+vN998U59//rl++OEHtWvXTuXLl9cXX3yhrKws1a1b91YPGcBNwD0zALxm/vz56ty5c64gI/0+M5OYmKizZ8/qo48+0ooVK9SkSRPNmTPH9TST0+mUJDVp0kSbN2/W4cOHdf/996tZs2b629/+pipVqkiSypUrpxUrVuiBBx5Q/fr1NXfuXC1dulQNGza8dYMFcNPwNBMA67z66quaO3eujh075u1SAPgALjMB8HmzZ89Wy5YtVbFiRf373//W9OnTXWvIAABhBoDPO3z4sF555RWdOXNG1atX15gxYzRu3DhvlwXAR3CZCQAAWI0bgAEAgNUIMwAAwGqEGQAAYDXCDAAAsBphBgAAWI0wAwAArEaYAQAAViPMAAAAqxFmAACA1f4/juoZb1H1joEAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.bar(numbers_frequency.index, numbers_frequency.values)\n", + "plt.xlabel('Ages')\n", + "plt.ylabel('Frequency')\n", + "plt.title('Frequency Distribution')\n", + "plt.show()" + ] + }, + { + "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": 137, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "36.56" + ] + }, + "execution_count": 137, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# your code here\n", + "age_population[\"observation\"].mean()" + ] + }, + { + "cell_type": "code", + "execution_count": 138, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "12.816499625976762" + ] + }, + "execution_count": 138, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "age_population[\"observation\"].std()" + ] + }, + { + "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": 140, + "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", + "
observation
025.0
131.0
229.0
331.0
429.0
......
99526.0
99622.0
99721.0
99819.0
99928.0
\n", + "

1000 rows × 1 columns

\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", + ".. ...\n", + "995 26.0\n", + "996 22.0\n", + "997 21.0\n", + "998 19.0\n", + "999 28.0\n", + "\n", + "[1000 rows x 1 columns]" + ] + }, + "execution_count": 140, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# your code here\n", + "age_population2 = pd.read_csv('ages_population2.csv')\n", + "age_population2" + ] + }, + { + "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": 141, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "27.155" + ] + }, + "execution_count": 141, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# your code here\n", + "age_population2[\"observation\"].mean()" + ] + }, + { + "cell_type": "code", + "execution_count": 142, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "2.969813932689186" + ] + }, + "execution_count": 142, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "age_population2[\"observation\"].std()" + ] + }, + { + "cell_type": "code", + "execution_count": 147, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'Very small standard deviation, which means that the values tend to be close to the mean, 27.155. So, I would say that the new data has much lower ages presented. '" + ] + }, + "execution_count": 147, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\"\"\"Very small standard deviation, which means that the values tend to be close to the mean, 27.155. So, I would say that the new data has much lower ages presented. \"\"\"" + ] + }, + { + "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": 148, + "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", + "
observation
021.0
121.0
224.0
331.0
454.0
......
99516.0
99655.0
99730.0
99835.0
99943.0
\n", + "

1000 rows × 1 columns

\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", + ".. ...\n", + "995 16.0\n", + "996 55.0\n", + "997 30.0\n", + "998 35.0\n", + "999 43.0\n", + "\n", + "[1000 rows x 1 columns]" + ] + }, + "execution_count": 148, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# your code here\n", + "age_population3 = pd.read_csv('ages_population3.csv.')\n", + "age_population3" + ] + }, + { + "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": 149, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "41.989" + ] + }, + "execution_count": 149, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# your code here\n", + "age_population3[\"observation\"].mean()" + ] + }, + { + "cell_type": "code", + "execution_count": 150, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "16.144705959865934" + ] + }, + "execution_count": 150, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "age_population3[\"observation\"].std()" + ] + }, + { + "cell_type": "code", + "execution_count": 152, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'High standard deviation.'" + ] + }, + "execution_count": 152, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\"\"\"High standard deviation.\"\"\"" + ] + }, + { + "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": 153, + "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" + ] + } + ], + "source": [ + "# your code here\n", + "q1 = np.quantile(age_population3,0.25)\n", + "print(f\"the first quartile is {q1}\")\n", + "\n", + "q2 = np.quantile(age_population3,0.50)\n", + "print(f\"the second quartile is {q2}\")\n", + "\n", + "q3 = np.quantile(age_population3,0.75)\n", + "print(f\"the third quartile is {q3}\")\n" + ] + }, + { + "cell_type": "code", + "execution_count": 154, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'\\nyour comments here\\n'" + ] + }, + "execution_count": 154, + "metadata": {}, + "output_type": "execute_result" + } + ], + "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": 157, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "the 0.15 quartile is 30.0\n", + "the 0.3 quartile is 40.0\n", + "the 0.45 quartile is 53.0\n", + "the 0.6 quartile is 53.0\n", + "the 0.8 quartile is 53.0\n", + "the 0.95 quartile is 53.0\n" + ] + } + ], + "source": [ + "# your code here\n", + "q01 = np.quantile(age_population3,0.15)\n", + "print(f\"the 0.15 quartile is {q1}\")\n", + "\n", + "q002 = np.quantile(age_population3,0.3)\n", + "print(f\"the 0.3 quartile is {q2}\")\n", + "\n", + "q02 = np.quantile(age_population3,0.45)\n", + "print(f\"the 0.45 quartile is {q3}\")\n", + "\n", + "\n", + "q03 = np.quantile(age_population3,0.6)\n", + "print(f\"the 0.6 quartile is {q3}\")\n", + "\n", + "\n", + "q003 = np.quantile(age_population3,0.8)\n", + "print(f\"the 0.8 quartile is {q3}\")\n", + "\n", + "\n", + "q4 = np.quantile(age_population3,0.95)\n", + "print(f\"the 0.95 quartile is {q3}\")\n", + "\n", + "\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 158, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'\\nyour comments here\\n'" + ] + }, + "execution_count": 158, + "metadata": {}, + "output_type": "execute_result" + } + ], + "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": 159, + "metadata": {}, + "outputs": [], + "source": [ + "# your code here" + ] + }, + { + "cell_type": "code", + "execution_count": 160, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'\\nyour comments here\\n'" + ] + }, + "execution_count": 160, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\"\"\"\n", + "your comments here\n", + "\"\"\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.5" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/your-code/ages_population.csv b/your-code/ages_population.csv new file mode 100644 index 0000000..64d8a0a --- /dev/null +++ b/your-code/ages_population.csv @@ -0,0 +1,1001 @@ +observation +68.0 +12.0 +45.0 +38.0 +49.0 +27.0 +39.0 +12.0 +42.0 +33.0 +30.0 +25.0 +30.0 +44.0 +53.0 +46.0 +50.0 +22.0 +6.0 +29.0 +29.0 +27.0 +35.0 +38.0 +28.0 +26.0 +60.0 +41.0 +38.0 +41.0 +44.0 +52.0 +46.0 +39.0 +44.0 +46.0 +32.0 +23.0 +15.0 +40.0 +42.0 +32.0 +45.0 +29.0 +22.0 +41.0 +39.0 +63.0 +39.0 +31.0 +34.0 +28.0 +45.0 +33.0 +32.0 +61.0 +64.0 +37.0 +56.0 +44.0 +33.0 +38.0 +40.0 +38.0 +56.0 +14.0 +52.0 +34.0 +14.0 +34.0 +31.0 +46.0 +50.0 +37.0 +13.0 +12.0 +25.0 +28.0 +51.0 +13.0 +36.0 +52.0 +13.0 +30.0 +36.0 +35.0 +26.0 +34.0 +51.0 +52.0 +35.0 +44.0 +23.0 +29.0 +25.0 +30.0 +27.0 +42.0 +18.0 +39.0 +42.0 +48.0 +30.0 +40.0 +34.0 +28.0 +48.0 +48.0 +42.0 +53.0 +34.0 +37.0 +32.0 +29.0 +18.0 +35.0 +58.0 +37.0 +32.0 +49.0 +20.0 +42.0 +29.0 +22.0 +39.0 +41.0 +54.0 +20.0 +19.0 +39.0 +39.0 +39.0 +58.0 +23.0 +45.0 +13.0 +44.0 +39.0 +30.0 +37.0 +62.0 +45.0 +33.0 +55.0 +33.0 +39.0 +34.0 +32.0 +25.0 +21.0 +39.0 +43.0 +18.0 +40.0 +50.0 +35.0 +46.0 +36.0 +30.0 +44.0 +34.0 +58.0 +14.0 +27.0 +62.0 +42.0 +27.0 +50.0 +29.0 +41.0 +30.0 +37.0 +43.0 +43.0 +49.0 +31.0 +17.0 +42.0 +48.0 +29.0 +38.0 +31.0 +20.0 +50.0 +26.0 +45.0 +56.0 +35.0 +48.0 +35.0 +55.0 +44.0 +23.0 +39.0 +39.0 +45.0 +21.0 +43.0 +38.0 +40.0 +35.0 +25.0 +7.0 +26.0 +40.0 +52.0 +46.0 +47.0 +38.0 +1.0 +16.0 +54.0 +45.0 +35.0 +54.0 +41.0 +12.0 +37.0 +50.0 +37.0 +24.0 +47.0 +39.0 +30.0 +41.0 +31.0 +23.0 +42.0 +24.0 +23.0 +31.0 +45.0 +53.0 +21.0 +59.0 +63.0 +41.0 +53.0 +59.0 +48.0 +57.0 +39.0 +32.0 +36.0 +21.0 +40.0 +51.0 +44.0 +59.0 +25.0 +52.0 +42.0 +8.0 +34.0 +43.0 +46.0 +36.0 +42.0 +46.0 +44.0 +29.0 +17.0 +56.0 +41.0 +30.0 +67.0 +41.0 +34.0 +42.0 +22.0 +19.0 +57.0 +16.0 +24.0 +26.0 +32.0 +35.0 +36.0 +26.0 +21.0 +20.0 +28.0 +19.0 +56.0 +41.0 +38.0 +42.0 +31.0 +30.0 +41.0 +31.0 +33.0 +42.0 +45.0 +62.0 +29.0 +41.0 +19.0 +42.0 +42.0 +54.0 +2.0 +40.0 +28.0 +42.0 +28.0 +26.0 +43.0 +32.0 +54.0 +34.0 +25.0 +32.0 +14.0 +66.0 +24.0 +43.0 +33.0 +29.0 +8.0 +43.0 +30.0 +34.0 +37.0 +40.0 +42.0 +48.0 +19.0 +35.0 +41.0 +26.0 +36.0 +23.0 +46.0 +35.0 +28.0 +39.0 +21.0 +4.0 +73.0 +43.0 +48.0 +20.0 +49.0 +28.0 +26.0 +34.0 +20.0 +39.0 +46.0 +37.0 +20.0 +29.0 +63.0 +36.0 +49.0 +36.0 +36.0 +34.0 +46.0 +44.0 +15.0 +38.0 +82.0 +48.0 +29.0 +49.0 +57.0 +16.0 +12.0 +36.0 +59.0 +49.0 +17.0 +25.0 +33.0 +37.0 +40.0 +43.0 +57.0 +43.0 +38.0 +35.0 +30.0 +14.0 +48.0 +24.0 +32.0 +47.0 +29.0 +50.0 +43.0 +55.0 +36.0 +49.0 +46.0 +45.0 +52.0 +36.0 +30.0 +33.0 +34.0 +18.0 +32.0 +40.0 +37.0 +36.0 +63.0 +44.0 +57.0 +35.0 +28.0 +57.0 +15.0 +40.0 +47.0 +17.0 +53.0 +39.0 +29.0 +47.0 +37.0 +30.0 +19.0 +66.0 +56.0 +8.0 +22.0 +43.0 +39.0 +21.0 +41.0 +54.0 +51.0 +37.0 +23.0 +56.0 +70.0 +39.0 +14.0 +60.0 +26.0 +30.0 +47.0 +52.0 +30.0 +54.0 +5.0 +22.0 +23.0 +34.0 +2.0 +34.0 +45.0 +31.0 +42.0 +47.0 +35.0 +36.0 +39.0 +41.0 +60.0 +42.0 +26.0 +45.0 +25.0 +32.0 +47.0 +36.0 +37.0 +40.0 +57.0 +40.0 +59.0 +31.0 +32.0 +63.0 +38.0 +41.0 +43.0 +17.0 +34.0 +28.0 +43.0 +51.0 +8.0 +30.0 +43.0 +24.0 +1.0 +16.0 +43.0 +27.0 +71.0 +50.0 +50.0 +9.0 +30.0 +15.0 +32.0 +50.0 +39.0 +24.0 +55.0 +38.0 +17.0 +36.0 +43.0 +40.0 +42.0 +37.0 +55.0 +31.0 +31.0 +31.0 +21.0 +43.0 +45.0 +36.0 +23.0 +32.0 +14.0 +16.0 +69.0 +11.0 +33.0 +36.0 +39.0 +19.0 +31.0 +26.0 +52.0 +41.0 +30.0 +31.0 +32.0 +35.0 +43.0 +52.0 +41.0 +17.0 +38.0 +28.0 +54.0 +42.0 +24.0 +39.0 +44.0 +31.0 +48.0 +6.0 +50.0 +27.0 +45.0 +28.0 +29.0 +43.0 +44.0 +14.0 +28.0 +15.0 +37.0 +61.0 +36.0 +35.0 +32.0 +34.0 +26.0 +37.0 +41.0 +59.0 +45.0 +46.0 +32.0 +30.0 +33.0 +27.0 +10.0 +42.0 +30.0 +54.0 +36.0 +44.0 +45.0 +54.0 +37.0 +40.0 +23.0 +66.0 +32.0 +39.0 +34.0 +46.0 +39.0 +38.0 +38.0 +50.0 +55.0 +30.0 +47.0 +41.0 +56.0 +39.0 +41.0 +27.0 +23.0 +30.0 +17.0 +45.0 +29.0 +42.0 +26.0 +22.0 +39.0 +23.0 +48.0 +51.0 +39.0 +52.0 +39.0 +41.0 +56.0 +38.0 +44.0 +33.0 +39.0 +44.0 +29.0 +49.0 +13.0 +53.0 +58.0 +27.0 +23.0 +27.0 +45.0 +12.0 +30.0 +40.0 +30.0 +49.0 +40.0 +32.0 +53.0 +37.0 +31.0 +46.0 +31.0 +22.0 +19.0 +12.0 +49.0 +47.0 +42.0 +38.0 +58.0 +43.0 +38.0 +42.0 +30.0 +45.0 +26.0 +38.0 +26.0 +46.0 +20.0 +29.0 +39.0 +37.0 +42.0 +43.0 +48.0 +55.0 +22.0 +26.0 +30.0 +55.0 +35.0 +51.0 +46.0 +38.0 +65.0 +55.0 +41.0 +30.0 +37.0 +27.0 +36.0 +42.0 +38.0 +20.0 +47.0 +31.0 +34.0 +35.0 +36.0 +5.0 +40.0 +41.0 +27.0 +47.0 +63.0 +35.0 +32.0 +27.0 +50.0 +39.0 +38.0 +36.0 +17.0 +27.0 +45.0 +30.0 +28.0 +43.0 +33.0 +45.0 +20.0 +29.0 +48.0 +20.0 +44.0 +42.0 +60.0 +25.0 +48.0 +41.0 +39.0 +11.0 +35.0 +43.0 +51.0 +24.0 +33.0 +22.0 +21.0 +45.0 +48.0 +56.0 +25.0 +33.0 +36.0 +53.0 +51.0 +42.0 +15.0 +32.0 +22.0 +59.0 +54.0 +32.0 +39.0 +47.0 +17.0 +28.0 +29.0 +56.0 +34.0 +28.0 +44.0 +67.0 +26.0 +25.0 +23.0 +56.0 +52.0 +25.0 +49.0 +26.0 +39.0 +63.0 +48.0 +48.0 +30.0 +37.0 +46.0 +14.0 +15.0 +44.0 +39.0 +40.0 +22.0 +30.0 +39.0 +43.0 +46.0 +35.0 +16.0 +44.0 +18.0 +26.0 +27.0 +37.0 +20.0 +35.0 +50.0 +55.0 +45.0 +41.0 +54.0 +56.0 +46.0 +56.0 +24.0 +33.0 +12.0 +31.0 +12.0 +25.0 +49.0 +52.0 +55.0 +27.0 +49.0 +44.0 +49.0 +40.0 +34.0 +16.0 +19.0 +36.0 +32.0 +67.0 +52.0 +38.0 +33.0 +68.0 +14.0 +43.0 +10.0 +11.0 +39.0 +13.0 +54.0 +41.0 +40.0 +18.0 +16.0 +45.0 +35.0 +39.0 +34.0 +46.0 +53.0 +23.0 +55.0 +37.0 +29.0 +48.0 +35.0 +45.0 +68.0 +29.0 +40.0 +33.0 +64.0 +45.0 +10.0 +47.0 +23.0 +39.0 +20.0 +41.0 +36.0 +41.0 +25.0 +46.0 +49.0 +28.0 +40.0 +58.0 +46.0 +37.0 +41.0 +38.0 +35.0 +31.0 +30.0 +35.0 +34.0 +15.0 +58.0 +41.0 +59.0 +32.0 +12.0 +27.0 +41.0 +37.0 +47.0 +49.0 +47.0 +53.0 +35.0 +38.0 +24.0 +50.0 +27.0 +27.0 +26.0 +24.0 +30.0 +43.0 +35.0 +22.0 +22.0 +32.0 +37.0 +55.0 +27.0 +36.0 +50.0 +21.0 +45.0 +27.0 +53.0 +41.0 +28.0 +45.0 +39.0 +43.0 +29.0 +18.0 +34.0 +19.0 +26.0 +32.0 +65.0 +38.0 +24.0 +27.0 +24.0 +19.0 +49.0 +25.0 +41.0 +22.0 +31.0 +24.0 +21.0 +8.0 +56.0 +42.0 +43.0 +62.0 +22.0 +67.0 +38.0 +43.0 +41.0 +34.0 +38.0 +21.0 +35.0 +28.0 +27.0 +21.0 +40.0 +44.0 +25.0 +40.0 +29.0 +39.0 +25.0 +33.0 +37.0 +35.0 +26.0 +34.0 +43.0 +39.0 +32.0 +33.0 +24.0 +24.0 +25.0 +36.0 +49.0 +31.0 +12.0 +9.0 +35.0 +21.0 +36.0 +37.0 +34.0 +24.0 +35.0 +38.0 +33.0 +42.0 +32.0 +29.0 +36.0 +40.0 +27.0 +47.0 +53.0 +33.0 +31.0 diff --git a/your-code/ages_population2.csv b/your-code/ages_population2.csv new file mode 100644 index 0000000..00860cb --- /dev/null +++ b/your-code/ages_population2.csv @@ -0,0 +1,1001 @@ +observation +25.0 +31.0 +29.0 +31.0 +29.0 +29.0 +28.0 +30.0 +24.0 +26.0 +30.0 +29.0 +24.0 +26.0 +30.0 +25.0 +25.0 +30.0 +21.0 +29.0 +25.0 +28.0 +27.0 +27.0 +31.0 +27.0 +26.0 +24.0 +29.0 +23.0 +31.0 +26.0 +28.0 +22.0 +28.0 +31.0 +29.0 +22.0 +28.0 +25.0 +26.0 +32.0 +26.0 +28.0 +29.0 +31.0 +27.0 +25.0 +24.0 +30.0 +27.0 +22.0 +25.0 +28.0 +25.0 +31.0 +27.0 +30.0 +28.0 +27.0 +29.0 +26.0 +28.0 +26.0 +22.0 +30.0 +27.0 +31.0 +27.0 +24.0 +27.0 +28.0 +23.0 +20.0 +23.0 +25.0 +29.0 +33.0 +27.0 +25.0 +25.0 +26.0 +31.0 +28.0 +29.0 +23.0 +30.0 +26.0 +27.0 +24.0 +29.0 +26.0 +28.0 +24.0 +25.0 +21.0 +19.0 +26.0 +28.0 +28.0 +24.0 +28.0 +30.0 +27.0 +29.0 +26.0 +28.0 +31.0 +32.0 +25.0 +30.0 +30.0 +24.0 +22.0 +29.0 +25.0 +21.0 +30.0 +30.0 +29.0 +29.0 +22.0 +33.0 +31.0 +26.0 +25.0 +28.0 +31.0 +28.0 +28.0 +31.0 +23.0 +33.0 +25.0 +33.0 +23.0 +30.0 +27.0 +24.0 +29.0 +24.0 +28.0 +23.0 +24.0 +32.0 +29.0 +31.0 +34.0 +31.0 +27.0 +26.0 +28.0 +26.0 +28.0 +26.0 +33.0 +29.0 +22.0 +26.0 +25.0 +28.0 +29.0 +28.0 +28.0 +31.0 +25.0 +30.0 +26.0 +26.0 +30.0 +27.0 +23.0 +29.0 +30.0 +25.0 +32.0 +27.0 +29.0 +28.0 +27.0 +27.0 +23.0 +23.0 +27.0 +25.0 +27.0 +35.0 +30.0 +27.0 +27.0 +28.0 +30.0 +26.0 +32.0 +21.0 +29.0 +28.0 +31.0 +31.0 +28.0 +27.0 +31.0 +26.0 +24.0 +28.0 +28.0 +26.0 +26.0 +24.0 +28.0 +25.0 +29.0 +26.0 +24.0 +30.0 +25.0 +29.0 +30.0 +29.0 +26.0 +28.0 +25.0 +29.0 +29.0 +31.0 +26.0 +23.0 +25.0 +24.0 +27.0 +23.0 +28.0 +31.0 +26.0 +25.0 +31.0 +29.0 +24.0 +28.0 +26.0 +27.0 +25.0 +27.0 +31.0 +29.0 +29.0 +29.0 +32.0 +24.0 +30.0 +28.0 +27.0 +22.0 +29.0 +21.0 +25.0 +27.0 +24.0 +23.0 +33.0 +23.0 +30.0 +25.0 +35.0 +26.0 +23.0 +27.0 +30.0 +27.0 +28.0 +24.0 +27.0 +20.0 +29.0 +31.0 +23.0 +29.0 +29.0 +31.0 +25.0 +24.0 +23.0 +23.0 +20.0 +28.0 +28.0 +28.0 +27.0 +36.0 +20.0 +31.0 +28.0 +29.0 +30.0 +33.0 +28.0 +25.0 +29.0 +28.0 +26.0 +23.0 +26.0 +34.0 +29.0 +30.0 +28.0 +29.0 +27.0 +26.0 +30.0 +33.0 +25.0 +25.0 +24.0 +25.0 +29.0 +34.0 +24.0 +34.0 +27.0 +27.0 +28.0 +30.0 +27.0 +26.0 +21.0 +21.0 +19.0 +29.0 +28.0 +32.0 +29.0 +28.0 +27.0 +24.0 +28.0 +30.0 +26.0 +29.0 +24.0 +27.0 +32.0 +29.0 +31.0 +31.0 +24.0 +30.0 +26.0 +24.0 +27.0 +23.0 +25.0 +28.0 +28.0 +31.0 +24.0 +21.0 +28.0 +23.0 +28.0 +25.0 +26.0 +24.0 +28.0 +23.0 +24.0 +24.0 +31.0 +30.0 +26.0 +28.0 +28.0 +25.0 +28.0 +25.0 +28.0 +29.0 +27.0 +27.0 +33.0 +25.0 +29.0 +25.0 +25.0 +25.0 +32.0 +26.0 +28.0 +32.0 +29.0 +25.0 +30.0 +28.0 +26.0 +27.0 +20.0 +26.0 +30.0 +31.0 +29.0 +23.0 +27.0 +29.0 +28.0 +27.0 +23.0 +26.0 +29.0 +31.0 +27.0 +26.0 +33.0 +25.0 +26.0 +26.0 +30.0 +30.0 +26.0 +28.0 +26.0 +29.0 +28.0 +31.0 +29.0 +31.0 +23.0 +23.0 +28.0 +27.0 +26.0 +29.0 +26.0 +25.0 +30.0 +27.0 +25.0 +27.0 +24.0 +28.0 +29.0 +21.0 +24.0 +27.0 +26.0 +28.0 +30.0 +22.0 +25.0 +22.0 +25.0 +31.0 +29.0 +22.0 +20.0 +30.0 +28.0 +30.0 +29.0 +32.0 +27.0 +31.0 +26.0 +30.0 +23.0 +25.0 +28.0 +26.0 +29.0 +34.0 +26.0 +27.0 +33.0 +27.0 +25.0 +30.0 +30.0 +26.0 +25.0 +26.0 +30.0 +21.0 +25.0 +27.0 +29.0 +24.0 +22.0 +30.0 +23.0 +33.0 +28.0 +29.0 +22.0 +29.0 +28.0 +27.0 +26.0 +25.0 +29.0 +27.0 +32.0 +30.0 +24.0 +24.0 +26.0 +30.0 +26.0 +24.0 +28.0 +30.0 +20.0 +20.0 +28.0 +29.0 +26.0 +24.0 +25.0 +29.0 +26.0 +30.0 +25.0 +29.0 +27.0 +28.0 +28.0 +25.0 +36.0 +25.0 +30.0 +26.0 +20.0 +26.0 +22.0 +23.0 +27.0 +25.0 +24.0 +28.0 +27.0 +25.0 +28.0 +26.0 +24.0 +29.0 +22.0 +29.0 +30.0 +25.0 +26.0 +31.0 +22.0 +29.0 +32.0 +27.0 +28.0 +30.0 +29.0 +27.0 +27.0 +26.0 +27.0 +32.0 +30.0 +29.0 +28.0 +29.0 +28.0 +31.0 +33.0 +22.0 +30.0 +27.0 +30.0 +25.0 +29.0 +30.0 +28.0 +28.0 +25.0 +26.0 +26.0 +24.0 +25.0 +26.0 +23.0 +32.0 +31.0 +22.0 +28.0 +22.0 +29.0 +27.0 +29.0 +27.0 +24.0 +27.0 +32.0 +26.0 +24.0 +24.0 +26.0 +33.0 +23.0 +23.0 +27.0 +30.0 +31.0 +27.0 +24.0 +26.0 +31.0 +27.0 +26.0 +30.0 +27.0 +28.0 +31.0 +35.0 +30.0 +30.0 +28.0 +26.0 +22.0 +32.0 +28.0 +28.0 +26.0 +22.0 +27.0 +24.0 +27.0 +30.0 +32.0 +30.0 +28.0 +27.0 +28.0 +28.0 +20.0 +32.0 +26.0 +31.0 +27.0 +25.0 +26.0 +24.0 +29.0 +31.0 +29.0 +27.0 +26.0 +23.0 +27.0 +25.0 +28.0 +28.0 +24.0 +29.0 +30.0 +26.0 +29.0 +22.0 +28.0 +28.0 +28.0 +25.0 +28.0 +25.0 +29.0 +31.0 +33.0 +28.0 +26.0 +28.0 +31.0 +29.0 +25.0 +27.0 +28.0 +30.0 +26.0 +21.0 +29.0 +22.0 +31.0 +30.0 +33.0 +29.0 +21.0 +26.0 +30.0 +32.0 +25.0 +26.0 +31.0 +24.0 +24.0 +27.0 +29.0 +28.0 +28.0 +23.0 +30.0 +29.0 +25.0 +24.0 +30.0 +22.0 +29.0 +23.0 +26.0 +30.0 +27.0 +24.0 +33.0 +31.0 +25.0 +24.0 +30.0 +23.0 +27.0 +26.0 +26.0 +25.0 +30.0 +28.0 +33.0 +23.0 +28.0 +25.0 +33.0 +28.0 +31.0 +26.0 +22.0 +30.0 +28.0 +28.0 +24.0 +29.0 +28.0 +28.0 +30.0 +21.0 +32.0 +30.0 +27.0 +24.0 +26.0 +25.0 +25.0 +31.0 +29.0 +27.0 +23.0 +29.0 +29.0 +28.0 +26.0 +24.0 +29.0 +32.0 +25.0 +25.0 +26.0 +29.0 +27.0 +27.0 +28.0 +26.0 +29.0 +25.0 +29.0 +23.0 +27.0 +31.0 +27.0 +28.0 +28.0 +25.0 +21.0 +23.0 +29.0 +24.0 +29.0 +30.0 +28.0 +30.0 +29.0 +25.0 +25.0 +28.0 +26.0 +27.0 +27.0 +28.0 +25.0 +32.0 +26.0 +29.0 +28.0 +24.0 +28.0 +27.0 +24.0 +31.0 +27.0 +29.0 +26.0 +33.0 +26.0 +30.0 +32.0 +28.0 +25.0 +25.0 +27.0 +28.0 +30.0 +25.0 +33.0 +21.0 +31.0 +30.0 +26.0 +28.0 +29.0 +27.0 +24.0 +27.0 +27.0 +27.0 +26.0 +27.0 +32.0 +25.0 +30.0 +22.0 +25.0 +34.0 +26.0 +27.0 +33.0 +26.0 +27.0 +28.0 +24.0 +26.0 +25.0 +26.0 +25.0 +24.0 +29.0 +27.0 +25.0 +26.0 +22.0 +24.0 +22.0 +26.0 +32.0 +29.0 +27.0 +31.0 +26.0 +27.0 +34.0 +32.0 +26.0 +30.0 +24.0 +27.0 +24.0 +30.0 +31.0 +28.0 +27.0 +27.0 +29.0 +30.0 +28.0 +29.0 +24.0 +24.0 +29.0 +30.0 +31.0 +28.0 +27.0 +29.0 +28.0 +30.0 +26.0 +20.0 +28.0 +24.0 +28.0 +26.0 +20.0 +28.0 +32.0 +24.0 +27.0 +28.0 +24.0 +26.0 +29.0 +26.0 +28.0 +24.0 +29.0 +29.0 +30.0 +26.0 +24.0 +27.0 +24.0 +29.0 +26.0 +22.0 +26.0 +31.0 +27.0 +24.0 +30.0 +27.0 +24.0 +27.0 +28.0 +31.0 +28.0 +27.0 +22.0 +27.0 +32.0 +26.0 +30.0 +25.0 +32.0 +25.0 +26.0 +28.0 +26.0 +27.0 +26.0 +29.0 +29.0 +24.0 +22.0 +22.0 +26.0 +27.0 +32.0 +29.0 +27.0 +27.0 +25.0 +30.0 +30.0 +27.0 +28.0 +27.0 +26.0 +23.0 +22.0 +31.0 +28.0 +25.0 +28.0 +27.0 +29.0 +28.0 +24.0 +31.0 +28.0 +28.0 +24.0 +29.0 +26.0 +30.0 +27.0 +20.0 +25.0 +22.0 +28.0 +25.0 +29.0 +21.0 +27.0 +27.0 +25.0 +27.0 +25.0 +26.0 +25.0 +27.0 +26.0 +22.0 +21.0 +19.0 +28.0 diff --git a/your-code/ages_population3.csv b/your-code/ages_population3.csv new file mode 100644 index 0000000..6339a1d --- /dev/null +++ b/your-code/ages_population3.csv @@ -0,0 +1,1001 @@ +observation +21.0 +21.0 +24.0 +31.0 +54.0 +52.0 +37.0 +69.0 +36.0 +30.0 +64.0 +30.0 +76.0 +73.0 +42.0 +52.0 +67.0 +28.0 +24.0 +50.0 +70.0 +57.0 +20.0 +27.0 +51.0 +67.0 +56.0 +30.0 +52.0 +44.0 +49.0 +31.0 +64.0 +65.0 +32.0 +37.0 +37.0 +18.0 +65.0 +42.0 +45.0 +40.0 +66.0 +72.0 +43.0 +64.0 +43.0 +54.0 +48.0 +30.0 +35.0 +41.0 +17.0 +44.0 +32.0 +37.0 +45.0 +41.0 +23.0 +45.0 +69.0 +36.0 +47.0 +31.0 +33.0 +51.0 +27.0 +20.0 +15.0 +26.0 +28.0 +67.0 +36.0 +54.0 +17.0 +51.0 +75.0 +41.0 +29.0 +55.0 +37.0 +63.0 +42.0 +49.0 +32.0 +39.0 +46.0 +50.0 +32.0 +43.0 +45.0 +26.0 +22.0 +15.0 +26.0 +24.0 +71.0 +55.0 +68.0 +35.0 +40.0 +55.0 +21.0 +60.0 +41.0 +22.0 +34.0 +30.0 +56.0 +61.0 +51.0 +33.0 +47.0 +48.0 +26.0 +30.0 +56.0 +42.0 +66.0 +50.0 +57.0 +12.0 +20.0 +69.0 +47.0 +38.0 +68.0 +41.0 +33.0 +29.0 +63.0 +38.0 +55.0 +39.0 +44.0 +74.0 +40.0 +35.0 +49.0 +37.0 +34.0 +25.0 +15.0 +70.0 +20.0 +35.0 +23.0 +54.0 +29.0 +27.0 +37.0 +27.0 +32.0 +34.0 +71.0 +38.0 +32.0 +65.0 +50.0 +23.0 +72.0 +48.0 +32.0 +52.0 +43.0 +34.0 +26.0 +42.0 +53.0 +54.0 +48.0 +23.0 +24.0 +37.0 +64.0 +70.0 +21.0 +50.0 +47.0 +67.0 +44.0 +63.0 +44.0 +12.0 +62.0 +48.0 +62.0 +70.0 +39.0 +25.0 +41.0 +59.0 +32.0 +43.0 +35.0 +63.0 +70.0 +36.0 +61.0 +38.0 +44.0 +48.0 +30.0 +31.0 +29.0 +31.0 +35.0 +50.0 +19.0 +45.0 +68.0 +18.0 +47.0 +32.0 +36.0 +36.0 +27.0 +37.0 +77.0 +64.0 +35.0 +48.0 +29.0 +37.0 +48.0 +39.0 +46.0 +72.0 +32.0 +49.0 +39.0 +20.0 +33.0 +41.0 +39.0 +52.0 +41.0 +35.0 +69.0 +25.0 +50.0 +14.0 +48.0 +30.0 +39.0 +69.0 +53.0 +43.0 +37.0 +37.0 +39.0 +32.0 +24.0 +19.0 +50.0 +17.0 +53.0 +36.0 +16.0 +29.0 +64.0 +36.0 +32.0 +1.0 +43.0 +26.0 +32.0 +40.0 +72.0 +35.0 +33.0 +24.0 +32.0 +38.0 +67.0 +29.0 +52.0 +55.0 +67.0 +22.0 +18.0 +41.0 +34.0 +65.0 +17.0 +50.0 +16.0 +45.0 +65.0 +46.0 +45.0 +31.0 +52.0 +71.0 +53.0 +52.0 +11.0 +23.0 +71.0 +52.0 +31.0 +27.0 +34.0 +51.0 +74.0 +19.0 +16.0 +25.0 +36.0 +13.0 +59.0 +50.0 +40.0 +45.0 +50.0 +43.0 +32.0 +36.0 +40.0 +42.0 +27.0 +33.0 +29.0 +75.0 +67.0 +42.0 +19.0 +47.0 +16.0 +46.0 +45.0 +35.0 +28.0 +36.0 +37.0 +59.0 +40.0 +45.0 +30.0 +35.0 +40.0 +44.0 +55.0 +28.0 +9.0 +28.0 +65.0 +31.0 +37.0 +28.0 +28.0 +40.0 +10.0 +48.0 +39.0 +69.0 +66.0 +54.0 +39.0 +65.0 +56.0 +19.0 +38.0 +21.0 +21.0 +24.0 +41.0 +50.0 +21.0 +69.0 +67.0 +27.0 +43.0 +57.0 +27.0 +39.0 +30.0 +51.0 +35.0 +20.0 +39.0 +35.0 +59.0 +60.0 +47.0 +24.0 +32.0 +46.0 +72.0 +69.0 +49.0 +33.0 +50.0 +35.0 +45.0 +52.0 +28.0 +70.0 +27.0 +67.0 +31.0 +28.0 +19.0 +71.0 +29.0 +41.0 +67.0 +32.0 +63.0 +19.0 +66.0 +71.0 +67.0 +18.0 +32.0 +2.0 +53.0 +71.0 +43.0 +70.0 +25.0 +66.0 +22.0 +33.0 +48.0 +38.0 +72.0 +24.0 +32.0 +39.0 +32.0 +22.0 +19.0 +59.0 +44.0 +36.0 +31.0 +69.0 +70.0 +46.0 +12.0 +31.0 +52.0 +25.0 +48.0 +17.0 +24.0 +40.0 +24.0 +41.0 +15.0 +46.0 +41.0 +44.0 +33.0 +64.0 +48.0 +68.0 +36.0 +41.0 +48.0 +32.0 +69.0 +66.0 +38.0 +25.0 +24.0 +43.0 +8.0 +60.0 +17.0 +23.0 +32.0 +68.0 +59.0 +39.0 +51.0 +64.0 +51.0 +25.0 +36.0 +56.0 +67.0 +56.0 +42.0 +48.0 +45.0 +14.0 +17.0 +15.0 +24.0 +60.0 +73.0 +65.0 +40.0 +35.0 +70.0 +34.0 +48.0 +45.0 +32.0 +38.0 +48.0 +49.0 +44.0 +43.0 +73.0 +69.0 +34.0 +24.0 +52.0 +46.0 +30.0 +38.0 +36.0 +34.0 +35.0 +68.0 +20.0 +45.0 +34.0 +70.0 +44.0 +56.0 +65.0 +69.0 +58.0 +72.0 +34.0 +21.0 +48.0 +20.0 +49.0 +34.0 +23.0 +67.0 +61.0 +32.0 +64.0 +49.0 +39.0 +63.0 +74.0 +67.0 +65.0 +50.0 +69.0 +34.0 +68.0 +38.0 +31.0 +37.0 +26.0 +23.0 +67.0 +29.0 +30.0 +26.0 +38.0 +68.0 +45.0 +54.0 +34.0 +32.0 +66.0 +43.0 +66.0 +27.0 +46.0 +28.0 +32.0 +32.0 +22.0 +40.0 +43.0 +63.0 +37.0 +17.0 +23.0 +27.0 +40.0 +36.0 +30.0 +29.0 +30.0 +30.0 +35.0 +42.0 +31.0 +37.0 +20.0 +30.0 +57.0 +17.0 +18.0 +68.0 +41.0 +39.0 +13.0 +69.0 +39.0 +28.0 +53.0 +42.0 +36.0 +47.0 +63.0 +42.0 +37.0 +18.0 +69.0 +35.0 +46.0 +35.0 +18.0 +49.0 +47.0 +38.0 +27.0 +34.0 +57.0 +29.0 +38.0 +39.0 +57.0 +33.0 +36.0 +40.0 +49.0 +48.0 +54.0 +39.0 +49.0 +37.0 +49.0 +66.0 +70.0 +29.0 +61.0 +4.0 +37.0 +36.0 +18.0 +38.0 +66.0 +44.0 +35.0 +31.0 +31.0 +38.0 +67.0 +52.0 +35.0 +51.0 +54.0 +43.0 +40.0 +51.0 +21.0 +40.0 +61.0 +31.0 +22.0 +41.0 +73.0 +68.0 +63.0 +30.0 +46.0 +40.0 +12.0 +15.0 +26.0 +39.0 +70.0 +36.0 +67.0 +45.0 +38.0 +68.0 +43.0 +28.0 +58.0 +52.0 +53.0 +44.0 +73.0 +49.0 +26.0 +34.0 +37.0 +38.0 +47.0 +52.0 +35.0 +29.0 +51.0 +36.0 +4.0 +28.0 +30.0 +38.0 +37.0 +22.0 +74.0 +35.0 +39.0 +73.0 +65.0 +30.0 +66.0 +70.0 +58.0 +35.0 +21.0 +61.0 +66.0 +41.0 +42.0 +64.0 +31.0 +67.0 +38.0 +46.0 +68.0 +65.0 +37.0 +36.0 +40.0 +31.0 +48.0 +46.0 +50.0 +47.0 +53.0 +28.0 +41.0 +68.0 +56.0 +26.0 +41.0 +63.0 +69.0 +67.0 +24.0 +25.0 +43.0 +67.0 +32.0 +32.0 +30.0 +65.0 +44.0 +52.0 +11.0 +25.0 +60.0 +49.0 +25.0 +33.0 +44.0 +10.0 +23.0 +22.0 +29.0 +22.0 +19.0 +58.0 +71.0 +33.0 +66.0 +31.0 +64.0 +28.0 +53.0 +33.0 +45.0 +21.0 +68.0 +37.0 +19.0 +48.0 +51.0 +35.0 +40.0 +53.0 +71.0 +51.0 +27.0 +60.0 +21.0 +45.0 +74.0 +46.0 +29.0 +44.0 +66.0 +55.0 +31.0 +48.0 +31.0 +39.0 +24.0 +55.0 +70.0 +24.0 +41.0 +68.0 +25.0 +39.0 +35.0 +39.0 +45.0 +29.0 +48.0 +65.0 +49.0 +34.0 +68.0 +43.0 +39.0 +32.0 +26.0 +47.0 +25.0 +37.0 +53.0 +37.0 +66.0 +57.0 +32.0 +44.0 +34.0 +47.0 +46.0 +24.0 +70.0 +56.0 +27.0 +28.0 +19.0 +38.0 +45.0 +35.0 +71.0 +53.0 +41.0 +65.0 +25.0 +46.0 +5.0 +14.0 +15.0 +35.0 +50.0 +30.0 +58.0 +46.0 +27.0 +45.0 +37.0 +50.0 +45.0 +40.0 +32.0 +20.0 +38.0 +46.0 +22.0 +50.0 +42.0 +66.0 +34.0 +32.0 +29.0 +30.0 +62.0 +66.0 +16.0 +63.0 +51.0 +25.0 +53.0 +41.0 +35.0 +37.0 +33.0 +25.0 +32.0 +55.0 +29.0 +36.0 +45.0 +14.0 +49.0 +32.0 +38.0 +37.0 +21.0 +29.0 +52.0 +46.0 +42.0 +57.0 +46.0 +58.0 +18.0 +48.0 +71.0 +41.0 +50.0 +43.0 +26.0 +30.0 +27.0 +47.0 +43.0 +38.0 +64.0 +36.0 +39.0 +74.0 +39.0 +56.0 +2.0 +39.0 +70.0 +34.0 +47.0 +59.0 +66.0 +36.0 +33.0 +41.0 +55.0 +66.0 +29.0 +77.0 +63.0 +68.0 +50.0 +50.0 +17.0 +24.0 +16.0 +59.0 +70.0 +16.0 +33.0 +41.0 +32.0 +40.0 +26.0 +7.0 +27.0 +29.0 +29.0 +19.0 +70.0 +23.0 +27.0 +36.0 +55.0 +21.0 +15.0 +14.0 +46.0 +37.0 +67.0 +29.0 +28.0 +33.0 +46.0 +55.0 +35.0 +49.0 +72.0 +20.0 +45.0 +69.0 +16.0 +53.0 +39.0 +38.0 +49.0 +25.0 +43.0 +28.0 +32.0 +67.0 +29.0 +70.0 +26.0 +48.0 +37.0 +16.0 +55.0 +30.0 +35.0 +43.0 diff --git a/your-code/lab.ipynb b/your-code/lab.ipynb new file mode 100644 index 0000000..989983a --- /dev/null +++ b/your-code/lab.ipynb @@ -0,0 +1,1653 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Understanding Descriptive Statistics\n", + "\n", + "Import the necessary libraries here:" + ] + }, + { + "cell_type": "code", + "execution_count": 73, + "metadata": {}, + "outputs": [], + "source": [ + "# Libraries\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import pandas as pd" + ] + }, + { + "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": 108, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([1, 2, 2, 1, 3, 4, 5, 1, 2, 2])" + ] + }, + "execution_count": 108, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# your code here\n", + "def game_dice():\n", + " data = np.random.randint(1,6,size = 10)\n", + " return data \n", + "\n", + "numbers =game_dice()\n", + "numbers" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 2.- Plot the results sorted by value." + ] + }, + { + "cell_type": "code", + "execution_count": 109, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([1, 1, 2, 2, 2, 3, 4, 5, 5, 5])" + ] + }, + "execution_count": 109, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# your code here\n", + "output = game_dice()\n", + "output_sorted = np.sort(output)\n", + "output_sorted" + ] + }, + { + "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": 115, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{1: 3, 2: 4, 3: 1, 4: 1, 5: 1}\n" + ] + } + ], + "source": [ + "numbers_frequency = {}\n", + "\n", + "for value in numbers:\n", + " if value in numbers_frequency:\n", + " numbers_frequency[value] += 1\n", + " else:\n", + " numbers_frequency[value] = 1\n", + "print(numbers_frequency)" + ] + }, + { + "cell_type": "code", + "execution_count": 116, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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7t27q1+/fi5dz48ZhlHt9l69esnT01O/+tWvtGrVKv3nP/9x6Tw//TyrExUVpZ49ezq1PfbYYyopKdGBAwdcOn9N7dixQ7GxsWrfvr1T+5NPPqlLly5VGvW50ecMuAvCDdAAIiMj1bt3b6flx0JCQpzWz5w5I0l69NFH1bRpU6dl/vz5MgxD58+f13fffaerV68qODi40jmraquJc+fOqby8XK+99lqlc8fHx0uSzp4967RPQECA07qXl5ck6b///a8k6dtvv5WkG06oDQoK0ujRo7Vs2TJVVFTo0KFD2r17t5555hmXruXHSktLde7cuWofbXXu3Fkff/yxAgMDNXXqVHXu3FmdO3fWq6++Wqtz/fTzrE51n925c+dqdd7aOnfuXJW1XrtHPz3/jT5nwF3wOgbgBn46mtGmTRtJ0muvvXbdN1yCgoIcb1YVFhZW2v7TtmsjO3a73an9p3/AWrVqpSZNmmjs2LGaOnVqlecODw+v5moquzYJ99r8murMmDFDa9as0YcffqitW7eqZcuWevzxx2t1vqps3rxZFRUVN3x9u2/fvurbt68qKiqUk5Oj1157TTNnzlRQUJDGjBlTo3PV5rtzqvvsroWJ6312Pw2ZtRUQEKCCgoJK7dcmbl/7/xBobAg3gBu6//771bJlS/3rX/+qdtTC09NTP/vZz/T+++9rwYIFjj+CFy5c0KZNm5z6BgUFydvbW4cOHXJq//DDD53WfXx8NHDgQOXm5qpHjx7y9PS86evp06eP/P39lZqaqjFjxlT7xz86Olp9+vTR/PnzdeTIEf3qV79S8+bNb+r8eXl5SkpKkr+/v37961/XaJ8mTZro5z//ue666y797W9/04EDBzRmzJg6H634/PPP9dlnnzk9mlq7dq18fX11zz33SPrhy/4k6dChQ4qIiHD027hxY6XjeXl51bi22NhYbdiwQadPn3Ya0Vq9erV8fHx4dRyNFuEGcEMtWrTQa6+9pvHjx+v8+fN69NFHFRgYqG+//VafffaZvv32W6WkpEiSXnrpJT300EMaPHiwnn32WVVUVGj+/Plq3ry5zp8/7zimzWbTE088oZUrV6pz587q2bOn/vnPf2rt2rWVzv/qq6/qgQceUN++ffWb3/xGHTt21IULF/TVV19p06ZN2rFjR62v55VXXtGkSZM0aNAgPf300woKCtJXX32l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du1aZd/CwkIFBQU5tQUFBam8vFxnz55VSEhIpX3sdrvsdrtjvaSkpG4vAAAAuBXTw01ERIQOHjyo77//XhkZGRo/fryysrKuG3BsNpvTumEYVbZfk5ycrLlz59Zt0dXo+L+bG+xcjd2JecPMLgEAYEGmP5by9PRUly5d1Lt3byUnJ6tnz5569dVXq+wbHByswsJCp7aioiJ5eHgoICCgyn1mz56t4uJix5Kfn1/n1wAAANyH6SM3P2UYhtNjpB+LiYnRpk2bnNq2bdum3r17q2nTplXu4+XlJS8vrzqvEwAAuCdTR27mzJmj3bt368SJEzp8+LCef/55ZWZm6vHHH5f0w6jLuHHjHP0nT56skydPKjExUV988YVWrlypFStWKCkpyaxLAAAAbsbUkZszZ85o7NixKigokL+/v3r06KGtW7dq8ODBkqSCggLl5eU5+oeHh2vLli2aNWuWXn/9dYWGhmrJkiW8Bg4AABxMDTcrVqyodnt6enqltv79++vAgQP1VBEAAGjsTJ9QDAAAUJcINwAAwFIINwAAwFIINwAAwFIINwAAwFIINwAAwFIINwAAwFIINwAAwFIINwAAwFIINwAAwFIINwAAwFIINwAAwFIINwAAwFIINwAAwFIINwAAwFIINwAAwFIINwAAwFIINwAAwFIINwAAwFIINwAAwFIINwAAwFIINwAAwFIINwAAwFIINwAAwFIINwAAwFIINwAAwFIINwAAwFIINwAAwFIINwAAwFIINwAAwFIINwAAwFIINwAAwFIINwAAwFJMDTfJycm699575evrq8DAQD3yyCM6evRotftkZmbKZrNVWr788ssGqhoAALgzU8NNVlaWpk6dqr1792r79u0qLy9XXFycSktLb7jv0aNHVVBQ4FjuuOOOBqgYAAC4Ow8zT75161an9bS0NAUGBmr//v3q169ftfsGBgaqZcuW9VgdAABojNxqzk1xcbEkqXXr1jfse/fddyskJESxsbHauXNnfZcGAAAaCVNHbn7MMAwlJibqgQceULdu3a7bLyQkRMuXL1d0dLTsdrvWrFmj2NhYZWZmVjnaY7fbZbfbHeslJSX1Uj8AAHAPbhNunnnmGR06dEh79uyptl9ERIQiIiIc6zExMcrPz9fChQurDDfJycmaO3dundcLAADck1s8lpo2bZo2btyonTt3ql27drXe/7777tOxY8eq3DZ79mwVFxc7lvz8/JstFwAAuDGXRm6OHz+u8PDwmz65YRiaNm2aNmzYoMzMTJePmZubq5CQkCq3eXl5ycvL62bKBAAAjYhL4aZLly7q16+fJk6cqEcffVTe3t4unXzq1Klau3atPvzwQ/n6+qqwsFCS5O/vr2bNmkn6YeTl1KlTWr16tSRp8eLF6tixo6KiolRWVqa33npLGRkZysjIcKkGAABgLS49lvrss890991369lnn1VwcLB+/etf65///Getj5OSkqLi4mINGDBAISEhjmX9+vWOPgUFBcrLy3Osl5WVKSkpST169FDfvn21Z88ebd68WSNHjnTlUgAAgMXYDMMwXN25vLxcmzZtUnp6uj766CPdcccdmjhxosaOHau2bdvWZZ11pqSkRP7+/iouLpafn1+dH7/j/26u82Na1Yl5w+rsWNz3mqvL+w4ADaU2f79vakKxh4eHRowYoXfeeUfz58/X119/raSkJLVr107jxo1TQUHBzRweAACg1m4q3OTk5GjKlCkKCQnRokWLlJSUpK+//lo7duzQqVOnNHz48LqqEwAAoEZcmlC8aNEipaWl6ejRo4qPj9fq1asVHx+v2277ISuFh4dr2bJluuuuu+q0WAAAgBtxKdykpKRowoQJeuqppxQcHFxln7CwMK1YseKmigMAAKgtl8LN9b4w78c8PT01fvx4Vw4PAADgMpfm3KSlpendd9+t1P7uu+9q1apVN10UAACAq1wKN/PmzVObNm0qtQcGBupPf/rTTRcFAADgKpfCzcmTJ6v8qYQOHTo4feEeAABAQ3Mp3AQGBurQoUOV2j/77DMFBATcdFEAAACucincjBkzRtOnT9fOnTtVUVGhiooK7dixQzNmzNCYMWPqukYAAIAac+ltqZdfflknT55UbGysPDx+OMTVq1c1btw45twAAABTuRRuPD09tX79er300kv67LPP1KxZM3Xv3l0dOnSo6/oAAABqxaVwc82dd96pO++8s65qAQAAuGkuhZuKigqlp6frk08+UVFRka5eveq0fceOHXVSHAAAQG25FG5mzJih9PR0DRs2TN26dZPNZqvrugAAAFziUrhZt26d3nnnHcXHx9d1PQAAADfFpVfBPT091aVLl7quBQAA4Ka5FG6effZZvfrqqzIMo67rAQAAuCkuPZbas2ePdu7c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AQBAY9Ko5txkZ2crLi7OqW3IkCHKycnRlStXTKoKAAC4E1NHbmqrsLBQQUFBTm1BQUEqLy/X2bNnFRISUmkfu90uu93uWC8pKan3OgEAgHkaVbiRJJvN5rRuGEaV7dckJydr7ty59V4XcCvq+L+bzS6h0Tgxb1idHYv7XnPcd3PU5X13RaN6LBUcHKzCwkKntqKiInl4eCggIKDKfWbPnq3i4mLHkp+f3xClAgAAkzSqkZuYmBht2rTJqW3btm3q3bu3mjZtWuU+Xl5e8vLyaojyAACAGzB15ObixYs6ePCgDh48KOmHV70PHjyovLw8ST+MuowbN87Rf/LkyTp58qQSExP1xRdfaOXKlVqxYoWSkpLMKB8AALghU0ducnJyNHDgQMd6YmKiJGn8+PFKT09XQUGBI+hIUnh4uLZs2aJZs2bp9ddfV2hoqJYsWcJr4AAAwMHUcDNgwADHhOCqpKenV2rr37+/Dhw4UI9VAQCAxqxRTSgGAAC4EcINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFNPDzRtvvKHw8HB5e3srOjpau3fvvm7fzMxM2Wy2SsuXX37ZgBUDAAB3Zmq4Wb9+vWbOnKnnn39eubm56tu3r4YOHaq8vLxq9zt69KgKCgocyx133NFAFQMAAHdnarhZtGiRJk6cqEmTJikyMlKLFy9W+/btlZKSUu1+gYGBCg4OdixNmjRpoIoBAIC7My3clJWVaf/+/YqLi3Nqj4uL06efflrtvnfffbdCQkIUGxurnTt31meZAACgkfEw68Rnz55VRUWFgoKCnNqDgoJUWFhY5T4hISFavny5oqOjZbfbtWbNGsXGxiozM1P9+vWrch+73S673e5YLykpqbuLAAAAbse0cHONzWZzWjcMo1LbNREREYqIiHCsx8TEKD8/XwsXLrxuuElOTtbcuXPrrmAAAODWTHss1aZNGzVp0qTSKE1RUVGl0Zzq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TEyMOnfurFWrVikxMdHEytwH4QaoB9OmTdPGjRu1a9cutWvXzuxybgmenp7q0qWLJKl3797at2+fXn31VS1btszkyqxr//79KioqUnR0tKOtoqJCu3bt0tKlS2W329WkSRMTK7w1NG/eXN27d9exY8fMLsVtEG6AOmQYhqZNm6YNGzYoMzNT4eHhZpd0yzIMQ3a73ewyLC02NrbSWzpPPfWU7rrrLv32t78l2DQQu92uL774Qn379jW7FLdBuLGwixcv6quvvnKsHz9+XAcPHlTr1q0VFhZmYmXWNXXqVK1du1YffvihfH19VVhYKEny9/dXs2bNTK7OuubMmaOhQ4eqffv2unDhgtatW6fMzMxKb6+hbvn6+laaT9a8eXMFBAQwz6weJSUlKSEhQWFhYSoqKtLLL7+skpISjR8/3uzS3AbhxsJycnI0cOBAx/q1Z7Hjx49Xenq6SVVZW0pKiiRpwIABTu1paWl68sknG76gW8SZM2c0duxYFRQUyN/fXz169NDWrVs1ePBgs0sD6tw333yjX/7ylzp79qzatm2r++67T3v37lWHDh3MLs1t2AzDMMwuAgAAoK7wPTcAAMBSCDcAAMBSCDcAAMBSCDcAAMBSCDcAAMBSCDcAAMBSCDcAAMBSCDcALGHAgAGaOXOm2WUAcAOEGwCmS0hI0KBBg6rclp2dLZvNpgMHDjRwVQAaK8INANNNnDhRO3bs0MmTJyttW7lypXr16qV77rnHhMoANEaEGwCm+8UvfqHAwMBKv3l26dIlrV+/Xo888oh++ctfql27dvLx8VH37t319ttvV3tMm82mDz74wKmtZcuWTuc4deqURo8erVatWikgIEDDhw/XiRMn6uaiAJiGcAPAdB4eHho3bpzS09P145+7e/fdd1VWVqZJkyYpOjpaf//733XkyBH96le/0tixY/X//t//c/mcly5d0sCBA9WiRQvt2rVLe/bsUYsWLfTQQw+prKysLi4LgEkINwDcwoQJE3TixAllZmY62lauXKmRI0fq9ttvV1JSknr16qVOnTpp2rRpGjJkiN59912Xz7du3TrddtttevPNN9W9e3dFRkYqLS1NeXl5TjUAaHw8zC4AACTprrvuUp8+fbRy5UoNHDhQX3/9tXbv3q1t27apoqJC8+bN0/r163Xq1CnZ7XbZ7XY1b97c5fPt379fX331lXx9fZ3aL1++rK+//vpmLweAiQg3ANzGxIkT9cwzz+j1119XWlqaOnTooNjYWC1YsEB/+ctftHjxYnXv3l3NmzfXzJkzq318ZLPZnB5xSdKVK1cc/3316lVFR0frb3/7W6V927ZtW3cXBaDBEW4AuI3/+Z//0YwZM7R27VqtWrVKTz/9tGw2m3bv3q3hw4friSeekPRDMDl27JgiIyOve6y2bduqoKDAsX7s2DFdunTJsX7PPfdo/fr1CgwMlJ+fX/1dFIAGx5wbAG6jRYsWGj16tObMmaPTp0/rySeflCR16dJF27dv16effqovvvhCv/71r1VYWFjtsR588EEtXbpUBw4cUE5OjiZPnqymTZs6tj/++ONq06aNhg8frt27d+v48ePKysrSjBkz9M0339TnZQKoZ4QbAG5l4sSJ+u677zRo0CCFhYVJkn73u9/pnnvu0ZAhQzRgwAAFBwfrkUceqfY4r7zyitq3b69+/frpscceU1JSknx8fBzbfXx8tGvXLoWFhWnkyJGKjIzUhAkT9N///peRHKCRsxk/fSgNAADQiDFyAwAALIVwAwAALIVwAwAALIVwAwAALIVwAwAALIVwAwAALIVwAwAALIVwAwAALIVwAwAALIVwAwAALIVwAwAALIVwAwAALOX/A0aO4kNaGSxHAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# your code here\n", + "plt.bar(numbers_frequency.keys(), numbers_frequency.values())\n", + "plt.xlabel('Value')\n", + "plt.ylabel('Frequency')\n", + "plt.title('Frequency Distribution')\n", + "plt.show()" + ] + }, + { + "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": 117, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "2.3" + ] + }, + "execution_count": 117, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# your code here\n", + "\n", + "mean = numbers.sum()/len(numbers)\n", + "mean" + ] + }, + { + "cell_type": "code", + "execution_count": 118, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'\\nyour comments here\\n'" + ] + }, + "execution_count": 118, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\"\"\"\n", + "your comments here\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": 119, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "2.3" + ] + }, + "execution_count": 119, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# your code here\n", + "\n", + "def mean(numbers):\n", + " numbers_frequency = {}\n", + " for value in numbers:\n", + " if value in numbers_frequency:\n", + " numbers_frequency[value] += 1\n", + " else:\n", + " numbers_frequency[value] = 1\n", + " sum_numbers = 0\n", + " total_frequency = 0\n", + " for value, frequency in numbers_frequency.items():\n", + " sum_numbers += value * frequency\n", + " total_frequency += frequency\n", + " mean = sum_numbers / total_frequency\n", + " return mean\n", + "\n", + "mean(numbers)" + ] + }, + { + "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": 120, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "2.0" + ] + }, + "execution_count": 120, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# your code here\n", + "\n", + "def median(numbers):\n", + " sorted_numbers = np.sort(numbers)\n", + " size = len(sorted_numbers)\n", + " \n", + " if size % 2 == 0: # se for par \n", + " middle1 = sorted_numbers[size // 2 - 1]\n", + " middle2 = sorted_numbers[size // 2]\n", + " median_value = (middle1 + middle2) / 2\n", + " else: # se for impar\n", + " median_value = sorted_numbers[size // 2]\n", + "\n", + " return median_value\n", + "\n", + "median(numbers)" + ] + }, + { + "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": 121, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(1, 2.0, 3)" + ] + }, + "execution_count": 121, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "def quartiles(numbers):\n", + " sorted_numbers = np.sort(numbers)\n", + " size = len(numbers)\n", + " q2 = median(numbers)\n", + "\n", + " if size % 2 == 0: #se for par \n", + " first_half = sorted_numbers[:size // 2]\n", + " second_half = sorted_numbers[size // 2:]\n", + " q1 = median(first_half)\n", + " q3 = median(second_half)\n", + " \n", + " else: # se for ímpar \n", + " first_half = sorted_numbers[:size // 2]\n", + " second_half = sorted_numbers[size // 2 + 1:]\n", + " q1 = median(first_half)\n", + " q3 = median(second_half)\n", + "\n", + " return q1, q2, q3\n", + "\n", + "quartiles(numbers)" + ] + }, + { + "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": 122, + "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", + "
Unnamed: 0rollvalue
0001
1112
2226
3331
4446
............
9595954
9696966
9797971
9898983
9999996
\n", + "

100 rows × 3 columns

\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", + ".. ... ... ...\n", + "95 95 95 4\n", + "96 96 96 6\n", + "97 97 97 1\n", + "98 98 98 3\n", + "99 99 99 6\n", + "\n", + "[100 rows x 3 columns]" + ] + }, + "execution_count": 122, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# your code here\n", + "roll_dice = pd.read_csv('roll_the_dice_hundred.csv')\n", + "roll_dice" + ] + }, + { + "cell_type": "code", + "execution_count": 123, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'\\nyour comments here\\n'" + ] + }, + "execution_count": 123, + "metadata": {}, + "output_type": "execute_result" + } + ], + "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": 124, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "3.74" + ] + }, + "execution_count": 124, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# your code here\n", + "mean(roll_dice[\"value\"])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### 3.- Now, calculate the frequency distribution.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 125, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "value\n", + "6 23\n", + "4 22\n", + "2 17\n", + "3 14\n", + "1 12\n", + "5 12\n", + "Name: count, dtype: int64" + ] + }, + "execution_count": 125, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "numbers_frequency = roll_dice[\"value\"].value_counts()\n", + "frequency_numbers = {}\n", + "\n", + "for value in numbers:\n", + " if value in frequency_numbers:\n", + " frequency_numbers[value] += 1\n", + " else:\n", + " frequency_numbers[value] = 1\n", + "\n", + "numbers_frequency\n" + ] + }, + { + "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": 126, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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sqwiX2/ZsqV8fX31xBNPaOHChfr22289Os71n2dRmjRpohYtWrgtGzBggDIzM7V3716Pjl9SmzZtUpcuXRQZGem2fPDgwbp48WK+UZ3iPmfAW1BmgJugUaNGatOmjdv0a+Hh4W7z33//vSTpoYceUsWKFd2myZMny7IsnT17VufOnVNeXp7CwsLyHbOgZSVx5swZXb16Va+++mq+Y/fs2VOS9OOPP7ptU716dbd5p9MpSfr5558lST/88IMkFXsDbGhoqPr166c5c+YoNzdXBw4c0Pbt2zV69GiP3suvZWdn68yZM0Veqqpbt64++ugjhYSEaNSoUapbt67q1q2rl19+uVTHuv7zLEpRn92ZM2dKddzSOnPmTIFZr52j649f3OcMeAsenwBscP1oRY0aNSRJr776aqFPoISGhrqefDp9+nS+169fdm3kJicnx2359X9hVatWTRUqVNCjjz6qUaNGFXjs6OjoIt5Nftdumr12f0xREhMT9eabb2r16tVav369qlatqocffrhUxyvIunXrlJubW+zj1B06dFCHDh2Um5ur3bt369VXX9WYMWMUGhqq/v37l+hYpfnumqI+u2vlobDP7vpSWVrVq1dXenp6vuXXbrS+9u8hYBrKDOAF2rVrp6pVq+rLL78sclTC19dXd999t1auXKmpU6e6/tLLysrS2rVr3dYNDQ1VpUqVdODAAbflq1evdpv38/NT586d9fnnn6t58+by9fW94fcTExOjoKAgzZ49W/379y/yL/vWrVsrJiZGkydP1sGDB/XEE0/I39//ho5//PhxjR8/XkFBQRo+fHiJtqlQoYLatm2rhg0b6u2339bevXvVv3//Mh+NOHTokPbv3+92qWnx4sUKCAhQq1atJP3y5XqSdODAAd1xxx2u9dasWZNvf06ns8TZunTpolWrVunUqVNuI1aLFi2Sn58fj3LDWJQZwAtUqVJFr776qgYNGqSzZ8/qoYceUkhIiH744Qft379fP/zwg2bNmiVJ+vvf/64ePXqoW7duGjdunHJzczV58mT5+/vr7Nmzrn06HA498sgjmj9/vurWrasWLVros88+0+LFi/Md/+WXX1b79u3VoUMH/elPf1KdOnWUlZWlI0eOaO3atdq0aVOp38+0adM0bNgwde3aVY8//rhCQ0N15MgR7d+/XzNnznRbPzExUf369ZPD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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# your code here\n", + "plt.bar(numbers_frequency.index, numbers_frequency.values)\n", + "plt.xlabel('Value')\n", + "plt.ylabel('Frequency')\n", + "plt.title('Frequency Distribution')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 127, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'\\nyour comments here\\n'" + ] + }, + "execution_count": 127, + "metadata": {}, + "output_type": "execute_result" + } + ], + "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": 130, + "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", + "
Unnamed: 0rollvalue
0005
1116
2221
3336
4445
............
9959959951
9969969964
9979979974
9989989983
9999999996
\n", + "

1000 rows × 3 columns

\n", + "
" + ], + "text/plain": [ + " Unnamed: 0 roll value\n", + "0 0 0 5\n", + "1 1 1 6\n", + "2 2 2 1\n", + "3 3 3 6\n", + "4 4 4 5\n", + ".. ... ... ...\n", + "995 995 995 1\n", + "996 996 996 4\n", + "997 997 997 4\n", + "998 998 998 3\n", + "999 999 999 6\n", + "\n", + "[1000 rows x 3 columns]" + ] + }, + "execution_count": 130, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# your code here\n", + "roll_thousand = pd.read_csv('roll_the_dice_thousand.csv')\n", + "roll_thousand" + ] + }, + { + "cell_type": "code", + "execution_count": 131, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "value\n", + "1 175\n", + "3 175\n", + "4 168\n", + "2 167\n", + "6 166\n", + "5 149\n", + "Name: count, dtype: int64" + ] + }, + "execution_count": 131, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "numbers_frequency = roll_thousand[\"value\"].value_counts()\n", + "frequency_numbers = {}\n", + "\n", + "for value in numbers:\n", + " if value in frequency_numbers:\n", + " frequency_numbers[value] += 1\n", + " else:\n", + " frequency_numbers[value] = 1\n", + "\n", + "numbers_frequency\n" + ] + }, + { + "cell_type": "code", + "execution_count": 132, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjsAAAHFCAYAAAAUpjivAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAAA1WklEQVR4nO3deXQUZb7G8afN0pCYBELIJknMICgSZIsboCSySMCAREcYcAiyqAMiCDnOoMchzPUSEEEURkQHAggI4gVEUTDsMOIViCxBLwYMmyRGAckChJDU/cNDj00WTNOkO+X3c06dQ73vW1W/qsbD41tV3RbDMAwBAACY1A2uLgAAAOB6IuwAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAAABTI+wAtWz+/PmyWCyVLikpKa4uz1SuvNb16tVTaGio4uPjlZaWpvz8/ArbpKamymKx1Og4586dU2pqqjZv3lyj7So71s0336yHHnqoRvu5miVLlmjGjBmV9lksFqWmpjr1eIC78XR1AcDvVXp6um677Ta7tvDwcBdVY26Xr3Vpaany8/O1fft2TZkyRa+++qqWLVumrl272sYOGzZMPXr0qNH+z507p4kTJ0qS4uLifvN2jhzLEUuWLFFWVpbGjBlToW/Hjh1q0qTJda8BcCXCDuAiMTExio2N/U1jS0tLZbFY5OnJf7KOuPJaP/LII3ruuefUqVMnJSUlKTs7WyEhIZKkJk2aXPd//M+dOycfH59aOdbV3HPPPS49PlAbuI0FuJnNmzfLYrHo3Xff1bhx43TTTTfJarXq0KFDkqT169erS5cu8vf3l4+Pjzp27KgNGzZU2M+aNWvUpk0bWa1WRUdH69VXX61w2+TIkSOyWCyaP39+he0ru72RnZ2tAQMGKDg4WFarVS1atNA///nPSut/77339OKLLyo8PFz+/v7q2rWrDh48WOE4a9euVZcuXRQQECAfHx+1aNFCaWlpkqR3331XFotFO3bsqLDdP/7xD3l5eenkyZNXvaaViYyM1LRp01RYWKg5c+bY2iu7tbRx40bFxcWpUaNGql+/viIjI/XII4/o3LlzOnLkiBo3bixJmjhxou2W2eDBg+32l5mZqUcffVQNGzZU06ZNqzzWZStXrtQdd9yhevXq6Q9/+IPeeOMNu/7Lt+iOHDli1375+l++pRYXF6c1a9bo6NGjdrf0Lqvsc87KylKfPn3UsGFD1atXT23atNGCBQsqPc5v/ZwBVyLsAC5SVlamS5cu2S2/Nn78eB07dkxvvfWWPvroIwUHB2vRokXq3r27/P39tWDBAr3//vsKDAzUgw8+aBd4NmzYoD59+sjPz09Lly7V1KlT9f777ys9Pd3her/++mvdeeedysrK0rRp0/Txxx+rV69eevbZZ223cH7thRde0NGjR/Wvf/1Lb7/9trKzs5WYmKiysjLbmLlz56pnz54qLy+3neezzz6rEydOSJL69eun0NDQCoHq0qVLmjNnjvr27XtNt/569uwpDw8Pbd26tcoxR44cUa9eveTt7a158+Zp7dq1mjx5snx9fXXx4kWFhYVp7dq1kqShQ4dqx44d2rFjh1566SW7/SQlJemWW27R8uXL9dZbb1Vb1549ezRmzBg999xzWrlypTp06KDRo0fr1VdfrfE5vvnmm+rYsaNCQ0NttVUWHi87ePCgOnTooAMHDuiNN97QihUrdPvtt2vw4MF65ZVXKoz/LZ8z4HIGgFqVnp5uSKp0KS0tNTZt2mRIMu6//3677YqLi43AwEAjMTHRrr2srMxo3bq1cdddd9na7r77biM8PNw4f/68ra2goMAIDAw0fv2ffU5OjiHJSE9Pr1CnJGPChAm29QcffNBo0qSJcfbsWbtxzzzzjFGvXj3j9OnThmEYtvp79uxpN+799983JBk7duwwDMMwCgsLDX9/f6NTp05GeXl5lddrwoQJhre3t/HDDz/Y2pYtW2ZIMrZs2VLldobxn2u9c+fOKseEhIQYLVq0sDver6/RBx98YEgy9uzZU+U+fvzxxwrX68r9/f3vf6+y79eioqIMi8VS4XjdunUz/P39jeLiYrtzy8nJsRt3+fpv2rTJ1tarVy8jKiqq0tqvrLt///6G1Wo1jh07ZjcuISHB8PHxMX7++We741ztcwbcATM7gIssXLhQO3futFt+/UzOI488Yjf+888/1+nTp5WcnGw3G1ReXq4ePXpo586dKi4uVnFxsXbu3KmkpCTVq1fPtr2fn58SExMdqvXChQvasGGD+vbtKx8fH7vj9+zZUxcuXNAXX3xht03v3r3t1u+44w5J0tGjR23nU1BQoBEjRlT79tNf/vIXSdI777xja5s1a5ZatWql+++/36Hz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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.bar(numbers_frequency.index, numbers_frequency.values)\n", + "plt.xlabel('Value')\n", + "plt.ylabel('Frequency')\n", + "plt.title('Frequency Distribution')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 133, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'\\nyour comments here: it has much more answers than the data before. \\n'" + ] + }, + "execution_count": 133, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\"\"\"\n", + "your comments here: it has much more answers than the data before. \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": 134, + "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", + "
observation
068.0
112.0
245.0
338.0
449.0
......
99527.0
99647.0
99753.0
99833.0
99931.0
\n", + "

1000 rows × 1 columns

\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", + ".. ...\n", + "995 27.0\n", + "996 47.0\n", + "997 53.0\n", + "998 33.0\n", + "999 31.0\n", + "\n", + "[1000 rows x 1 columns]" + ] + }, + "execution_count": 134, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# your code here\n", + "age_population = pd.read_csv('ages_population.csv')\n", + "age_population" + ] + }, + { + "cell_type": "code", + "execution_count": 135, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "observation\n", + "39.0 45\n", + "41.0 36\n", + "30.0 34\n", + "35.0 33\n", + "43.0 32\n", + " ..\n", + "73.0 1\n", + "82.0 1\n", + "70.0 1\n", + "71.0 1\n", + "69.0 1\n", + "Name: count, Length: 72, dtype: int64" + ] + }, + "execution_count": 135, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "numbers_frequency = age_population[\"observation\"].value_counts()\n", + "frequency_numbers = {}\n", + "\n", + "for value in numbers:\n", + " if value in frequency_numbers:\n", + " frequency_numbers[value] += 1\n", + " else:\n", + " frequency_numbers[value] = 1\n", + "\n", + "numbers_frequency\n" + ] + }, + { + "cell_type": "code", + "execution_count": 136, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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Y665/6677pKfn5/+8pe/aOHChfrhhx88Ok/Oz/NaGjZsqKZNm7q19evXT6mpqdq1a5dH5y+oDRs2qFOnTqpWrZpb+6BBg3T+/PlcszrX+5wBX0GYAW6C+vXrq0WLFm7b1apUqeL2+ueff5Yk9e7dW6VKlXLbpk6dKmOMzpw5o7NnzyorK0uhoaG5zplXW0GcPn1aV65c0Ztvvpnr3N27d5ck/fLLL27vqVixottrp9MpSbpw4YIk6dSpU5J03RtgQ0JC1KdPH82bN0+ZmZnau3evvvrqKz3zzDMejeVq6enpOn369DUvVdWqVUvr1q1T5cqVNWLECNWqVUu1atXS66+/Xqhz5fw8r+Van93p06cLdd7COn36dJ61Zv+Mcp7/ep8z4Ct4fALwgpyzFZUqVZIkvfnmm/k+gRISEuJ68unkyZO59udsy565ycjIcGvP+QerfPnyKlGihJ544gmNGDEiz3OHh4dfYzS5Zd80m31/zLVER0frvffe06effqo1a9aoXLlyevzxxwt1vrysXr1amZmZ132c+v7779f999+vzMxM7dixQ2+++aZGjRqlkJAQ9e3bt0DnKszaNdf67LLDQ36fXc5QWVgVK1bUiRMncrVn32id/f8hYBvCDOAD7rvvPpUrV04HDx685qyEn5+f7rnnHq1YsULTp093/dFLS0vTZ5995tY3JCREpUuX1t69e93aP/30U7fXAQEB6tixo3bv3q0mTZrIz8/vhsfTpk0bBQcHa+7cuerbt+81/9g3b95cbdq00dSpU7V//3795S9/UZkyZW7o/EePHtXYsWMVHBysYcOGFeg9JUqUUKtWrVSvXj29//772rVrl/r27VvksxEHDhzQnj173C41LVmyRIGBgbr77rsl/b64niTt3btXdevWdfVbtWpVruM5nc4C19apUyetXLlSx48fd5uxWrRokQICAniUG9YizAA+oGzZsnrzzTc1cOBAnTlzRr1791blypV16tQp7dmzR6dOndKcOXMkSf/4xz/UtWtXdenSRWPGjFFmZqamTp2qMmXK6MyZM65jOhwO9e/fX++++65q1aqlpk2b6ptvvtGSJUtynf/1119X27Ztdf/99+vpp59WzZo1lZaWpu+++06fffaZNmzYUOjxzJgxQ0OHDlXnzp315z//WSEhIfruu++0Z88ezZo1y61/dHS0+vTp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n9dtt7n/6S9RooTr0Wxrx+ed+47tk/1o9vz5883BgwfNqFGjTJkyZcyRI0e8XVqhpKWlmd27d5vdu3cbSSY2Ntbs3r3b9Yj5lClTTHBwsFmxYoXZt2+f+dOf/uTzj+Rle/rpp01wcLDZtGmT22OV58+fd/WxdXzjxo0zW7ZsMUlJSWbv3r3mpZdeMrfddptZu3atMcbeceXn6qeZjLF3fGPGjDGbNm0yP/zwg/n666/NQw89ZAIDA13/btg6LmN+f4y+ZMmS5tVXXzWHDx8277//vgkICDCLFy929bF5fJmZmaZ69ermhRdeyLXP5nENHDjQ3HHHHa5Hs1esWGEqVapknn/+eVcfG8dHmCmEf/7zn6ZGjRrGz8/P3H333a5Hfm2yceNGIynXNnDgQGPM74/lTZgwwYSGhhqn02natWtn9u3b592iCyivcUkycXFxrj62jm/w4MGu//duv/1206lTJ1eQMcbeceUnZ5ixdXzZ63OUKlXKhIWFmV69epkDBw649ts6rmyfffaZadSokXE6naZevXrmrbfecttv8/j+9a9/GUnm0KFDufbZPK7U1FQTHR1tqlevbkqXLm3uvPNOM378eJORkeHqY+P4HMYY45UpIQAAgCLAPTMAAMBqhBkAAGA1wgwAALAaYQYAAFiNMAMAAKxGmAEAAFYjzAAAAKsRZgAAgNUIMwB8wrZt21SiRAl17drV26UAsAwrAAPwCUOHDlXZsmX1zjvv6ODBg6pevbq3SwJgCWZmAHhdenq6PvjgAz399NN66KGHtGDBArf9q1atUkREhPz9/dWxY0ctXLhQDodDv/76q6vPtm3b1K5dO/n7+6tatWoaOXKk0tPTXftnz56tiIgIlS5dWiEhIerdu/ctGh2Am40wA8Drli9frrp166pu3brq37+/4uLilD1pfOTIEfXu3VuPPvqoEhMTNWzYMI0fP97t/fv27dODDz6oXr16ae/evVq+fLm2bt2qZ555RpK0Y8cOjRw5Ui+//LIOHTqkNWvWqF27drd8nABuDi4zAfC6++67T//93/+t6OhoXblyRVWqVNHSpUvVuXNnvfjii1q9erX27dvn6v/Xv/5Vr776qs6ePaty5cppwIAB8vf317x581x9tm7dqvbt2ys9PV1ffPGFnnzySf34448KDAz0xhAB3ETMzADwqkOHDumbb75R3759JUklS5ZUnz599O6777r2t2zZ0u0999xzj9vrnTt3asGCBSpbtqxre/DBB5WVlaWkpCR16dJFNWrU0J133qknnnhC77//vs6fP39rBgjgpivp7QIA/LHNnz9fV65c0R133OFqM8aoVKlSOnv2rIwxcjgcbu/JOaGclZWlYcOGaeTIkbmOX716dfn5+WnXrl3atGmT1q5dq7///e+KiYlRQkKCypUrd1PGBeDWIcwA8JorV65o0aJFmjFjhiIjI932PfbYY3r//fdVr149ffHFF277duzY4fb67rvv1oEDB1S7du18z1WyZEl17txZnTt31oQJE1SuXDlt2LBBvXr1KroBAfAKwgwAr/n888919uxZDRkyRMHBwW77evfurfnz52vFihWKjY3VCy+8oCFDhigxMdH1tFP2jM0LL7yge++9VyNGjNCf//xnlSlTRv/5z38UHx+vN998U59//rl++OEHtWvXTuXLl9cXX3yhrKws1a1b91YPGcBNwD0zALxm/vz56ty5c64gI/0+M5OYmKizZ8/qo48+0ooVK9SkSRPNmTPH9TST0+mUJDVp0kSbN2/W4cOHdf/996tZs2b629/+pipVqkiSypUrpxUrVuiBBx5Q/fr1NXfuXC1dulQNGza8dYMFcNPwNBMA67z66quaO3eujh075u1SAPgALjMB8HmzZ89Wy5YtVbFiRf373//W9OnTXWvIAABhBoDPO3z4sF555RWdOXNG1atX15gxYzRu3DhvlwXAR3CZCQAAWI0bgAEAgNUIMwAAwGqEGQAAYDXCDAAAsBphBgAAWI0wAwAArEaYAQAAViPMAAAAqxFmAACA1f4/juoZb1H1joEAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.bar(numbers_frequency.index, numbers_frequency.values)\n", + "plt.xlabel('Ages')\n", + "plt.ylabel('Frequency')\n", + "plt.title('Frequency Distribution')\n", + "plt.show()" + ] + }, + { + "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": 137, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "36.56" + ] + }, + "execution_count": 137, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# your code here\n", + "age_population[\"observation\"].mean()" + ] + }, + { + "cell_type": "code", + "execution_count": 138, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "12.816499625976762" + ] + }, + "execution_count": 138, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "age_population[\"observation\"].std()" + ] + }, + { + "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": 140, + "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", + "
observation
025.0
131.0
229.0
331.0
429.0
......
99526.0
99622.0
99721.0
99819.0
99928.0
\n", + "

1000 rows × 1 columns

\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", + ".. ...\n", + "995 26.0\n", + "996 22.0\n", + "997 21.0\n", + "998 19.0\n", + "999 28.0\n", + "\n", + "[1000 rows x 1 columns]" + ] + }, + "execution_count": 140, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# your code here\n", + "age_population2 = pd.read_csv('ages_population2.csv')\n", + "age_population2" + ] + }, + { + "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": 141, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "27.155" + ] + }, + "execution_count": 141, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# your code here\n", + "age_population2[\"observation\"].mean()" + ] + }, + { + "cell_type": "code", + "execution_count": 142, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "2.969813932689186" + ] + }, + "execution_count": 142, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "age_population2[\"observation\"].std()" + ] + }, + { + "cell_type": "code", + "execution_count": 147, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'Very small standard deviation, which means that the values tend to be close to the mean, 27.155. So, I would say that the new data has much lower ages presented. '" + ] + }, + "execution_count": 147, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\"\"\"Very small standard deviation, which means that the values tend to be close to the mean, 27.155. So, I would say that the new data has much lower ages presented. \"\"\"" + ] + }, + { + "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": 148, + "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", + "
observation
021.0
121.0
224.0
331.0
454.0
......
99516.0
99655.0
99730.0
99835.0
99943.0
\n", + "

1000 rows × 1 columns

\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", + ".. ...\n", + "995 16.0\n", + "996 55.0\n", + "997 30.0\n", + "998 35.0\n", + "999 43.0\n", + "\n", + "[1000 rows x 1 columns]" + ] + }, + "execution_count": 148, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# your code here\n", + "age_population3 = pd.read_csv('ages_population3.csv.')\n", + "age_population3" + ] + }, + { + "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": 149, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "41.989" + ] + }, + "execution_count": 149, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# your code here\n", + "age_population3[\"observation\"].mean()" + ] + }, + { + "cell_type": "code", + "execution_count": 150, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "16.144705959865934" + ] + }, + "execution_count": 150, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "age_population3[\"observation\"].std()" + ] + }, + { + "cell_type": "code", + "execution_count": 152, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'High standard deviation.'" + ] + }, + "execution_count": 152, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\"\"\"High standard deviation.\"\"\"" + ] + }, + { + "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": 153, + "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" + ] + } + ], + "source": [ + "# your code here\n", + "q1 = np.quantile(age_population3,0.25)\n", + "print(f\"the first quartile is {q1}\")\n", + "\n", + "q2 = np.quantile(age_population3,0.50)\n", + "print(f\"the second quartile is {q2}\")\n", + "\n", + "q3 = np.quantile(age_population3,0.75)\n", + "print(f\"the third quartile is {q3}\")\n" + ] + }, + { + "cell_type": "code", + "execution_count": 154, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'\\nyour comments here\\n'" + ] + }, + "execution_count": 154, + "metadata": {}, + "output_type": "execute_result" + } + ], + "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": 157, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "the 0.15 quartile is 30.0\n", + "the 0.3 quartile is 40.0\n", + "the 0.45 quartile is 53.0\n", + "the 0.6 quartile is 53.0\n", + "the 0.8 quartile is 53.0\n", + "the 0.95 quartile is 53.0\n" + ] + } + ], + "source": [ + "# your code here\n", + "q01 = np.quantile(age_population3,0.15)\n", + "print(f\"the 0.15 quartile is {q1}\")\n", + "\n", + "q002 = np.quantile(age_population3,0.3)\n", + "print(f\"the 0.3 quartile is {q2}\")\n", + "\n", + "q02 = np.quantile(age_population3,0.45)\n", + "print(f\"the 0.45 quartile is {q3}\")\n", + "\n", + "\n", + "q03 = np.quantile(age_population3,0.6)\n", + "print(f\"the 0.6 quartile is {q3}\")\n", + "\n", + "\n", + "q003 = np.quantile(age_population3,0.8)\n", + "print(f\"the 0.8 quartile is {q3}\")\n", + "\n", + "\n", + "q4 = np.quantile(age_population3,0.95)\n", + "print(f\"the 0.95 quartile is {q3}\")\n", + "\n", + "\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 158, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'\\nyour comments here\\n'" + ] + }, + "execution_count": 158, + "metadata": {}, + "output_type": "execute_result" + } + ], + "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": 159, + "metadata": {}, + "outputs": [], + "source": [ + "# your code here" + ] + }, + { + "cell_type": "code", + "execution_count": 160, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'\\nyour comments here\\n'" + ] + }, + "execution_count": 160, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\"\"\"\n", + "your comments here\n", + "\"\"\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.5" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/your-code/main.ipynb b/your-code/main.ipynb deleted file mode 100644 index a0a5b66..0000000 --- a/your-code/main.ipynb +++ /dev/null @@ -1,522 +0,0 @@ -{ - "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 -} diff --git a/your-code/roll_the_dice_hundred.csv b/your-code/roll_the_dice_hundred.csv new file mode 100644 index 0000000..50975a2 --- /dev/null +++ b/your-code/roll_the_dice_hundred.csv @@ -0,0 +1,101 @@ +,roll,value +0,0,1 +1,1,2 +2,2,6 +3,3,1 +4,4,6 +5,5,5 +6,6,2 +7,7,2 +8,8,4 +9,9,1 +10,10,5 +11,11,6 +12,12,5 +13,13,4 +14,14,5 +15,15,4 +16,16,4 +17,17,6 +18,18,2 +19,19,4 +20,20,4 +21,21,6 +22,22,3 +23,23,6 +24,24,6 +25,25,4 +26,26,1 +27,27,4 +28,28,4 +29,29,2 +30,30,6 +31,31,5 +32,32,5 +33,33,2 +34,34,3 +35,35,6 +36,36,6 +37,37,2 +38,38,3 +39,39,6 +40,40,6 +41,41,2 +42,42,5 +43,43,3 +44,44,4 +45,45,6 +46,46,2 +47,47,1 +48,48,4 +49,49,2 +50,50,3 +51,51,2 +52,52,2 +53,53,4 +54,54,6 +55,55,2 +56,56,1 +57,57,3 +58,58,2 +59,59,4 +60,60,4 +61,61,3 +62,62,4 +63,63,1 +64,64,3 +65,65,6 +66,66,3 +67,67,4 +68,68,4 +69,69,4 +70,70,2 +71,71,2 +72,72,5 +73,73,1 +74,74,5 +75,75,6 +76,76,2 +77,77,4 +78,78,6 +79,79,5 +80,80,6 +81,81,4 +82,82,1 +83,83,3 +84,84,3 +85,85,3 +86,86,5 +87,87,6 +88,88,5 +89,89,1 +90,90,6 +91,91,3 +92,92,6 +93,93,4 +94,94,1 +95,95,4 +96,96,6 +97,97,1 +98,98,3 +99,99,6 diff --git a/your-code/roll_the_dice_thousand.csv b/your-code/roll_the_dice_thousand.csv new file mode 100644 index 0000000..f820dbb --- /dev/null +++ b/your-code/roll_the_dice_thousand.csv @@ -0,0 +1,1001 @@ +,roll,value +0,0,5 +1,1,6 +2,2,1 +3,3,6 +4,4,5 +5,5,2 +6,6,6 +7,7,5 +8,8,6 +9,9,6 +10,10,4 +11,11,3 +12,12,5 +13,13,6 +14,14,1 +15,15,3 +16,16,1 +17,17,1 +18,18,1 +19,19,1 +20,20,6 +21,21,2 +22,22,3 +23,23,4 +24,24,6 +25,25,5 +26,26,3 +27,27,2 +28,28,4 +29,29,1 +30,30,3 +31,31,4 +32,32,3 +33,33,3 +34,34,6 +35,35,2 +36,36,1 +37,37,2 +38,38,6 +39,39,4 +40,40,1 +41,41,4 +42,42,6 +43,43,1 +44,44,6 +45,45,3 +46,46,6 +47,47,4 +48,48,5 +49,49,1 +50,50,4 +51,51,4 +52,52,4 +53,53,6 +54,54,2 +55,55,6 +56,56,4 +57,57,6 +58,58,6 +59,59,2 +60,60,4 +61,61,1 +62,62,4 +63,63,3 +64,64,1 +65,65,4 +66,66,1 +67,67,2 +68,68,3 +69,69,3 +70,70,1 +71,71,6 +72,72,1 +73,73,6 +74,74,5 +75,75,2 +76,76,6 +77,77,5 +78,78,4 +79,79,6 +80,80,5 +81,81,1 +82,82,4 +83,83,4 +84,84,4 +85,85,4 +86,86,6 +87,87,2 +88,88,4 +89,89,5 +90,90,4 +91,91,3 +92,92,4 +93,93,3 +94,94,2 +95,95,5 +96,96,1 +97,97,6 +98,98,6 +99,99,1 +100,100,1 +101,101,3 +102,102,3 +103,103,2 +104,104,1 +105,105,3 +106,106,6 +107,107,2 +108,108,1 +109,109,4 +110,110,1 +111,111,2 +112,112,2 +113,113,4 +114,114,1 +115,115,2 +116,116,2 +117,117,4 +118,118,4 +119,119,1 +120,120,4 +121,121,5 +122,122,3 +123,123,2 +124,124,5 +125,125,5 +126,126,1 +127,127,4 +128,128,3 +129,129,6 +130,130,5 +131,131,1 +132,132,5 +133,133,1 +134,134,1 +135,135,2 +136,136,6 +137,137,6 +138,138,5 +139,139,5 +140,140,1 +141,141,5 +142,142,1 +143,143,1 +144,144,6 +145,145,6 +146,146,6 +147,147,6 +148,148,5 +149,149,1 +150,150,4 +151,151,6 +152,152,5 +153,153,4 +154,154,1 +155,155,4 +156,156,5 +157,157,5 +158,158,1 +159,159,2 +160,160,6 +161,161,5 +162,162,2 +163,163,3 +164,164,1 +165,165,2 +166,166,1 +167,167,6 +168,168,4 +169,169,5 +170,170,6 +171,171,4 +172,172,3 +173,173,1 +174,174,1 +175,175,5 +176,176,2 +177,177,5 +178,178,2 +179,179,3 +180,180,3 +181,181,4 +182,182,6 +183,183,3 +184,184,2 +185,185,4 +186,186,4 +187,187,3 +188,188,6 +189,189,2 +190,190,4 +191,191,2 +192,192,1 +193,193,4 +194,194,2 +195,195,3 +196,196,2 +197,197,1 +198,198,6 +199,199,4 +200,200,1 +201,201,5 +202,202,4 +203,203,3 +204,204,6 +205,205,3 +206,206,3 +207,207,6 +208,208,3 +209,209,2 +210,210,6 +211,211,2 +212,212,4 +213,213,1 +214,214,1 +215,215,2 +216,216,5 +217,217,5 +218,218,3 +219,219,5 +220,220,2 +221,221,1 +222,222,1 +223,223,2 +224,224,5 +225,225,4 +226,226,6 +227,227,5 +228,228,5 +229,229,5 +230,230,3 +231,231,2 +232,232,2 +233,233,5 +234,234,2 +235,235,3 +236,236,4 +237,237,2 +238,238,6 +239,239,2 +240,240,6 +241,241,3 +242,242,6 +243,243,5 +244,244,3 +245,245,2 +246,246,4 +247,247,6 +248,248,3 +249,249,6 +250,250,4 +251,251,5 +252,252,3 +253,253,5 +254,254,1 +255,255,2 +256,256,6 +257,257,1 +258,258,4 +259,259,4 +260,260,1 +261,261,1 +262,262,3 +263,263,3 +264,264,1 +265,265,3 +266,266,3 +267,267,4 +268,268,1 +269,269,2 +270,270,3 +271,271,3 +272,272,3 +273,273,1 +274,274,6 +275,275,6 +276,276,3 +277,277,3 +278,278,4 +279,279,4 +280,280,6 +281,281,5 +282,282,3 +283,283,6 +284,284,4 +285,285,3 +286,286,6 +287,287,6 +288,288,1 +289,289,5 +290,290,2 +291,291,1 +292,292,3 +293,293,6 +294,294,6 +295,295,6 +296,296,1 +297,297,3 +298,298,6 +299,299,5 +300,300,2 +301,301,2 +302,302,3 +303,303,4 +304,304,6 +305,305,4 +306,306,5 +307,307,5 +308,308,6 +309,309,6 +310,310,4 +311,311,4 +312,312,6 +313,313,2 +314,314,5 +315,315,5 +316,316,5 +317,317,5 +318,318,6 +319,319,1 +320,320,3 +321,321,3 +322,322,6 +323,323,6 +324,324,1 +325,325,6 +326,326,6 +327,327,4 +328,328,3 +329,329,4 +330,330,5 +331,331,6 +332,332,4 +333,333,1 +334,334,2 +335,335,3 +336,336,4 +337,337,3 +338,338,2 +339,339,3 +340,340,4 +341,341,3 +342,342,6 +343,343,3 +344,344,2 +345,345,6 +346,346,3 +347,347,3 +348,348,6 +349,349,2 +350,350,3 +351,351,1 +352,352,4 +353,353,2 +354,354,2 +355,355,6 +356,356,3 +357,357,2 +358,358,5 +359,359,4 +360,360,6 +361,361,2 +362,362,3 +363,363,3 +364,364,6 +365,365,5 +366,366,1 +367,367,3 +368,368,2 +369,369,5 +370,370,6 +371,371,6 +372,372,2 +373,373,3 +374,374,6 +375,375,2 +376,376,2 +377,377,3 +378,378,2 +379,379,1 +380,380,2 +381,381,1 +382,382,2 +383,383,3 +384,384,4 +385,385,2 +386,386,6 +387,387,4 +388,388,6 +389,389,3 +390,390,5 +391,391,1 +392,392,5 +393,393,2 +394,394,5 +395,395,3 +396,396,2 +397,397,2 +398,398,1 +399,399,4 +400,400,2 +401,401,2 +402,402,1 +403,403,5 +404,404,3 +405,405,2 +406,406,5 +407,407,6 +408,408,5 +409,409,5 +410,410,5 +411,411,4 +412,412,4 +413,413,1 +414,414,4 +415,415,4 +416,416,1 +417,417,2 +418,418,4 +419,419,5 +420,420,3 +421,421,6 +422,422,3 +423,423,1 +424,424,5 +425,425,1 +426,426,1 +427,427,5 +428,428,3 +429,429,4 +430,430,6 +431,431,3 +432,432,6 +433,433,6 +434,434,1 +435,435,2 +436,436,1 +437,437,1 +438,438,5 +439,439,1 +440,440,4 +441,441,1 +442,442,1 +443,443,2 +444,444,4 +445,445,2 +446,446,4 +447,447,6 +448,448,2 +449,449,2 +450,450,6 +451,451,2 +452,452,5 +453,453,5 +454,454,2 +455,455,1 +456,456,5 +457,457,5 +458,458,4 +459,459,1 +460,460,3 +461,461,1 +462,462,5 +463,463,5 +464,464,5 +465,465,1 +466,466,2 +467,467,2 +468,468,5 +469,469,5 +470,470,3 +471,471,6 +472,472,2 +473,473,6 +474,474,5 +475,475,3 +476,476,4 +477,477,6 +478,478,5 +479,479,5 +480,480,1 +481,481,3 +482,482,3 +483,483,2 +484,484,2 +485,485,1 +486,486,6 +487,487,1 +488,488,2 +489,489,3 +490,490,3 +491,491,2 +492,492,5 +493,493,3 +494,494,3 +495,495,1 +496,496,1 +497,497,5 +498,498,4 +499,499,3 +500,500,5 +501,501,3 +502,502,3 +503,503,1 +504,504,4 +505,505,5 +506,506,5 +507,507,5 +508,508,2 +509,509,6 +510,510,3 +511,511,1 +512,512,3 +513,513,4 +514,514,3 +515,515,3 +516,516,1 +517,517,4 +518,518,6 +519,519,1 +520,520,6 +521,521,3 +522,522,4 +523,523,1 +524,524,4 +525,525,4 +526,526,3 +527,527,1 +528,528,1 +529,529,1 +530,530,2 +531,531,2 +532,532,2 +533,533,1 +534,534,5 +535,535,5 +536,536,4 +537,537,5 +538,538,5 +539,539,2 +540,540,5 +541,541,2 +542,542,2 +543,543,3 +544,544,2 +545,545,3 +546,546,2 +547,547,4 +548,548,2 +549,549,1 +550,550,3 +551,551,1 +552,552,2 +553,553,6 +554,554,3 +555,555,5 +556,556,3 +557,557,2 +558,558,4 +559,559,2 +560,560,1 +561,561,4 +562,562,2 +563,563,2 +564,564,1 +565,565,2 +566,566,5 +567,567,2 +568,568,3 +569,569,6 +570,570,4 +571,571,2 +572,572,4 +573,573,5 +574,574,3 +575,575,4 +576,576,4 +577,577,5 +578,578,4 +579,579,5 +580,580,2 +581,581,1 +582,582,6 +583,583,3 +584,584,3 +585,585,6 +586,586,2 +587,587,1 +588,588,3 +589,589,1 +590,590,3 +591,591,5 +592,592,4 +593,593,5 +594,594,2 +595,595,3 +596,596,2 +597,597,6 +598,598,6 +599,599,2 +600,600,3 +601,601,1 +602,602,1 +603,603,4 +604,604,5 +605,605,3 +606,606,6 +607,607,3 +608,608,4 +609,609,5 +610,610,4 +611,611,6 +612,612,1 +613,613,2 +614,614,4 +615,615,5 +616,616,5 +617,617,3 +618,618,2 +619,619,2 +620,620,5 +621,621,6 +622,622,2 +623,623,1 +624,624,6 +625,625,3 +626,626,1 +627,627,2 +628,628,4 +629,629,2 +630,630,4 +631,631,1 +632,632,5 +633,633,4 +634,634,5 +635,635,6 +636,636,5 +637,637,1 +638,638,3 +639,639,6 +640,640,6 +641,641,5 +642,642,4 +643,643,2 +644,644,1 +645,645,3 +646,646,1 +647,647,6 +648,648,2 +649,649,4 +650,650,2 +651,651,4 +652,652,6 +653,653,1 +654,654,3 +655,655,1 +656,656,5 +657,657,4 +658,658,2 +659,659,6 +660,660,4 +661,661,3 +662,662,6 +663,663,2 +664,664,5 +665,665,2 +666,666,4 +667,667,1 +668,668,4 +669,669,6 +670,670,6 +671,671,5 +672,672,3 +673,673,4 +674,674,5 +675,675,2 +676,676,6 +677,677,6 +678,678,1 +679,679,6 +680,680,5 +681,681,4 +682,682,4 +683,683,3 +684,684,2 +685,685,3 +686,686,2 +687,687,2 +688,688,3 +689,689,1 +690,690,6 +691,691,2 +692,692,5 +693,693,6 +694,694,3 +695,695,6 +696,696,5 +697,697,2 +698,698,4 +699,699,3 +700,700,4 +701,701,4 +702,702,2 +703,703,2 +704,704,4 +705,705,3 +706,706,2 +707,707,2 +708,708,6 +709,709,6 +710,710,6 +711,711,4 +712,712,2 +713,713,6 +714,714,1 +715,715,2 +716,716,1 +717,717,2 +718,718,5 +719,719,4 +720,720,2 +721,721,1 +722,722,4 +723,723,1 +724,724,6 +725,725,4 +726,726,6 +727,727,3 +728,728,3 +729,729,3 +730,730,1 +731,731,2 +732,732,3 +733,733,1 +734,734,3 +735,735,6 +736,736,6 +737,737,4 +738,738,3 +739,739,1 +740,740,4 +741,741,3 +742,742,6 +743,743,3 +744,744,3 +745,745,6 +746,746,5 +747,747,4 +748,748,3 +749,749,2 +750,750,2 +751,751,1 +752,752,2 +753,753,1 +754,754,4 +755,755,6 +756,756,6 +757,757,3 +758,758,1 +759,759,1 +760,760,6 +761,761,4 +762,762,5 +763,763,1 +764,764,3 +765,765,4 +766,766,4 +767,767,5 +768,768,6 +769,769,5 +770,770,4 +771,771,5 +772,772,1 +773,773,4 +774,774,5 +775,775,2 +776,776,3 +777,777,6 +778,778,3 +779,779,1 +780,780,6 +781,781,5 +782,782,2 +783,783,2 +784,784,1 +785,785,6 +786,786,3 +787,787,6 +788,788,4 +789,789,2 +790,790,1 +791,791,1 +792,792,5 +793,793,2 +794,794,2 +795,795,4 +796,796,2 +797,797,4 +798,798,3 +799,799,1 +800,800,6 +801,801,2 +802,802,2 +803,803,3 +804,804,1 +805,805,5 +806,806,5 +807,807,1 +808,808,1 +809,809,6 +810,810,4 +811,811,3 +812,812,3 +813,813,2 +814,814,4 +815,815,1 +816,816,5 +817,817,5 +818,818,2 +819,819,3 +820,820,1 +821,821,6 +822,822,6 +823,823,5 +824,824,4 +825,825,2 +826,826,2 +827,827,3 +828,828,5 +829,829,3 +830,830,6 +831,831,1 +832,832,5 +833,833,1 +834,834,1 +835,835,3 +836,836,1 +837,837,4 +838,838,6 +839,839,4 +840,840,2 +841,841,1 +842,842,3 +843,843,1 +844,844,1 +845,845,1 +846,846,6 +847,847,4 +848,848,3 +849,849,5 +850,850,6 +851,851,1 +852,852,3 +853,853,2 +854,854,1 +855,855,6 +856,856,4 +857,857,6 +858,858,5 +859,859,1 +860,860,3 +861,861,1 +862,862,5 +863,863,6 +864,864,3 +865,865,6 +866,866,2 +867,867,6 +868,868,1 +869,869,3 +870,870,3 +871,871,1 +872,872,1 +873,873,6 +874,874,1 +875,875,3 +876,876,4 +877,877,3 +878,878,1 +879,879,4 +880,880,1 +881,881,4 +882,882,2 +883,883,1 +884,884,4 +885,885,3 +886,886,5 +887,887,1 +888,888,3 +889,889,3 +890,890,2 +891,891,6 +892,892,1 +893,893,6 +894,894,4 +895,895,5 +896,896,6 +897,897,5 +898,898,3 +899,899,3 +900,900,3 +901,901,6 +902,902,3 +903,903,4 +904,904,5 +905,905,5 +906,906,1 +907,907,1 +908,908,5 +909,909,6 +910,910,4 +911,911,1 +912,912,5 +913,913,4 +914,914,3 +915,915,3 +916,916,3 +917,917,6 +918,918,4 +919,919,4 +920,920,5 +921,921,6 +922,922,1 +923,923,3 +924,924,6 +925,925,4 +926,926,6 +927,927,1 +928,928,5 +929,929,4 +930,930,4 +931,931,5 +932,932,5 +933,933,2 +934,934,3 +935,935,2 +936,936,1 +937,937,5 +938,938,5 +939,939,2 +940,940,1 +941,941,5 +942,942,4 +943,943,5 +944,944,3 +945,945,6 +946,946,4 +947,947,2 +948,948,4 +949,949,1 +950,950,5 +951,951,2 +952,952,2 +953,953,4 +954,954,3 +955,955,6 +956,956,4 +957,957,2 +958,958,2 +959,959,3 +960,960,3 +961,961,4 +962,962,5 +963,963,3 +964,964,4 +965,965,5 +966,966,2 +967,967,3 +968,968,4 +969,969,1 +970,970,3 +971,971,4 +972,972,1 +973,973,1 +974,974,5 +975,975,4 +976,976,1 +977,977,6 +978,978,2 +979,979,2 +980,980,2 +981,981,5 +982,982,3 +983,983,4 +984,984,4 +985,985,4 +986,986,4 +987,987,1 +988,988,2 +989,989,6 +990,990,4 +991,991,6 +992,992,4 +993,993,1 +994,994,3 +995,995,1 +996,996,4 +997,997,4 +998,998,3 +999,999,6 From f5bfe7c31f8b989f8dcb6db4b3ac83cc9bdff557 Mon Sep 17 00:00:00 2001 From: mariabourbon Date: Thu, 9 Nov 2023 19:03:36 +0000 Subject: [PATCH 2/2] solved lab --- your-code/.ipynb_checkpoints/lab-checkpoint.ipynb | 13 ++++++++----- your-code/lab.ipynb | 13 ++++++++----- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/your-code/.ipynb_checkpoints/lab-checkpoint.ipynb b/your-code/.ipynb_checkpoints/lab-checkpoint.ipynb index 989983a..c81018e 100644 --- a/your-code/.ipynb_checkpoints/lab-checkpoint.ipynb +++ b/your-code/.ipynb_checkpoints/lab-checkpoint.ipynb @@ -65,25 +65,28 @@ }, { "cell_type": "code", - "execution_count": 109, + "execution_count": 163, "metadata": {}, "outputs": [ { "data": { + "image/png": "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", "text/plain": [ - "array([1, 1, 2, 2, 2, 3, 4, 5, 5, 5])" + "
" ] }, - "execution_count": 109, "metadata": {}, - "output_type": "execute_result" + "output_type": "display_data" } ], "source": [ "# your code here\n", "output = game_dice()\n", "output_sorted = np.sort(output)\n", - "output_sorted" + "output_sorted\n", + "\n", + "plt.plot(output_sorted)\n", + "plt.show()" ] }, { diff --git a/your-code/lab.ipynb b/your-code/lab.ipynb index 989983a..c81018e 100644 --- a/your-code/lab.ipynb +++ b/your-code/lab.ipynb @@ -65,25 +65,28 @@ }, { "cell_type": "code", - "execution_count": 109, + "execution_count": 163, "metadata": {}, "outputs": [ { "data": { + "image/png": "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", "text/plain": [ - "array([1, 1, 2, 2, 2, 3, 4, 5, 5, 5])" + "
" ] }, - "execution_count": 109, "metadata": {}, - "output_type": "execute_result" + "output_type": "display_data" } ], "source": [ "# your code here\n", "output = game_dice()\n", "output_sorted = np.sort(output)\n", - "output_sorted" + "output_sorted\n", + "\n", + "plt.plot(output_sorted)\n", + "plt.show()" ] }, {