{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Imports" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.20.3\n" ] } ], "source": [ "import pandas as pd\n", "import os\n", "import matplotlib\n", "\n", "%matplotlib inline\n", "\n", "print pd.__version__" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Axis parameter in Pandas (Vid-11)" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "<div>\n", "<style>\n", " .dataframe thead tr:only-child th {\n", " text-align: right;\n", " }\n", "\n", " .dataframe thead th {\n", " text-align: left;\n", " }\n", "\n", " .dataframe tbody tr th {\n", " vertical-align: top;\n", " }\n", "</style>\n", "<table border=\"1\" class=\"dataframe\">\n", " <thead>\n", " <tr style=\"text-align: right;\">\n", " <th></th>\n", " <th>country</th>\n", " <th>beer_servings</th>\n", " <th>spirit_servings</th>\n", " <th>wine_servings</th>\n", " <th>total_litres_of_pure_alcohol</th>\n", " <th>continent</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>0</th>\n", " <td>Afghanistan</td>\n", " <td>0</td>\n", " <td>0</td>\n", " <td>0</td>\n", " <td>0.0</td>\n", " <td>Asia</td>\n", " </tr>\n", " <tr>\n", " <th>1</th>\n", " <td>Albania</td>\n", " <td>89</td>\n", " <td>132</td>\n", " <td>54</td>\n", " <td>4.9</td>\n", " <td>Europe</td>\n", " </tr>\n", " <tr>\n", " <th>2</th>\n", " <td>Algeria</td>\n", " <td>25</td>\n", " <td>0</td>\n", " <td>14</td>\n", " <td>0.7</td>\n", " <td>Africa</td>\n", " </tr>\n", " <tr>\n", " <th>3</th>\n", " <td>Andorra</td>\n", " <td>245</td>\n", " <td>138</td>\n", " <td>312</td>\n", " <td>12.4</td>\n", " <td>Europe</td>\n", " </tr>\n", " <tr>\n", " <th>4</th>\n", " <td>Angola</td>\n", " <td>217</td>\n", " <td>57</td>\n", " <td>45</td>\n", " <td>5.9</td>\n", " <td>Africa</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ " country beer_servings spirit_servings wine_servings \\\n", "0 Afghanistan 0 0 0 \n", "1 Albania 89 132 54 \n", "2 Algeria 25 0 14 \n", "3 Andorra 245 138 312 \n", "4 Angola 217 57 45 \n", "\n", " total_litres_of_pure_alcohol continent \n", "0 0.0 Asia \n", "1 4.9 Europe \n", "2 0.7 Africa \n", "3 12.4 Europe \n", "4 5.9 Africa " ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# reading table\n", "# making seperator as comma\n", "df = pd.read_table(\n", " 'http://bit.ly/drinksbycountry', \n", " sep=','\n", " )\n", "df.head(5)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "<div>\n", "<style>\n", " .dataframe thead tr:only-child th {\n", " text-align: right;\n", " }\n", "\n", " .dataframe thead th {\n", " text-align: left;\n", " }\n", "\n", " .dataframe tbody tr th {\n", " vertical-align: top;\n", " }\n", "</style>\n", "<table border=\"1\" class=\"dataframe\">\n", " <thead>\n", " <tr style=\"text-align: right;\">\n", " <th></th>\n", " <th>country</th>\n", " <th>beer_servings</th>\n", " <th>spirit_servings</th>\n", " <th>wine_servings</th>\n", " <th>total_litres_of_pure_alcohol</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>0</th>\n", " <td>Afghanistan</td>\n", " <td>0</td>\n", " <td>0</td>\n", " <td>0</td>\n", " <td>0.0</td>\n", " </tr>\n", " <tr>\n", " <th>1</th>\n", " <td>Albania</td>\n", " <td>89</td>\n", " <td>132</td>\n", " <td>54</td>\n", " <td>4.9</td>\n", " </tr>\n", " <tr>\n", " <th>2</th>\n", " <td>Algeria</td>\n", " <td>25</td>\n", " <td>0</td>\n", " <td>14</td>\n", " <td>0.7</td>\n", " </tr>\n", " <tr>\n", " <th>3</th>\n", " <td>Andorra</td>\n", " <td>245</td>\n", " <td>138</td>\n", " <td>312</td>\n", " <td>12.4</td>\n", " </tr>\n", " <tr>\n", " <th>4</th>\n", " <td>Angola</td>\n", " <td>217</td>\n", " <td>57</td>\n", " <td>45</td>\n", " <td>5.9</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ " country beer_servings spirit_servings wine_servings \\\n", "0 Afghanistan 0 0 0 \n", "1 Albania 89 132 54 \n", "2 Algeria 25 0 14 \n", "3 Andorra 245 138 312 \n", "4 Angola 217 57 45 \n", "\n", " total_litres_of_pure_alcohol \n", "0 0.0 \n", "1 4.9 \n", "2 0.7 \n", "3 12.4 \n", "4 5.9 " ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# in-context with drop() method for column\n", "# since inplace=T/F not used. So it is not saved for now.\n", "df.drop('continent', axis=1).head(5)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "<div>\n", "<style>\n", " .dataframe thead tr:only-child th {\n", " text-align: right;\n", " }\n", "\n", " .dataframe thead th {\n", " text-align: left;\n", " }\n", "\n", " .dataframe tbody tr th {\n", " vertical-align: top;\n", " }\n", "</style>\n", "<table border=\"1\" class=\"dataframe\">\n", " <thead>\n", " <tr style=\"text-align: right;\">\n", " <th></th>\n", " <th>country</th>\n", " <th>beer_servings</th>\n", " <th>spirit_servings</th>\n", " <th>wine_servings</th>\n", " <th>total_litres_of_pure_alcohol</th>\n", " <th>continent</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>0</th>\n", " <td>Afghanistan</td>\n", " <td>0</td>\n", " <td>0</td>\n", " <td>0</td>\n", " <td>0.0</td>\n", " <td>Asia</td>\n", " </tr>\n", " <tr>\n", " <th>1</th>\n", " <td>Albania</td>\n", " <td>89</td>\n", " <td>132</td>\n", " <td>54</td>\n", " <td>4.9</td>\n", " <td>Europe</td>\n", " </tr>\n", " <tr>\n", " <th>2</th>\n", " <td>Algeria</td>\n", " <td>25</td>\n", " <td>0</td>\n", " <td>14</td>\n", " <td>0.7</td>\n", " <td>Africa</td>\n", " </tr>\n", " <tr>\n", " <th>4</th>\n", " <td>Angola</td>\n", " <td>217</td>\n", " <td>57</td>\n", " <td>45</td>\n", " <td>5.9</td>\n", " <td>Africa</td>\n", " </tr>\n", " <tr>\n", " <th>5</th>\n", " <td>Antigua & Barbuda</td>\n", " <td>102</td>\n", " <td>128</td>\n", " <td>45</td>\n", " <td>4.9</td>\n", " <td>North America</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ " country beer_servings spirit_servings wine_servings \\\n", "0 Afghanistan 0 0 0 \n", "1 Albania 89 132 54 \n", "2 Algeria 25 0 14 \n", "4 Angola 217 57 45 \n", "5 Antigua & Barbuda 102 128 45 \n", "\n", " total_litres_of_pure_alcohol continent \n", "0 0.0 Asia \n", "1 4.9 Europe \n", "2 0.7 Africa \n", "4 5.9 Africa \n", "5 4.9 North America " ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# in-context with drop() method for row\n", "# since inplace=T/F not used. So it is not saved for now.\n", "df.drop(3, axis=0).head(5)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "beer_servings True\n", "spirit_servings True\n", "wine_servings True\n", "total_litres_of_pure_alcohol True\n", "dtype: bool" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# mean() method bydefault takes axis=0, if not specified\n", "df.mean(axis=0) == df.mean()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Takeaways\n", "\n", "1. axis=1 (Y-axis/Column) == axis='columns'\n", "2. axis=0 (X-axis/Row) == axis='index'\n", "\n", "# -----------------------" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# String Method in Pandas (Vid-12)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "<div>\n", "<style>\n", " .dataframe thead tr:only-child th {\n", " text-align: right;\n", " }\n", "\n", " .dataframe thead th {\n", " text-align: left;\n", " }\n", "\n", " .dataframe tbody tr th {\n", " vertical-align: top;\n", " }\n", "</style>\n", "<table border=\"1\" class=\"dataframe\">\n", " <thead>\n", " <tr style=\"text-align: right;\">\n", " <th></th>\n", " <th>country</th>\n", " <th>beer_servings</th>\n", " <th>spirit_servings</th>\n", " <th>wine_servings</th>\n", " <th>total_litres_of_pure_alcohol</th>\n", " <th>continent</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>0</th>\n", " <td>Afghanistan</td>\n", " <td>0</td>\n", " <td>0</td>\n", " <td>0</td>\n", " <td>0.0</td>\n", " <td>Asia</td>\n", " </tr>\n", " <tr>\n", " <th>1</th>\n", " <td>Albania</td>\n", " <td>89</td>\n", " <td>132</td>\n", " <td>54</td>\n", " <td>4.9</td>\n", " <td>Europe</td>\n", " </tr>\n", " <tr>\n", " <th>2</th>\n", " <td>Algeria</td>\n", " <td>25</td>\n", " <td>0</td>\n", " <td>14</td>\n", " <td>0.7</td>\n", " <td>Africa</td>\n", " </tr>\n", " <tr>\n", " <th>3</th>\n", " <td>Andorra</td>\n", " <td>245</td>\n", " <td>138</td>\n", " <td>312</td>\n", " <td>12.4</td>\n", " <td>Europe</td>\n", " </tr>\n", " <tr>\n", " <th>4</th>\n", " <td>Angola</td>\n", " <td>217</td>\n", " <td>57</td>\n", " <td>45</td>\n", " <td>5.9</td>\n", " <td>Africa</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ " country beer_servings spirit_servings wine_servings \\\n", "0 Afghanistan 0 0 0 \n", "1 Albania 89 132 54 \n", "2 Algeria 25 0 14 \n", "3 Andorra 245 138 312 \n", "4 Angola 217 57 45 \n", "\n", " total_litres_of_pure_alcohol continent \n", "0 0.0 Asia \n", "1 4.9 Europe \n", "2 0.7 Africa \n", "3 12.4 Europe \n", "4 5.9 Africa " ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# reading table\n", "# making seperator as comma\n", "df = pd.read_table(\n", " 'http://bit.ly/drinksbycountry', \n", " sep=','\n", " )\n", "df.head(5)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# we would like to make continent to all small letters\n", "df['continent'] = df['continent'].str.lower()" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "<div>\n", "<style>\n", " .dataframe thead tr:only-child th {\n", " text-align: right;\n", " }\n", "\n", " .dataframe thead th {\n", " text-align: left;\n", " }\n", "\n", " .dataframe tbody tr th {\n", " vertical-align: top;\n", " }\n", "</style>\n", "<table border=\"1\" class=\"dataframe\">\n", " <thead>\n", " <tr style=\"text-align: right;\">\n", " <th></th>\n", " <th>country</th>\n", " <th>beer_servings</th>\n", " <th>spirit_servings</th>\n", " <th>wine_servings</th>\n", " <th>total_litres_of_pure_alcohol</th>\n", " <th>continent</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>0</th>\n", " <td>Afghanistan</td>\n", " <td>0</td>\n", " <td>0</td>\n", " <td>0</td>\n", " <td>0.0</td>\n", " <td>asia</td>\n", " </tr>\n", " <tr>\n", " <th>12</th>\n", " <td>Bahrain</td>\n", " <td>42</td>\n", " <td>63</td>\n", " <td>7</td>\n", " <td>2.0</td>\n", " <td>asia</td>\n", " </tr>\n", " <tr>\n", " <th>13</th>\n", " <td>Bangladesh</td>\n", " <td>0</td>\n", " <td>0</td>\n", " <td>0</td>\n", " <td>0.0</td>\n", " <td>asia</td>\n", " </tr>\n", " <tr>\n", " <th>19</th>\n", " <td>Bhutan</td>\n", " <td>23</td>\n", " <td>0</td>\n", " <td>0</td>\n", " <td>0.4</td>\n", " <td>asia</td>\n", " </tr>\n", " <tr>\n", " <th>24</th>\n", " <td>Brunei</td>\n", " <td>31</td>\n", " <td>2</td>\n", " <td>1</td>\n", " <td>0.6</td>\n", " <td>asia</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ " country beer_servings spirit_servings wine_servings \\\n", "0 Afghanistan 0 0 0 \n", "12 Bahrain 42 63 7 \n", "13 Bangladesh 0 0 0 \n", "19 Bhutan 23 0 0 \n", "24 Brunei 31 2 1 \n", "\n", " total_litres_of_pure_alcohol continent \n", "0 0.0 asia \n", "12 2.0 asia \n", "13 0.0 asia \n", "19 0.4 asia \n", "24 0.6 asia " ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# we would now like to filter the table where continent is asia\n", "df[df.continent.str.contains('asia')].head(5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Takeaways\n", "\n", "1. To apply any of the string methods on pandas series, first typecast them as string by using .str then use the relevant method\n", "\n", "# -----------------------" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Data type change (Vid-13)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "<div>\n", "<style>\n", " .dataframe thead tr:only-child th {\n", " text-align: right;\n", " }\n", "\n", " .dataframe thead th {\n", " text-align: left;\n", " }\n", "\n", " .dataframe tbody tr th {\n", " vertical-align: top;\n", " }\n", "</style>\n", "<table border=\"1\" class=\"dataframe\">\n", " <thead>\n", " <tr style=\"text-align: right;\">\n", " <th></th>\n", " <th>country</th>\n", " <th>beer_servings</th>\n", " <th>spirit_servings</th>\n", " <th>wine_servings</th>\n", " <th>total_litres_of_pure_alcohol</th>\n", " <th>continent</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>0</th>\n", " <td>Afghanistan</td>\n", " <td>0</td>\n", " <td>0</td>\n", " <td>0</td>\n", " <td>0.0</td>\n", " <td>Asia</td>\n", " </tr>\n", " <tr>\n", " <th>1</th>\n", " <td>Albania</td>\n", " <td>89</td>\n", " <td>132</td>\n", " <td>54</td>\n", " <td>4.9</td>\n", " <td>Europe</td>\n", " </tr>\n", " <tr>\n", " <th>2</th>\n", " <td>Algeria</td>\n", " <td>25</td>\n", " <td>0</td>\n", " <td>14</td>\n", " <td>0.7</td>\n", " <td>Africa</td>\n", " </tr>\n", " <tr>\n", " <th>3</th>\n", " <td>Andorra</td>\n", " <td>245</td>\n", " <td>138</td>\n", " <td>312</td>\n", " <td>12.4</td>\n", " <td>Europe</td>\n", " </tr>\n", " <tr>\n", " <th>4</th>\n", " <td>Angola</td>\n", " <td>217</td>\n", " <td>57</td>\n", " <td>45</td>\n", " <td>5.9</td>\n", " <td>Africa</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ " country beer_servings spirit_servings wine_servings \\\n", "0 Afghanistan 0 0 0 \n", "1 Albania 89 132 54 \n", "2 Algeria 25 0 14 \n", "3 Andorra 245 138 312 \n", "4 Angola 217 57 45 \n", "\n", " total_litres_of_pure_alcohol continent \n", "0 0.0 Asia \n", "1 4.9 Europe \n", "2 0.7 Africa \n", "3 12.4 Europe \n", "4 5.9 Africa " ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# reading table\n", "# making seperator as comma\n", "df = pd.read_table(\n", " 'http://bit.ly/drinksbycountry', \n", " sep=','\n", " )\n", "df.head(5)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "country object\n", "beer_servings int64\n", "spirit_servings int64\n", "wine_servings int64\n", "total_litres_of_pure_alcohol float64\n", "continent object\n", "dtype: object" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# country and continent are strings, rest all are numeric\n", "df.dtypes" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": true }, "outputs": [], "source": [ "df.total_litres_of_pure_alcohol = df.total_litres_of_pure_alcohol.astype('int64')" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "<div>\n", "<style>\n", " .dataframe thead tr:only-child th {\n", " text-align: right;\n", " }\n", "\n", " .dataframe thead th {\n", " text-align: left;\n", " }\n", "\n", " .dataframe tbody tr th {\n", " vertical-align: top;\n", " }\n", "</style>\n", "<table border=\"1\" class=\"dataframe\">\n", " <thead>\n", " <tr style=\"text-align: right;\">\n", " <th></th>\n", " <th>country</th>\n", " <th>beer_servings</th>\n", " <th>spirit_servings</th>\n", " <th>wine_servings</th>\n", " <th>total_litres_of_pure_alcohol</th>\n", " <th>continent</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>0</th>\n", " <td>Afghanistan</td>\n", " <td>0</td>\n", " <td>0</td>\n", " <td>0</td>\n", " <td>0</td>\n", " <td>Asia</td>\n", " </tr>\n", " <tr>\n", " <th>1</th>\n", " <td>Albania</td>\n", " <td>89</td>\n", " <td>132</td>\n", " <td>54</td>\n", " <td>4</td>\n", " <td>Europe</td>\n", " </tr>\n", " <tr>\n", " <th>2</th>\n", " <td>Algeria</td>\n", " <td>25</td>\n", " <td>0</td>\n", " <td>14</td>\n", " <td>0</td>\n", " <td>Africa</td>\n", " </tr>\n", " <tr>\n", " <th>3</th>\n", " <td>Andorra</td>\n", " <td>245</td>\n", " <td>138</td>\n", " <td>312</td>\n", " <td>12</td>\n", " <td>Europe</td>\n", " </tr>\n", " <tr>\n", " <th>4</th>\n", " <td>Angola</td>\n", " <td>217</td>\n", " <td>57</td>\n", " <td>45</td>\n", " <td>5</td>\n", " <td>Africa</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ " country beer_servings spirit_servings wine_servings \\\n", "0 Afghanistan 0 0 0 \n", "1 Albania 89 132 54 \n", "2 Algeria 25 0 14 \n", "3 Andorra 245 138 312 \n", "4 Angola 217 57 45 \n", "\n", " total_litres_of_pure_alcohol continent \n", "0 0 Asia \n", "1 4 Europe \n", "2 0 Africa \n", "3 12 Europe \n", "4 5 Africa " ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# notice the change under `total_litres_of_pure_alcohol` column name\n", "df.head(5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Takeaways\n", "\n", "1. Sometimes while importing dataset, you numbers can be of object type. There you might want to changes the types for applying mathematical operations.\n", "\n", "# -----------------------" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Using GroupBy (Vid-14)" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "<div>\n", "<style>\n", " .dataframe thead tr:only-child th {\n", " text-align: right;\n", " }\n", "\n", " .dataframe thead th {\n", " text-align: left;\n", " }\n", "\n", " .dataframe tbody tr th {\n", " vertical-align: top;\n", " }\n", "</style>\n", "<table border=\"1\" class=\"dataframe\">\n", " <thead>\n", " <tr style=\"text-align: right;\">\n", " <th></th>\n", " <th>country</th>\n", " <th>beer_servings</th>\n", " <th>spirit_servings</th>\n", " <th>wine_servings</th>\n", " <th>total_litres_of_pure_alcohol</th>\n", " <th>continent</th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>0</th>\n", " <td>Afghanistan</td>\n", " <td>0</td>\n", " <td>0</td>\n", " <td>0</td>\n", " <td>0.0</td>\n", " <td>Asia</td>\n", " </tr>\n", " <tr>\n", " <th>1</th>\n", " <td>Albania</td>\n", " <td>89</td>\n", " <td>132</td>\n", " <td>54</td>\n", " <td>4.9</td>\n", " <td>Europe</td>\n", " </tr>\n", " <tr>\n", " <th>2</th>\n", " <td>Algeria</td>\n", " <td>25</td>\n", " <td>0</td>\n", " <td>14</td>\n", " <td>0.7</td>\n", " <td>Africa</td>\n", " </tr>\n", " <tr>\n", " <th>3</th>\n", " <td>Andorra</td>\n", " <td>245</td>\n", " <td>138</td>\n", " <td>312</td>\n", " <td>12.4</td>\n", " <td>Europe</td>\n", " </tr>\n", " <tr>\n", " <th>4</th>\n", " <td>Angola</td>\n", " <td>217</td>\n", " <td>57</td>\n", " <td>45</td>\n", " <td>5.9</td>\n", " <td>Africa</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ " country beer_servings spirit_servings wine_servings \\\n", "0 Afghanistan 0 0 0 \n", "1 Albania 89 132 54 \n", "2 Algeria 25 0 14 \n", "3 Andorra 245 138 312 \n", "4 Angola 217 57 45 \n", "\n", " total_litres_of_pure_alcohol continent \n", "0 0.0 Asia \n", "1 4.9 Europe \n", "2 0.7 Africa \n", "3 12.4 Europe \n", "4 5.9 Africa " ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# reading table\n", "# making seperator as comma\n", "df = pd.read_table(\n", " 'http://bit.ly/drinksbycountry', \n", " sep=','\n", " )\n", "df.head(5)" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "continent\n", "Africa 3.007547\n", "Asia 2.170455\n", "Europe 8.617778\n", "North America 5.995652\n", "Oceania 3.381250\n", "South America 6.308333\n", "Name: total_litres_of_pure_alcohol, dtype: float64" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# we will group by each continent to get on average total_liters_of_pure_alcohol\n", "df.groupby('continent')['total_litres_of_pure_alcohol'].mean()" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "2.170454545454545" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# for continent asia, what is the mean value of `total_litres_of_pure_alcohol`\n", "df[df.continent.str.contains('Asia')]['total_litres_of_pure_alcohol'].mean()" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "<div>\n", "<style>\n", " .dataframe thead tr:only-child th {\n", " text-align: right;\n", " }\n", "\n", " .dataframe thead th {\n", " text-align: left;\n", " }\n", "\n", " .dataframe tbody tr th {\n", " vertical-align: top;\n", " }\n", "</style>\n", "<table border=\"1\" class=\"dataframe\">\n", " <thead>\n", " <tr style=\"text-align: right;\">\n", " <th></th>\n", " <th>count</th>\n", " <th>min</th>\n", " <th>max</th>\n", " <th>mean</th>\n", " </tr>\n", " <tr>\n", " <th>continent</th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " <th></th>\n", " </tr>\n", " </thead>\n", " <tbody>\n", " <tr>\n", " <th>Africa</th>\n", " <td>53</td>\n", " <td>0.0</td>\n", " <td>9.1</td>\n", " <td>3.007547</td>\n", " </tr>\n", " <tr>\n", " <th>Asia</th>\n", " <td>44</td>\n", " <td>0.0</td>\n", " <td>11.5</td>\n", " <td>2.170455</td>\n", " </tr>\n", " <tr>\n", " <th>Europe</th>\n", " <td>45</td>\n", " <td>0.0</td>\n", " <td>14.4</td>\n", " <td>8.617778</td>\n", " </tr>\n", " <tr>\n", " <th>North America</th>\n", " <td>23</td>\n", " <td>2.2</td>\n", " <td>11.9</td>\n", " <td>5.995652</td>\n", " </tr>\n", " <tr>\n", " <th>Oceania</th>\n", " <td>16</td>\n", " <td>0.0</td>\n", " <td>10.4</td>\n", " <td>3.381250</td>\n", " </tr>\n", " <tr>\n", " <th>South America</th>\n", " <td>12</td>\n", " <td>3.8</td>\n", " <td>8.3</td>\n", " <td>6.308333</td>\n", " </tr>\n", " </tbody>\n", "</table>\n", "</div>" ], "text/plain": [ " count min max mean\n", "continent \n", "Africa 53 0.0 9.1 3.007547\n", "Asia 44 0.0 11.5 2.170455\n", "Europe 45 0.0 14.4 8.617778\n", "North America 23 2.2 11.9 5.995652\n", "Oceania 16 0.0 10.4 3.381250\n", "South America 12 3.8 8.3 6.308333" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# keeping eye to all necessary stats at once using `agg` method by passing list of necessary attributes\n", "df.groupby('continent')['total_litres_of_pure_alcohol'].agg(['count', 'min', 'max', 'mean'])" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "<matplotlib.axes._subplots.AxesSubplot at 0x7fc1f5b6f7d0>" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAFJCAYAAACLh9YgAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzt3XmYVdWd7vHvW0hExSEK0ipGSAdF\nDIMGiYoDQwa6TdRWNFE0QIzk3pgG7UwmaVuvl3gd0mqrN7nSEUWjMQ5R0eQmGoc4pWMKcWIwEIMG\nJwgqcQjK8Os/9i4ssIqazjn77MX7eZ566ux9pt+pRb2sWnvttRURmJlZ+TUUXYCZmVWGA93MLBEO\ndDOzRDjQzcwS4UA3M0uEA93MLBEOdDOzRDjQzcwS4UA3M0vEFrV8s169ekW/fv1q+ZZmZqU3Z86c\nv0RE77YeV9NA79evH42NjbV8SzOz0pP0XHse5yEXM7NEONDNzBLhQDczS0RNx9DNzDZl9erVLF26\nlFWrVhVdSiF69OhB37596d69e6ee70A3s7qxdOlStt12W/r164ekosupqYhgxYoVLF26lP79+3fq\nNTzkYmZ1Y9WqVey0006bXZgDSGKnnXbq0l8nDnQzqyubY5g36epnd6CbmSWiFGPo/c74eav3LTnv\n8BpWYma1tKnf/c6oh7y45JJLmDJlCltvvXXFX9s9dDOzGrrkkkt4++23q/LaDnQzs41cc801DBky\nhKFDh3LSSSexZMkSxowZw5AhQxg7dizPP/88AJMmTeLmm29e/7yePXsCcP/99zNq1CjGjx/PwIED\nmTBhAhHBpZdeyosvvsjo0aMZPXp0xesuxZCLmVmtzJs3j+nTp/PII4/Qq1cvXn31VSZOnLj+a+bM\nmUydOpXbbrttk68zd+5c5s2bx6677srIkSN5+OGHmTp1KhdddBH33XcfvXr1qnjt7qGbmTVz7733\ncuyxx64P3B133JHf/va3nHDCCQCcdNJJPPTQQ22+zogRI+jbty8NDQ0MGzaMJUuWVLNswIFuZtZp\nW2yxBevWrQNg3bp1vPvuu+vv23LLLdff7tatG2vWrKl6PQ50M7NmxowZw0033cSKFSsAePXVVzno\noIO44YYbALjuuus45JBDgGxJ8Dlz5gAwe/ZsVq9e3ebrb7vttrzxxhtVqd1j6GZWt4qYZrjPPvvw\n3e9+l8MOO4xu3bqx7777ctlllzF58mQuvPBCevfuzVVXXQXAKaecwpFHHsnQoUMZN24c22yzTZuv\nP2XKFMaNG8euu+7KfffdV9HaFREVfcFNGT58eHTmAheeh262eViwYAF777130WUUqqWfgaQ5ETG8\nree2q4cuaQnwBrAWWBMRwyXtCPwU6AcsAY6LiNc6VLmZmVVMR8bQR0fEsGb/S5wB3BMRA4B78m0z\nMytIVw6KHgnMym/PAo7qejlmZtZZ7Q30AO6SNEfSlHxfn4h4Kb/9MtCnpSdKmiKpUVLj8uXLu1iu\nmZm1pr2zXA6OiBck7QzcLWlh8zsjIiS1eHQ1ImYAMyA7KNqlas3MrFXt6qFHxAv592XArcAI4BVJ\nuwDk35dVq0gzM2tbmz10SdsADRHxRn77U8A5wGxgInBe/v32ahZqZpuhs7ev8OutrMjLzJ49m/nz\n53PGGfU1F6Q9Qy59gFvzK2lsAVwfEb+U9HvgRkknA88Bx1WvTDOz+nHEEUdwxBFHFF3G+7QZ6BHx\nLDC0hf0rgLHVKMrMrChLlixh3LhxHHDAATzyyCPsv//+TJ48mbPOOotly5Zx3XXXMX/+fBobG7n8\n8suZNGkS2223HY2Njbz88stccMEFjB8/vpDavZaLmdlGFi9ezNe+9jUWLlzIwoULuf7663nooYf4\n/ve/z7nnnvu+x7/00ks89NBD3HnnnYUOw3gtFzOzjfTv35/BgwcD2douY8eORRKDBw9ucRnco446\nioaGBgYNGsQrr7xS42rf4x66mdlGmi9929DQsH67oaGhxWVwmz++lutjbcyBbmaWCA+5mFn9qtA0\nw82FA93MrJl+/frx9NNPr9+++uqrW7xv0qRJ77sf4M0336x2ia3ykIuZWSIc6GZmiXCgm5klwoFu\nZpYIB7qZWSIc6GZmifC0RTOrW4NnDa7o6z018amKvl69cQ/dzCwR7qFbVfU74+et3rfkvMNrWIlZ\n+7Rn+VyAadOmsWrVKrbaaiuuuuoq9tprLy6++GKeeuopZs6cyVNPPcXxxx/Po48+ytZbb12T2t1D\nNzPbSFvL5w4cOJAHH3yQuXPncs455/Cd73wHyEJ+8eLF3HrrrUyePJkrrriiZmEO7qGbmb1PW8vn\nrly5kokTJ7Jo0SIksXr1aiBbjfHqq69myJAhfPnLX2bkyJE1rds9dDOzjbS1fO6ZZ57J6NGjefrp\np7njjjtYtWrV+scvWrSInj178uKLL9a8bvfQ64DHmc3KZeXKley2227AhotzrVy5kqlTp/LAAw/w\n1a9+lZtvvrmml6NzoJtZ3arXaYbf/OY3mThxItOnT+fww9/rdJ1++umceuqp7Lnnnlx55ZWMHj2a\nQw89lJ133rkmdTnQzcyaae/yuX/4wx/W758+fToAM2fOXL9v9913Z/HixVWudkMeQzczS4QD3cws\nEQ50M7NEONDNzBLhQDczS4QD3cwsEZ62aGZ1a8HAvSv6ensvXFDR16s37qGbmSXCgW5m1sySJUsY\nOHAgkyZNYs8992TChAn8+te/ZuTIkQwYMIBHH32Ut956iy9+8YuMGDGCfffdl9tvv339cw855BD2\n228/9ttvPx555BEA7r//fkaNGsX48eMZOHAgEyZMICIqXnu7h1wkdQMagRci4jOS+gM3ADsBc4CT\nIuLdildoZlZjixcv5qabbmLmzJnsv//+65fPnT17Nueeey6DBg1izJgxzJw5k9dff50RI0bwiU98\ngp133pm7776bHj16sGjRIo4//ngaGxsBmDt3LvPmzWPXXXdl5MiRPPzwwxx88MEVrbsjPfRpQPMB\nqPOBiyPiI8BrwMmVLMzMrChNy+c2NDS0uHzuXXfdxXnnncewYcMYNWoUq1at4vnnn2f16tWccsop\nDB48mGOPPZb58+evf80RI0bQt29fGhoaGDZsGEuWLKl43e3qoUvqCxwOfA/4F0kCxgAn5A+ZBZwN\n/LDiFZqZ1Vhby+d269aNW265hb322muD55199tn06dOHJ554gnXr1tGjR48WX7Nbt26sWbOm4nW3\nt4d+CfBNYF2+vRPwekQ0VbQU2K2lJ0qaIqlRUuPy5cu7VKyZWT349Kc/zWWXXbZ+HHzu3LlAtnzu\nLrvsQkNDA9deey1r166taV1t9tAlfQZYFhFzJI3q6BtExAxgBsDw4cMrfxTAzJJVr9MMzzzzTE47\n7TSGDBnCunXr6N+/P3feeSdf+cpXOOaYY7jmmmsYN24c22yzTU3ras+Qy0jgCEn/CPQAtgP+A9hB\n0hZ5L70v8EL1yjQzq432Lp97xRVXvO+5AwYM4Mknn1y/ff755wMwatQoRo0atX7/5ZdfXuGqM20O\nuUTEtyOib0T0Az4P3BsRE4D7gKZLcUwEbq9KhWZm1i5dmYf+LbIDpIvJxtSvrExJZmbWGR069T8i\n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\nWSL+G2b+AiobqZ6pAAAAAElFTkSuQmCC\n", "text/plain": [ "<Figure size 600x400 with 1 Axes>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "df.groupby('continent')['total_litres_of_pure_alcohol'].agg(['count', 'min', 'max', 'mean']).plot(kind='bar')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Takeaways\n", "\n", "1. \"agg\" method can be used to generate stats in one shot\n", "\n", "# -----------------------" ] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.12" } }, "nbformat": 4, "nbformat_minor": 1 }