diff --git a/assignment_solution.ipynb b/assignment_solution.ipynb new file mode 100644 index 0000000..afd6713 --- /dev/null +++ b/assignment_solution.ipynb @@ -0,0 +1,459 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import pandas as pd\n", + "import matplotlib.pyplot as plt\n", + "\n", + "plt.rcParams['figure.figsize'] = (10, 8)" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "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", + "
countryfood_categoryconsumptionco2_emission
1Argentinapork10.5137.20
2Argentinapoultry38.6641.53
3Argentinabeef55.481712.00
4Argentinalamb_goat1.5654.63
5Argentinafish4.366.96
\n", + "
" + ], + "text/plain": [ + " country food_category consumption co2_emission\n", + "1 Argentina pork 10.51 37.20\n", + "2 Argentina poultry 38.66 41.53\n", + "3 Argentina beef 55.48 1712.00\n", + "4 Argentina lamb_goat 1.56 54.63\n", + "5 Argentina fish 4.36 6.96" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#read the data\n", + "#./dataset/ is a path. Copy and paste the path of the CSV file in your computer to read the data. \n", + "food_consumption = pd.read_csv('./food_consumption.csv', index_col=0)\n", + "food_consumption.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "42.13272727272727\n", + "12.59\n", + "44.650000000000006\n", + "14.58\n" + ] + } + ], + "source": [ + "#filter for Belgium\n", + "be_consumption = food_consumption[food_consumption['country'] == 'Belgium']\n", + "\n", + "# Filter for USA\n", + "usa_consumption = food_consumption[food_consumption['country'] == 'USA']\n", + "\n", + "#Q-1) Calculate mean and median consumption in Belgium\n", + "print(np.mean(be_consumption['consumption'])) # Second way: print(be_consumption.consumption.mean())\n", + "print(np.median(be_consumption['consumption'])) # Second way: print(be_consumption.consumption.median())\n", + "\n", + "\n", + "#Q-2) Calculate mean and median consumption of USA\n", + "print(np.mean(usa_consumption['consumption']))\n", + "print(np.median(usa_consumption['consumption']))" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " mean median\n", + "country \n", + "Belgium 42.132727 12.59\n", + "USA 44.650000 14.58\n" + ] + } + ], + "source": [ + "# Work with both countries together\n", + "be_and_usa = food_consumption[(food_consumption['country'] == 'Belgium') | \n", + " (food_consumption['country'] == 'USA')]\n", + "\n", + "# Q-3) Group by country, select consumption column, and compute mean and median\n", + "print(be_and_usa.groupby('country')['consumption'].agg([np.mean, np.median]))" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "mean 37.591615\n", + "median 15.200000\n", + "Name: co2_emission, dtype: float64" + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "rice_consumption = food_consumption[food_consumption['food_category'] == 'rice']\n", + "\n", + "#Q-4)Plot the histogram of co2_emission for rice\n", + "rice_consumption['co2_emission'].hist();\n", + "\n", + "#Q-5) Calculate mean and median of co2_emission with .agg()\n", + "rice_consumption['co2_emission'].agg([np.mean, np.median])" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[ 0. 3.54 11.026 25.59 99.978 1712. ]\n" + ] + } + ], + "source": [ + "#Q-6) Calculate the quintiles of co2_emission\n", + "print(np.quantile(food_consumption['co2_emission'], np.linspace(0, 1, 6)))\n", + "\n", + "#You only need to fill in the missing part." + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
varstd
food_category
beef88748.408132297.906710
dairy17671.891985132.935669
eggs21.3718194.622966
fish921.63734930.358481
lamb_goat16475.518363128.356996
nuts35.6396525.969895
pork3094.96353755.632396
poultry245.02680115.653332
rice2281.37624347.763754
soybeans0.8798820.938020
wheat71.0239378.427570
\n", + "
" + ], + "text/plain": [ + " var std\n", + "food_category \n", + "beef 88748.408132 297.906710\n", + "dairy 17671.891985 132.935669\n", + "eggs 21.371819 4.622966\n", + "fish 921.637349 30.358481\n", + "lamb_goat 16475.518363 128.356996\n", + "nuts 35.639652 5.969895\n", + "pork 3094.963537 55.632396\n", + "poultry 245.026801 15.653332\n", + "rice 2281.376243 47.763754\n", + "soybeans 0.879882 0.938020\n", + "wheat 71.023937 8.427570" + ] + }, + "execution_count": 34, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "#Q-7) Calculate the variance and standard deviation of co2_emission for food_categories\n", + "food_consumption.groupby('food_category')['co2_emission'].agg([np.var, np.std])" + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "#Q-8) Create histogram of co2_emission for food_category 'beef'\n", + "food_consumption[food_consumption['food_category']=='beef']['co2_emission'].hist();" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "country\n", + "Albania 1777.85\n", + "Algeria 707.88\n", + "Angola 412.99\n", + "Argentina 2172.40\n", + "Armenia 1109.93\n", + " ... \n", + "Uruguay 1634.91\n", + "Venezuela 1104.10\n", + "Vietnam 641.51\n", + "Zambia 225.30\n", + "Zimbabwe 350.33\n", + "Name: co2_emission, Length: 130, dtype: float64\n" + ] + } + ], + "source": [ + "emissions_by_country = food_consumption.groupby('country')['co2_emission'].sum()\n", + "\n", + "print(emissions_by_country)" + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "country\n", + "Argentina 2172.4\n", + "Name: co2_emission, dtype: float64\n" + ] + } + ], + "source": [ + "q1 = np.quantile(emissions_by_country, 0.25)\n", + "q3 = np.quantile(emissions_by_country, 0.75)\n", + "iqr = q3 - q1\n", + "\n", + "# Calculate the lower and upper cutoffs for outliers\n", + "lower = q1 - 1.5 * iqr\n", + "upper = q3 + 1.5 * iqr\n", + "\n", + "# Subset emissions_by_country to find outliers\n", + "outliers = emissions_by_country[(emissions_by_country > upper) | (emissions_by_country < lower)]\n", + "print(outliers)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "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.9.13" + }, + "orig_nbformat": 4, + "vscode": { + "interpreter": { + "hash": "b99668b0bd0e04ae2365b8076afa579c0a8a5d069817a91122d1bb49107b24a1" + } + } + }, + "nbformat": 4, + "nbformat_minor": 2 +}