Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save lmantilla051964/0afa9e0edf18fa4536754f1c0b2fde58 to your computer and use it in GitHub Desktop.
Save lmantilla051964/0afa9e0edf18fa4536754f1c0b2fde58 to your computer and use it in GitHub Desktop.
Created on Skills Network Labs
{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"<a href=\"https://cognitiveclass.ai\"><img src = \"https://ibm.box.com/shared/static/9gegpsmnsoo25ikkbl4qzlvlyjbgxs5x.png\" width = 400> </a>\n",
"\n",
"<h1 align=center><font size = 5>Introduction to Matplotlib and Line Plots</font></h1>"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"## Introduction\n",
"\n",
"The aim of these labs is to introduce you to data visualization with Python as concrete and as consistent as possible. \n",
"Speaking of consistency, because there is no *best* data visualization library avaiblable for Python - up to creating these labs - we have to introduce different libraries and show their benefits when we are discussing new visualization concepts. Doing so, we hope to make students well-rounded with visualization libraries and concepts so that they are able to judge and decide on the best visualitzation technique and tool for a given problem _and_ audience.\n",
"\n",
"Please make sure that you have completed the prerequisites for this course, namely <a href='http://cocl.us/PY0101EN_DV0101EN_LAB1_Coursera'>**Python for Data Science**</a> and <a href='http://cocl.us/DA0101EN_DV0101EN_LAB1_Coursera'>**Data Analysis with Python**</a>, which are part of this specialization. \n",
"\n",
"**Note**: The majority of the plots and visualizations will be generated using data stored in *pandas* dataframes. Therefore, in this lab, we provide a brief crash course on *pandas*. However, if you are interested in learning more about the *pandas* library, detailed description and explanation of how to use it and how to clean, munge, and process data stored in a *pandas* dataframe are provided in our course <a href='http://cocl.us/DA0101EN_DV0101EN_LAB1_Coursera'>**Data Analysis with Python**</a>, which is also part of this specialization. \n",
"\n",
"------------"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"## Table of Contents\n",
"\n",
"<div class=\"alert alert-block alert-info\" style=\"margin-top: 20px\">\n",
"\n",
"1. [Exploring Datasets with *pandas*](#0)<br>\n",
"1.1 [The Dataset: Immigration to Canada from 1980 to 2013](#2)<br>\n",
"1.2 [*pandas* Basics](#4) <br>\n",
"1.3 [*pandas* Intermediate: Indexing and Selection](#6) <br>\n",
"2. [Visualizing Data using Matplotlib](#8) <br>\n",
"2.1 [Matplotlib: Standard Python Visualization Library](#10) <br>\n",
"3. [Line Plots](#12)\n",
"</div>\n",
"<hr>"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"# Exploring Datasets with *pandas* <a id=\"0\"></a>\n",
"\n",
"*pandas* is an essential data analysis toolkit for Python. From their [website](http://pandas.pydata.org/):\n",
">*pandas* is a Python package providing fast, flexible, and expressive data structures designed to make working with “relational” or “labeled” data both easy and intuitive. It aims to be the fundamental high-level building block for doing practical, **real world** data analysis in Python.\n",
"\n",
"The course heavily relies on *pandas* for data wrangling, analysis, and visualization. We encourage you to spend some time and familizare yourself with the *pandas* API Reference: http://pandas.pydata.org/pandas-docs/stable/api.html."
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"## The Dataset: Immigration to Canada from 1980 to 2013 <a id=\"2\"></a>"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"Dataset Source: [International migration flows to and from selected countries - The 2015 revision](http://www.un.org/en/development/desa/population/migration/data/empirical2/migrationflows.shtml).\n",
"\n",
"The dataset contains annual data on the flows of international immigrants as recorded by the countries of destination. The data presents both inflows and outflows according to the place of birth, citizenship or place of previous / next residence both for foreigners and nationals. The current version presents data pertaining to 45 countries.\n",
"\n",
"In this lab, we will focus on the Canadian immigration data.\n",
"\n",
"<img src = \"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DV0101EN/labs/Images/Mod1Fig1-Dataset.png\" align=\"center\" width=900>\n",
"\n",
"For sake of simplicity, Canada's immigration data has been extracted and uploaded to one of IBM servers. You can fetch the data from [here](https://ibm.box.com/shared/static/lw190pt9zpy5bd1ptyg2aw15awomz9pu.xlsx).\n",
"\n",
"---"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"## *pandas* Basics<a id=\"4\"></a>"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"The first thing we'll do is import two key data analysis modules: *pandas* and **Numpy**."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"outputs": [],
"source": [
"import numpy as np # useful for many scientific computing in Python\n",
"import pandas as pd # primary data structure library"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"Let's download and import our primary Canadian Immigration dataset using *pandas* `read_excel()` method. Normally, before we can do that, we would need to download a module which *pandas* requires to read in excel files. This module is **xlrd**. For your convenience, we have pre-installed this module, so you would not have to worry about that. Otherwise, you would need to run the following line of code to install the **xlrd** module:\n",
"```\n",
"!conda install -c anaconda xlrd --yes\n",
"```"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"Now we are ready to read in our data."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"button": false,
"collapsed": false,
"deletable": true,
"jupyter": {
"outputs_hidden": false
},
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Data read into a pandas dataframe!\n"
]
}
],
"source": [
"df_can = pd.read_excel('https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DV0101EN/labs/Data_Files/Canada.xlsx',\n",
" sheet_name='Canada by Citizenship',\n",
" skiprows=range(20),\n",
" skipfooter=2)\n",
"\n",
"print ('Data read into a pandas dataframe!')"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"Let's view the top 5 rows of the dataset using the `head()` function."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"button": false,
"collapsed": false,
"deletable": true,
"jupyter": {
"outputs_hidden": false
},
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Type</th>\n",
" <th>Coverage</th>\n",
" <th>OdName</th>\n",
" <th>AREA</th>\n",
" <th>AreaName</th>\n",
" <th>REG</th>\n",
" <th>RegName</th>\n",
" <th>DEV</th>\n",
" <th>DevName</th>\n",
" <th>1980</th>\n",
" <th>...</th>\n",
" <th>2004</th>\n",
" <th>2005</th>\n",
" <th>2006</th>\n",
" <th>2007</th>\n",
" <th>2008</th>\n",
" <th>2009</th>\n",
" <th>2010</th>\n",
" <th>2011</th>\n",
" <th>2012</th>\n",
" <th>2013</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>Immigrants</td>\n",
" <td>Foreigners</td>\n",
" <td>Afghanistan</td>\n",
" <td>935</td>\n",
" <td>Asia</td>\n",
" <td>5501</td>\n",
" <td>Southern Asia</td>\n",
" <td>902</td>\n",
" <td>Developing regions</td>\n",
" <td>16</td>\n",
" <td>...</td>\n",
" <td>2978</td>\n",
" <td>3436</td>\n",
" <td>3009</td>\n",
" <td>2652</td>\n",
" <td>2111</td>\n",
" <td>1746</td>\n",
" <td>1758</td>\n",
" <td>2203</td>\n",
" <td>2635</td>\n",
" <td>2004</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Immigrants</td>\n",
" <td>Foreigners</td>\n",
" <td>Albania</td>\n",
" <td>908</td>\n",
" <td>Europe</td>\n",
" <td>925</td>\n",
" <td>Southern Europe</td>\n",
" <td>901</td>\n",
" <td>Developed regions</td>\n",
" <td>1</td>\n",
" <td>...</td>\n",
" <td>1450</td>\n",
" <td>1223</td>\n",
" <td>856</td>\n",
" <td>702</td>\n",
" <td>560</td>\n",
" <td>716</td>\n",
" <td>561</td>\n",
" <td>539</td>\n",
" <td>620</td>\n",
" <td>603</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>Immigrants</td>\n",
" <td>Foreigners</td>\n",
" <td>Algeria</td>\n",
" <td>903</td>\n",
" <td>Africa</td>\n",
" <td>912</td>\n",
" <td>Northern Africa</td>\n",
" <td>902</td>\n",
" <td>Developing regions</td>\n",
" <td>80</td>\n",
" <td>...</td>\n",
" <td>3616</td>\n",
" <td>3626</td>\n",
" <td>4807</td>\n",
" <td>3623</td>\n",
" <td>4005</td>\n",
" <td>5393</td>\n",
" <td>4752</td>\n",
" <td>4325</td>\n",
" <td>3774</td>\n",
" <td>4331</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>Immigrants</td>\n",
" <td>Foreigners</td>\n",
" <td>American Samoa</td>\n",
" <td>909</td>\n",
" <td>Oceania</td>\n",
" <td>957</td>\n",
" <td>Polynesia</td>\n",
" <td>902</td>\n",
" <td>Developing regions</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>Immigrants</td>\n",
" <td>Foreigners</td>\n",
" <td>Andorra</td>\n",
" <td>908</td>\n",
" <td>Europe</td>\n",
" <td>925</td>\n",
" <td>Southern Europe</td>\n",
" <td>901</td>\n",
" <td>Developed regions</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5 rows × 43 columns</p>\n",
"</div>"
],
"text/plain": [
" Type Coverage OdName AREA AreaName REG \\\n",
"0 Immigrants Foreigners Afghanistan 935 Asia 5501 \n",
"1 Immigrants Foreigners Albania 908 Europe 925 \n",
"2 Immigrants Foreigners Algeria 903 Africa 912 \n",
"3 Immigrants Foreigners American Samoa 909 Oceania 957 \n",
"4 Immigrants Foreigners Andorra 908 Europe 925 \n",
"\n",
" RegName DEV DevName 1980 ... 2004 2005 2006 \\\n",
"0 Southern Asia 902 Developing regions 16 ... 2978 3436 3009 \n",
"1 Southern Europe 901 Developed regions 1 ... 1450 1223 856 \n",
"2 Northern Africa 902 Developing regions 80 ... 3616 3626 4807 \n",
"3 Polynesia 902 Developing regions 0 ... 0 0 1 \n",
"4 Southern Europe 901 Developed regions 0 ... 0 0 1 \n",
"\n",
" 2007 2008 2009 2010 2011 2012 2013 \n",
"0 2652 2111 1746 1758 2203 2635 2004 \n",
"1 702 560 716 561 539 620 603 \n",
"2 3623 4005 5393 4752 4325 3774 4331 \n",
"3 0 0 0 0 0 0 0 \n",
"4 1 0 0 0 0 1 1 \n",
"\n",
"[5 rows x 43 columns]"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_can.head()\n",
"# tip: You can specify the number of rows you'd like to see as follows: df_can.head(10) "
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"We can also veiw the bottom 5 rows of the dataset using the `tail()` function."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"button": false,
"collapsed": false,
"deletable": true,
"jupyter": {
"outputs_hidden": false
},
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Type</th>\n",
" <th>Coverage</th>\n",
" <th>OdName</th>\n",
" <th>AREA</th>\n",
" <th>AreaName</th>\n",
" <th>REG</th>\n",
" <th>RegName</th>\n",
" <th>DEV</th>\n",
" <th>DevName</th>\n",
" <th>1980</th>\n",
" <th>...</th>\n",
" <th>2004</th>\n",
" <th>2005</th>\n",
" <th>2006</th>\n",
" <th>2007</th>\n",
" <th>2008</th>\n",
" <th>2009</th>\n",
" <th>2010</th>\n",
" <th>2011</th>\n",
" <th>2012</th>\n",
" <th>2013</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>190</th>\n",
" <td>Immigrants</td>\n",
" <td>Foreigners</td>\n",
" <td>Viet Nam</td>\n",
" <td>935</td>\n",
" <td>Asia</td>\n",
" <td>920</td>\n",
" <td>South-Eastern Asia</td>\n",
" <td>902</td>\n",
" <td>Developing regions</td>\n",
" <td>1191</td>\n",
" <td>...</td>\n",
" <td>1816</td>\n",
" <td>1852</td>\n",
" <td>3153</td>\n",
" <td>2574</td>\n",
" <td>1784</td>\n",
" <td>2171</td>\n",
" <td>1942</td>\n",
" <td>1723</td>\n",
" <td>1731</td>\n",
" <td>2112</td>\n",
" </tr>\n",
" <tr>\n",
" <th>191</th>\n",
" <td>Immigrants</td>\n",
" <td>Foreigners</td>\n",
" <td>Western Sahara</td>\n",
" <td>903</td>\n",
" <td>Africa</td>\n",
" <td>912</td>\n",
" <td>Northern Africa</td>\n",
" <td>902</td>\n",
" <td>Developing regions</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>192</th>\n",
" <td>Immigrants</td>\n",
" <td>Foreigners</td>\n",
" <td>Yemen</td>\n",
" <td>935</td>\n",
" <td>Asia</td>\n",
" <td>922</td>\n",
" <td>Western Asia</td>\n",
" <td>902</td>\n",
" <td>Developing regions</td>\n",
" <td>1</td>\n",
" <td>...</td>\n",
" <td>124</td>\n",
" <td>161</td>\n",
" <td>140</td>\n",
" <td>122</td>\n",
" <td>133</td>\n",
" <td>128</td>\n",
" <td>211</td>\n",
" <td>160</td>\n",
" <td>174</td>\n",
" <td>217</td>\n",
" </tr>\n",
" <tr>\n",
" <th>193</th>\n",
" <td>Immigrants</td>\n",
" <td>Foreigners</td>\n",
" <td>Zambia</td>\n",
" <td>903</td>\n",
" <td>Africa</td>\n",
" <td>910</td>\n",
" <td>Eastern Africa</td>\n",
" <td>902</td>\n",
" <td>Developing regions</td>\n",
" <td>11</td>\n",
" <td>...</td>\n",
" <td>56</td>\n",
" <td>91</td>\n",
" <td>77</td>\n",
" <td>71</td>\n",
" <td>64</td>\n",
" <td>60</td>\n",
" <td>102</td>\n",
" <td>69</td>\n",
" <td>46</td>\n",
" <td>59</td>\n",
" </tr>\n",
" <tr>\n",
" <th>194</th>\n",
" <td>Immigrants</td>\n",
" <td>Foreigners</td>\n",
" <td>Zimbabwe</td>\n",
" <td>903</td>\n",
" <td>Africa</td>\n",
" <td>910</td>\n",
" <td>Eastern Africa</td>\n",
" <td>902</td>\n",
" <td>Developing regions</td>\n",
" <td>72</td>\n",
" <td>...</td>\n",
" <td>1450</td>\n",
" <td>615</td>\n",
" <td>454</td>\n",
" <td>663</td>\n",
" <td>611</td>\n",
" <td>508</td>\n",
" <td>494</td>\n",
" <td>434</td>\n",
" <td>437</td>\n",
" <td>407</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5 rows × 43 columns</p>\n",
"</div>"
],
"text/plain": [
" Type Coverage OdName AREA AreaName REG \\\n",
"190 Immigrants Foreigners Viet Nam 935 Asia 920 \n",
"191 Immigrants Foreigners Western Sahara 903 Africa 912 \n",
"192 Immigrants Foreigners Yemen 935 Asia 922 \n",
"193 Immigrants Foreigners Zambia 903 Africa 910 \n",
"194 Immigrants Foreigners Zimbabwe 903 Africa 910 \n",
"\n",
" RegName DEV DevName 1980 ... 2004 2005 2006 \\\n",
"190 South-Eastern Asia 902 Developing regions 1191 ... 1816 1852 3153 \n",
"191 Northern Africa 902 Developing regions 0 ... 0 0 1 \n",
"192 Western Asia 902 Developing regions 1 ... 124 161 140 \n",
"193 Eastern Africa 902 Developing regions 11 ... 56 91 77 \n",
"194 Eastern Africa 902 Developing regions 72 ... 1450 615 454 \n",
"\n",
" 2007 2008 2009 2010 2011 2012 2013 \n",
"190 2574 1784 2171 1942 1723 1731 2112 \n",
"191 0 0 0 0 0 0 0 \n",
"192 122 133 128 211 160 174 217 \n",
"193 71 64 60 102 69 46 59 \n",
"194 663 611 508 494 434 437 407 \n",
"\n",
"[5 rows x 43 columns]"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_can.tail()"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"When analyzing a dataset, it's always a good idea to start by getting basic information about your dataframe. We can do this by using the `info()` method."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"button": false,
"collapsed": false,
"deletable": true,
"jupyter": {
"outputs_hidden": false
},
"new_sheet": false,
"run_control": {
"read_only": false
},
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"<class 'pandas.core.frame.DataFrame'>\n",
"RangeIndex: 195 entries, 0 to 194\n",
"Data columns (total 43 columns):\n",
" # Column Non-Null Count Dtype \n",
"--- ------ -------------- ----- \n",
" 0 Type 195 non-null object\n",
" 1 Coverage 195 non-null object\n",
" 2 OdName 195 non-null object\n",
" 3 AREA 195 non-null int64 \n",
" 4 AreaName 195 non-null object\n",
" 5 REG 195 non-null int64 \n",
" 6 RegName 195 non-null object\n",
" 7 DEV 195 non-null int64 \n",
" 8 DevName 195 non-null object\n",
" 9 1980 195 non-null int64 \n",
" 10 1981 195 non-null int64 \n",
" 11 1982 195 non-null int64 \n",
" 12 1983 195 non-null int64 \n",
" 13 1984 195 non-null int64 \n",
" 14 1985 195 non-null int64 \n",
" 15 1986 195 non-null int64 \n",
" 16 1987 195 non-null int64 \n",
" 17 1988 195 non-null int64 \n",
" 18 1989 195 non-null int64 \n",
" 19 1990 195 non-null int64 \n",
" 20 1991 195 non-null int64 \n",
" 21 1992 195 non-null int64 \n",
" 22 1993 195 non-null int64 \n",
" 23 1994 195 non-null int64 \n",
" 24 1995 195 non-null int64 \n",
" 25 1996 195 non-null int64 \n",
" 26 1997 195 non-null int64 \n",
" 27 1998 195 non-null int64 \n",
" 28 1999 195 non-null int64 \n",
" 29 2000 195 non-null int64 \n",
" 30 2001 195 non-null int64 \n",
" 31 2002 195 non-null int64 \n",
" 32 2003 195 non-null int64 \n",
" 33 2004 195 non-null int64 \n",
" 34 2005 195 non-null int64 \n",
" 35 2006 195 non-null int64 \n",
" 36 2007 195 non-null int64 \n",
" 37 2008 195 non-null int64 \n",
" 38 2009 195 non-null int64 \n",
" 39 2010 195 non-null int64 \n",
" 40 2011 195 non-null int64 \n",
" 41 2012 195 non-null int64 \n",
" 42 2013 195 non-null int64 \n",
"dtypes: int64(37), object(6)\n",
"memory usage: 65.6+ KB\n"
]
}
],
"source": [
"df_can.info()"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"To get the list of column headers we can call upon the dataframe's `.columns` parameter."
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"button": false,
"collapsed": false,
"deletable": true,
"jupyter": {
"outputs_hidden": false
},
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"array(['Type', 'Coverage', 'OdName', 'AREA', 'AreaName', 'REG', 'RegName',\n",
" 'DEV', 'DevName', 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987,\n",
" 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,\n",
" 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,\n",
" 2010, 2011, 2012, 2013], dtype=object)"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_can.columns.values "
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"Similarly, to get the list of indicies we use the `.index` parameter."
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"button": false,
"collapsed": false,
"deletable": true,
"jupyter": {
"outputs_hidden": false
},
"new_sheet": false,
"run_control": {
"read_only": false
},
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,\n",
" 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,\n",
" 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,\n",
" 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,\n",
" 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,\n",
" 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,\n",
" 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,\n",
" 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,\n",
" 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,\n",
" 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,\n",
" 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,\n",
" 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,\n",
" 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,\n",
" 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,\n",
" 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194])"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_can.index.values"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"Note: The default type of index and columns is NOT list."
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"button": false,
"collapsed": false,
"deletable": true,
"jupyter": {
"outputs_hidden": false
},
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"<class 'pandas.core.indexes.base.Index'>\n",
"<class 'pandas.core.indexes.range.RangeIndex'>\n"
]
}
],
"source": [
"print(type(df_can.columns))\n",
"print(type(df_can.index))"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"To get the index and columns as lists, we can use the `tolist()` method."
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"button": false,
"collapsed": false,
"deletable": true,
"jupyter": {
"outputs_hidden": false
},
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"<class 'list'>\n",
"<class 'list'>\n"
]
}
],
"source": [
"df_can.columns.tolist()\n",
"df_can.index.tolist()\n",
"\n",
"print (type(df_can.columns.tolist()))\n",
"print (type(df_can.index.tolist()))"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"To view the dimensions of the dataframe, we use the `.shape` parameter."
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"button": false,
"collapsed": false,
"deletable": true,
"jupyter": {
"outputs_hidden": false
},
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"(195, 43)"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# size of dataframe (rows, columns)\n",
"df_can.shape "
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"Note: The main types stored in *pandas* objects are *float*, *int*, *bool*, *datetime64[ns]* and *datetime64[ns, tz] (in >= 0.17.0)*, *timedelta[ns]*, *category (in >= 0.15.0)*, and *object* (string). In addition these dtypes have item sizes, e.g. int64 and int32. "
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"Let's clean the data set to remove a few unnecessary columns. We can use *pandas* `drop()` method as follows:"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"button": false,
"collapsed": false,
"deletable": true,
"jupyter": {
"outputs_hidden": false
},
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>OdName</th>\n",
" <th>AreaName</th>\n",
" <th>RegName</th>\n",
" <th>DevName</th>\n",
" <th>1980</th>\n",
" <th>1981</th>\n",
" <th>1982</th>\n",
" <th>1983</th>\n",
" <th>1984</th>\n",
" <th>1985</th>\n",
" <th>...</th>\n",
" <th>2004</th>\n",
" <th>2005</th>\n",
" <th>2006</th>\n",
" <th>2007</th>\n",
" <th>2008</th>\n",
" <th>2009</th>\n",
" <th>2010</th>\n",
" <th>2011</th>\n",
" <th>2012</th>\n",
" <th>2013</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>Afghanistan</td>\n",
" <td>Asia</td>\n",
" <td>Southern Asia</td>\n",
" <td>Developing regions</td>\n",
" <td>16</td>\n",
" <td>39</td>\n",
" <td>39</td>\n",
" <td>47</td>\n",
" <td>71</td>\n",
" <td>340</td>\n",
" <td>...</td>\n",
" <td>2978</td>\n",
" <td>3436</td>\n",
" <td>3009</td>\n",
" <td>2652</td>\n",
" <td>2111</td>\n",
" <td>1746</td>\n",
" <td>1758</td>\n",
" <td>2203</td>\n",
" <td>2635</td>\n",
" <td>2004</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Albania</td>\n",
" <td>Europe</td>\n",
" <td>Southern Europe</td>\n",
" <td>Developed regions</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>1450</td>\n",
" <td>1223</td>\n",
" <td>856</td>\n",
" <td>702</td>\n",
" <td>560</td>\n",
" <td>716</td>\n",
" <td>561</td>\n",
" <td>539</td>\n",
" <td>620</td>\n",
" <td>603</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>2 rows × 38 columns</p>\n",
"</div>"
],
"text/plain": [
" OdName AreaName RegName DevName 1980 1981 \\\n",
"0 Afghanistan Asia Southern Asia Developing regions 16 39 \n",
"1 Albania Europe Southern Europe Developed regions 1 0 \n",
"\n",
" 1982 1983 1984 1985 ... 2004 2005 2006 2007 2008 2009 2010 \\\n",
"0 39 47 71 340 ... 2978 3436 3009 2652 2111 1746 1758 \n",
"1 0 0 0 0 ... 1450 1223 856 702 560 716 561 \n",
"\n",
" 2011 2012 2013 \n",
"0 2203 2635 2004 \n",
"1 539 620 603 \n",
"\n",
"[2 rows x 38 columns]"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# in pandas axis=0 represents rows (default) and axis=1 represents columns.\n",
"df_can.drop(['AREA','REG','DEV','Type','Coverage'], axis=1, inplace=True)\n",
"df_can.head(2)"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"Let's rename the columns so that they make sense. We can use `rename()` method by passing in a dictionary of old and new names as follows:"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"button": false,
"collapsed": false,
"deletable": true,
"jupyter": {
"outputs_hidden": false
},
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"Index([ 'Country', 'Continent', 'Region', 'DevName', 1980,\n",
" 1981, 1982, 1983, 1984, 1985,\n",
" 1986, 1987, 1988, 1989, 1990,\n",
" 1991, 1992, 1993, 1994, 1995,\n",
" 1996, 1997, 1998, 1999, 2000,\n",
" 2001, 2002, 2003, 2004, 2005,\n",
" 2006, 2007, 2008, 2009, 2010,\n",
" 2011, 2012, 2013],\n",
" dtype='object')"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_can.rename(columns={'OdName':'Country', 'AreaName':'Continent', 'RegName':'Region'}, inplace=True)\n",
"df_can.columns"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"We will also add a 'Total' column that sums up the total immigrants by country over the entire period 1980 - 2013, as follows:"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"outputs": [],
"source": [
"df_can['Total'] = df_can.sum(axis=1)"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"We can check to see how many null objects we have in the dataset as follows:"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"button": false,
"collapsed": false,
"deletable": true,
"jupyter": {
"outputs_hidden": false
},
"new_sheet": false,
"run_control": {
"read_only": false
},
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"Country 0\n",
"Continent 0\n",
"Region 0\n",
"DevName 0\n",
"1980 0\n",
"1981 0\n",
"1982 0\n",
"1983 0\n",
"1984 0\n",
"1985 0\n",
"1986 0\n",
"1987 0\n",
"1988 0\n",
"1989 0\n",
"1990 0\n",
"1991 0\n",
"1992 0\n",
"1993 0\n",
"1994 0\n",
"1995 0\n",
"1996 0\n",
"1997 0\n",
"1998 0\n",
"1999 0\n",
"2000 0\n",
"2001 0\n",
"2002 0\n",
"2003 0\n",
"2004 0\n",
"2005 0\n",
"2006 0\n",
"2007 0\n",
"2008 0\n",
"2009 0\n",
"2010 0\n",
"2011 0\n",
"2012 0\n",
"2013 0\n",
"Total 0\n",
"dtype: int64"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_can.isnull().sum()"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"Finally, let's view a quick summary of each column in our dataframe using the `describe()` method."
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"button": false,
"collapsed": false,
"deletable": true,
"jupyter": {
"outputs_hidden": false
},
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>1980</th>\n",
" <th>1981</th>\n",
" <th>1982</th>\n",
" <th>1983</th>\n",
" <th>1984</th>\n",
" <th>1985</th>\n",
" <th>1986</th>\n",
" <th>1987</th>\n",
" <th>1988</th>\n",
" <th>1989</th>\n",
" <th>...</th>\n",
" <th>2005</th>\n",
" <th>2006</th>\n",
" <th>2007</th>\n",
" <th>2008</th>\n",
" <th>2009</th>\n",
" <th>2010</th>\n",
" <th>2011</th>\n",
" <th>2012</th>\n",
" <th>2013</th>\n",
" <th>Total</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>count</th>\n",
" <td>195.000000</td>\n",
" <td>195.000000</td>\n",
" <td>195.000000</td>\n",
" <td>195.000000</td>\n",
" <td>195.000000</td>\n",
" <td>195.000000</td>\n",
" <td>195.000000</td>\n",
" <td>195.000000</td>\n",
" <td>195.000000</td>\n",
" <td>195.000000</td>\n",
" <td>...</td>\n",
" <td>195.000000</td>\n",
" <td>195.000000</td>\n",
" <td>195.000000</td>\n",
" <td>195.000000</td>\n",
" <td>195.000000</td>\n",
" <td>195.000000</td>\n",
" <td>195.000000</td>\n",
" <td>195.000000</td>\n",
" <td>195.000000</td>\n",
" <td>195.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>mean</th>\n",
" <td>508.394872</td>\n",
" <td>566.989744</td>\n",
" <td>534.723077</td>\n",
" <td>387.435897</td>\n",
" <td>376.497436</td>\n",
" <td>358.861538</td>\n",
" <td>441.271795</td>\n",
" <td>691.133333</td>\n",
" <td>714.389744</td>\n",
" <td>843.241026</td>\n",
" <td>...</td>\n",
" <td>1320.292308</td>\n",
" <td>1266.958974</td>\n",
" <td>1191.820513</td>\n",
" <td>1246.394872</td>\n",
" <td>1275.733333</td>\n",
" <td>1420.287179</td>\n",
" <td>1262.533333</td>\n",
" <td>1313.958974</td>\n",
" <td>1320.702564</td>\n",
" <td>32867.451282</td>\n",
" </tr>\n",
" <tr>\n",
" <th>std</th>\n",
" <td>1949.588546</td>\n",
" <td>2152.643752</td>\n",
" <td>1866.997511</td>\n",
" <td>1204.333597</td>\n",
" <td>1198.246371</td>\n",
" <td>1079.309600</td>\n",
" <td>1225.576630</td>\n",
" <td>2109.205607</td>\n",
" <td>2443.606788</td>\n",
" <td>2555.048874</td>\n",
" <td>...</td>\n",
" <td>4425.957828</td>\n",
" <td>3926.717747</td>\n",
" <td>3443.542409</td>\n",
" <td>3694.573544</td>\n",
" <td>3829.630424</td>\n",
" <td>4462.946328</td>\n",
" <td>4030.084313</td>\n",
" <td>4247.555161</td>\n",
" <td>4237.951988</td>\n",
" <td>91785.498686</td>\n",
" </tr>\n",
" <tr>\n",
" <th>min</th>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>...</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>1.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25%</th>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.500000</td>\n",
" <td>0.500000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>...</td>\n",
" <td>28.500000</td>\n",
" <td>25.000000</td>\n",
" <td>31.000000</td>\n",
" <td>31.000000</td>\n",
" <td>36.000000</td>\n",
" <td>40.500000</td>\n",
" <td>37.500000</td>\n",
" <td>42.500000</td>\n",
" <td>45.000000</td>\n",
" <td>952.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>50%</th>\n",
" <td>13.000000</td>\n",
" <td>10.000000</td>\n",
" <td>11.000000</td>\n",
" <td>12.000000</td>\n",
" <td>13.000000</td>\n",
" <td>17.000000</td>\n",
" <td>18.000000</td>\n",
" <td>26.000000</td>\n",
" <td>34.000000</td>\n",
" <td>44.000000</td>\n",
" <td>...</td>\n",
" <td>210.000000</td>\n",
" <td>218.000000</td>\n",
" <td>198.000000</td>\n",
" <td>205.000000</td>\n",
" <td>214.000000</td>\n",
" <td>211.000000</td>\n",
" <td>179.000000</td>\n",
" <td>233.000000</td>\n",
" <td>213.000000</td>\n",
" <td>5018.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>75%</th>\n",
" <td>251.500000</td>\n",
" <td>295.500000</td>\n",
" <td>275.000000</td>\n",
" <td>173.000000</td>\n",
" <td>181.000000</td>\n",
" <td>197.000000</td>\n",
" <td>254.000000</td>\n",
" <td>434.000000</td>\n",
" <td>409.000000</td>\n",
" <td>508.500000</td>\n",
" <td>...</td>\n",
" <td>832.000000</td>\n",
" <td>842.000000</td>\n",
" <td>899.000000</td>\n",
" <td>934.500000</td>\n",
" <td>888.000000</td>\n",
" <td>932.000000</td>\n",
" <td>772.000000</td>\n",
" <td>783.000000</td>\n",
" <td>796.000000</td>\n",
" <td>22239.500000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>max</th>\n",
" <td>22045.000000</td>\n",
" <td>24796.000000</td>\n",
" <td>20620.000000</td>\n",
" <td>10015.000000</td>\n",
" <td>10170.000000</td>\n",
" <td>9564.000000</td>\n",
" <td>9470.000000</td>\n",
" <td>21337.000000</td>\n",
" <td>27359.000000</td>\n",
" <td>23795.000000</td>\n",
" <td>...</td>\n",
" <td>42584.000000</td>\n",
" <td>33848.000000</td>\n",
" <td>28742.000000</td>\n",
" <td>30037.000000</td>\n",
" <td>29622.000000</td>\n",
" <td>38617.000000</td>\n",
" <td>36765.000000</td>\n",
" <td>34315.000000</td>\n",
" <td>34129.000000</td>\n",
" <td>691904.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>8 rows × 35 columns</p>\n",
"</div>"
],
"text/plain": [
" 1980 1981 1982 1983 1984 \\\n",
"count 195.000000 195.000000 195.000000 195.000000 195.000000 \n",
"mean 508.394872 566.989744 534.723077 387.435897 376.497436 \n",
"std 1949.588546 2152.643752 1866.997511 1204.333597 1198.246371 \n",
"min 0.000000 0.000000 0.000000 0.000000 0.000000 \n",
"25% 0.000000 0.000000 0.000000 0.000000 0.000000 \n",
"50% 13.000000 10.000000 11.000000 12.000000 13.000000 \n",
"75% 251.500000 295.500000 275.000000 173.000000 181.000000 \n",
"max 22045.000000 24796.000000 20620.000000 10015.000000 10170.000000 \n",
"\n",
" 1985 1986 1987 1988 1989 \\\n",
"count 195.000000 195.000000 195.000000 195.000000 195.000000 \n",
"mean 358.861538 441.271795 691.133333 714.389744 843.241026 \n",
"std 1079.309600 1225.576630 2109.205607 2443.606788 2555.048874 \n",
"min 0.000000 0.000000 0.000000 0.000000 0.000000 \n",
"25% 0.000000 0.500000 0.500000 1.000000 1.000000 \n",
"50% 17.000000 18.000000 26.000000 34.000000 44.000000 \n",
"75% 197.000000 254.000000 434.000000 409.000000 508.500000 \n",
"max 9564.000000 9470.000000 21337.000000 27359.000000 23795.000000 \n",
"\n",
" ... 2005 2006 2007 2008 \\\n",
"count ... 195.000000 195.000000 195.000000 195.000000 \n",
"mean ... 1320.292308 1266.958974 1191.820513 1246.394872 \n",
"std ... 4425.957828 3926.717747 3443.542409 3694.573544 \n",
"min ... 0.000000 0.000000 0.000000 0.000000 \n",
"25% ... 28.500000 25.000000 31.000000 31.000000 \n",
"50% ... 210.000000 218.000000 198.000000 205.000000 \n",
"75% ... 832.000000 842.000000 899.000000 934.500000 \n",
"max ... 42584.000000 33848.000000 28742.000000 30037.000000 \n",
"\n",
" 2009 2010 2011 2012 2013 \\\n",
"count 195.000000 195.000000 195.000000 195.000000 195.000000 \n",
"mean 1275.733333 1420.287179 1262.533333 1313.958974 1320.702564 \n",
"std 3829.630424 4462.946328 4030.084313 4247.555161 4237.951988 \n",
"min 0.000000 0.000000 0.000000 0.000000 0.000000 \n",
"25% 36.000000 40.500000 37.500000 42.500000 45.000000 \n",
"50% 214.000000 211.000000 179.000000 233.000000 213.000000 \n",
"75% 888.000000 932.000000 772.000000 783.000000 796.000000 \n",
"max 29622.000000 38617.000000 36765.000000 34315.000000 34129.000000 \n",
"\n",
" Total \n",
"count 195.000000 \n",
"mean 32867.451282 \n",
"std 91785.498686 \n",
"min 1.000000 \n",
"25% 952.000000 \n",
"50% 5018.000000 \n",
"75% 22239.500000 \n",
"max 691904.000000 \n",
"\n",
"[8 rows x 35 columns]"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_can.describe()"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"---\n",
"## *pandas* Intermediate: Indexing and Selection (slicing)<a id=\"6\"></a>\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"### Select Column\n",
"**There are two ways to filter on a column name:**\n",
"\n",
"Method 1: Quick and easy, but only works if the column name does NOT have spaces or special characters.\n",
"```python\n",
" df.column_name \n",
" (returns series)\n",
"```\n",
"\n",
"Method 2: More robust, and can filter on multiple columns.\n",
"\n",
"```python\n",
" df['column'] \n",
" (returns series)\n",
"```\n",
"\n",
"```python \n",
" df[['column 1', 'column 2']] \n",
" (returns dataframe)\n",
"```\n",
"---"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"Example: Let's try filtering on the list of countries ('Country')."
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"button": false,
"collapsed": false,
"deletable": true,
"jupyter": {
"outputs_hidden": false
},
"new_sheet": false,
"run_control": {
"read_only": false
},
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"0 Afghanistan\n",
"1 Albania\n",
"2 Algeria\n",
"3 American Samoa\n",
"4 Andorra\n",
" ... \n",
"190 Viet Nam\n",
"191 Western Sahara\n",
"192 Yemen\n",
"193 Zambia\n",
"194 Zimbabwe\n",
"Name: Country, Length: 195, dtype: object"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_can.Country # returns a series"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"Let's try filtering on the list of countries ('OdName') and the data for years: 1980 - 1985."
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"button": false,
"collapsed": false,
"deletable": true,
"jupyter": {
"outputs_hidden": false
},
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\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>1980</th>\n",
" <th>1981</th>\n",
" <th>1982</th>\n",
" <th>1983</th>\n",
" <th>1984</th>\n",
" <th>1985</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>Afghanistan</td>\n",
" <td>16</td>\n",
" <td>39</td>\n",
" <td>39</td>\n",
" <td>47</td>\n",
" <td>71</td>\n",
" <td>340</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Albania</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>Algeria</td>\n",
" <td>80</td>\n",
" <td>67</td>\n",
" <td>71</td>\n",
" <td>69</td>\n",
" <td>63</td>\n",
" <td>44</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>American Samoa</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>Andorra</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>190</th>\n",
" <td>Viet Nam</td>\n",
" <td>1191</td>\n",
" <td>1829</td>\n",
" <td>2162</td>\n",
" <td>3404</td>\n",
" <td>7583</td>\n",
" <td>5907</td>\n",
" </tr>\n",
" <tr>\n",
" <th>191</th>\n",
" <td>Western Sahara</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>192</th>\n",
" <td>Yemen</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>6</td>\n",
" <td>0</td>\n",
" <td>18</td>\n",
" </tr>\n",
" <tr>\n",
" <th>193</th>\n",
" <td>Zambia</td>\n",
" <td>11</td>\n",
" <td>17</td>\n",
" <td>11</td>\n",
" <td>7</td>\n",
" <td>16</td>\n",
" <td>9</td>\n",
" </tr>\n",
" <tr>\n",
" <th>194</th>\n",
" <td>Zimbabwe</td>\n",
" <td>72</td>\n",
" <td>114</td>\n",
" <td>102</td>\n",
" <td>44</td>\n",
" <td>32</td>\n",
" <td>29</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>195 rows × 7 columns</p>\n",
"</div>"
],
"text/plain": [
" Country 1980 1981 1982 1983 1984 1985\n",
"0 Afghanistan 16 39 39 47 71 340\n",
"1 Albania 1 0 0 0 0 0\n",
"2 Algeria 80 67 71 69 63 44\n",
"3 American Samoa 0 1 0 0 0 0\n",
"4 Andorra 0 0 0 0 0 0\n",
".. ... ... ... ... ... ... ...\n",
"190 Viet Nam 1191 1829 2162 3404 7583 5907\n",
"191 Western Sahara 0 0 0 0 0 0\n",
"192 Yemen 1 2 1 6 0 18\n",
"193 Zambia 11 17 11 7 16 9\n",
"194 Zimbabwe 72 114 102 44 32 29\n",
"\n",
"[195 rows x 7 columns]"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_can[['Country', 1980, 1981, 1982, 1983, 1984, 1985]] # returns a dataframe\n",
"# notice that 'Country' is string, and the years are integers. \n",
"# for the sake of consistency, we will convert all column names to string later on."
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"### Select Row\n",
"\n",
"There are main 3 ways to select rows:\n",
"\n",
"```python\n",
" df.loc[label] \n",
" #filters by the labels of the index/column\n",
" df.iloc[index] \n",
" #filters by the positions of the index/column\n",
"```"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"Before we proceed, notice that the defaul index of the dataset is a numeric range from 0 to 194. This makes it very difficult to do a query by a specific country. For example to search for data on Japan, we need to know the corressponding index value.\n",
"\n",
"This can be fixed very easily by setting the 'Country' column as the index using `set_index()` method."
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
},
"scrolled": true
},
"outputs": [],
"source": [
"df_can.set_index('Country', inplace=True)\n",
"# tip: The opposite of set is reset. So to reset the index, we can use df_can.reset_index()"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"button": false,
"collapsed": false,
"deletable": true,
"jupyter": {
"outputs_hidden": false
},
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Continent</th>\n",
" <th>Region</th>\n",
" <th>DevName</th>\n",
" <th>1980</th>\n",
" <th>1981</th>\n",
" <th>1982</th>\n",
" <th>1983</th>\n",
" <th>1984</th>\n",
" <th>1985</th>\n",
" <th>1986</th>\n",
" <th>...</th>\n",
" <th>2005</th>\n",
" <th>2006</th>\n",
" <th>2007</th>\n",
" <th>2008</th>\n",
" <th>2009</th>\n",
" <th>2010</th>\n",
" <th>2011</th>\n",
" <th>2012</th>\n",
" <th>2013</th>\n",
" <th>Total</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Country</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>Afghanistan</th>\n",
" <td>Asia</td>\n",
" <td>Southern Asia</td>\n",
" <td>Developing regions</td>\n",
" <td>16</td>\n",
" <td>39</td>\n",
" <td>39</td>\n",
" <td>47</td>\n",
" <td>71</td>\n",
" <td>340</td>\n",
" <td>496</td>\n",
" <td>...</td>\n",
" <td>3436</td>\n",
" <td>3009</td>\n",
" <td>2652</td>\n",
" <td>2111</td>\n",
" <td>1746</td>\n",
" <td>1758</td>\n",
" <td>2203</td>\n",
" <td>2635</td>\n",
" <td>2004</td>\n",
" <td>58639</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Albania</th>\n",
" <td>Europe</td>\n",
" <td>Southern Europe</td>\n",
" <td>Developed regions</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>...</td>\n",
" <td>1223</td>\n",
" <td>856</td>\n",
" <td>702</td>\n",
" <td>560</td>\n",
" <td>716</td>\n",
" <td>561</td>\n",
" <td>539</td>\n",
" <td>620</td>\n",
" <td>603</td>\n",
" <td>15699</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Algeria</th>\n",
" <td>Africa</td>\n",
" <td>Northern Africa</td>\n",
" <td>Developing regions</td>\n",
" <td>80</td>\n",
" <td>67</td>\n",
" <td>71</td>\n",
" <td>69</td>\n",
" <td>63</td>\n",
" <td>44</td>\n",
" <td>69</td>\n",
" <td>...</td>\n",
" <td>3626</td>\n",
" <td>4807</td>\n",
" <td>3623</td>\n",
" <td>4005</td>\n",
" <td>5393</td>\n",
" <td>4752</td>\n",
" <td>4325</td>\n",
" <td>3774</td>\n",
" <td>4331</td>\n",
" <td>69439</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>3 rows × 38 columns</p>\n",
"</div>"
],
"text/plain": [
" Continent Region DevName 1980 1981 1982 \\\n",
"Country \n",
"Afghanistan Asia Southern Asia Developing regions 16 39 39 \n",
"Albania Europe Southern Europe Developed regions 1 0 0 \n",
"Algeria Africa Northern Africa Developing regions 80 67 71 \n",
"\n",
" 1983 1984 1985 1986 ... 2005 2006 2007 2008 2009 2010 \\\n",
"Country ... \n",
"Afghanistan 47 71 340 496 ... 3436 3009 2652 2111 1746 1758 \n",
"Albania 0 0 0 1 ... 1223 856 702 560 716 561 \n",
"Algeria 69 63 44 69 ... 3626 4807 3623 4005 5393 4752 \n",
"\n",
" 2011 2012 2013 Total \n",
"Country \n",
"Afghanistan 2203 2635 2004 58639 \n",
"Albania 539 620 603 15699 \n",
"Algeria 4325 3774 4331 69439 \n",
"\n",
"[3 rows x 38 columns]"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_can.head(3)"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"outputs": [],
"source": [
"# optional: to remove the name of the index\n",
"df_can.index.name = None"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"Example: Let's view the number of immigrants from Japan (row 87) for the following scenarios:\n",
" 1. The full row data (all columns)\n",
" 2. For year 2013\n",
" 3. For years 1980 to 1985"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"button": false,
"collapsed": false,
"deletable": true,
"jupyter": {
"outputs_hidden": false
},
"new_sheet": false,
"run_control": {
"read_only": false
},
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Continent Asia\n",
"Region Eastern Asia\n",
"DevName Developed regions\n",
"1980 701\n",
"1981 756\n",
"1982 598\n",
"1983 309\n",
"1984 246\n",
"1985 198\n",
"1986 248\n",
"1987 422\n",
"1988 324\n",
"1989 494\n",
"1990 379\n",
"1991 506\n",
"1992 605\n",
"1993 907\n",
"1994 956\n",
"1995 826\n",
"1996 994\n",
"1997 924\n",
"1998 897\n",
"1999 1083\n",
"2000 1010\n",
"2001 1092\n",
"2002 806\n",
"2003 817\n",
"2004 973\n",
"2005 1067\n",
"2006 1212\n",
"2007 1250\n",
"2008 1284\n",
"2009 1194\n",
"2010 1168\n",
"2011 1265\n",
"2012 1214\n",
"2013 982\n",
"Total 27707\n",
"Name: Japan, dtype: object\n",
"Continent Asia\n",
"Region Eastern Asia\n",
"DevName Developed regions\n",
"1980 701\n",
"1981 756\n",
"1982 598\n",
"1983 309\n",
"1984 246\n",
"1985 198\n",
"1986 248\n",
"1987 422\n",
"1988 324\n",
"1989 494\n",
"1990 379\n",
"1991 506\n",
"1992 605\n",
"1993 907\n",
"1994 956\n",
"1995 826\n",
"1996 994\n",
"1997 924\n",
"1998 897\n",
"1999 1083\n",
"2000 1010\n",
"2001 1092\n",
"2002 806\n",
"2003 817\n",
"2004 973\n",
"2005 1067\n",
"2006 1212\n",
"2007 1250\n",
"2008 1284\n",
"2009 1194\n",
"2010 1168\n",
"2011 1265\n",
"2012 1214\n",
"2013 982\n",
"Total 27707\n",
"Name: Japan, dtype: object\n",
"Continent Asia\n",
"Region Eastern Asia\n",
"DevName Developed regions\n",
"1980 701\n",
"1981 756\n",
"1982 598\n",
"1983 309\n",
"1984 246\n",
"1985 198\n",
"1986 248\n",
"1987 422\n",
"1988 324\n",
"1989 494\n",
"1990 379\n",
"1991 506\n",
"1992 605\n",
"1993 907\n",
"1994 956\n",
"1995 826\n",
"1996 994\n",
"1997 924\n",
"1998 897\n",
"1999 1083\n",
"2000 1010\n",
"2001 1092\n",
"2002 806\n",
"2003 817\n",
"2004 973\n",
"2005 1067\n",
"2006 1212\n",
"2007 1250\n",
"2008 1284\n",
"2009 1194\n",
"2010 1168\n",
"2011 1265\n",
"2012 1214\n",
"2013 982\n",
"Total 27707\n",
"Name: Japan, dtype: object\n"
]
}
],
"source": [
"# 1. the full row data (all columns)\n",
"print(df_can.loc['Japan'])\n",
"\n",
"# alternate methods\n",
"print(df_can.iloc[87])\n",
"print(df_can[df_can.index == 'Japan'].T.squeeze())"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {
"button": false,
"collapsed": false,
"deletable": true,
"jupyter": {
"outputs_hidden": false
},
"new_sheet": false,
"run_control": {
"read_only": false
},
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"982\n",
"982\n"
]
}
],
"source": [
"# 2. for year 2013\n",
"print(df_can.loc['Japan', 2013])\n",
"\n",
"# alternate method\n",
"print(df_can.iloc[87, 36]) # year 2013 is the last column, with a positional index of 36"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {
"button": false,
"collapsed": false,
"deletable": true,
"jupyter": {
"outputs_hidden": false
},
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1980 701\n",
"1981 756\n",
"1982 598\n",
"1983 309\n",
"1984 246\n",
"1984 246\n",
"Name: Japan, dtype: object\n",
"1980 701\n",
"1981 756\n",
"1982 598\n",
"1983 309\n",
"1984 246\n",
"1985 198\n",
"Name: Japan, dtype: object\n"
]
}
],
"source": [
"# 3. for years 1980 to 1985\n",
"print(df_can.loc['Japan', [1980, 1981, 1982, 1983, 1984, 1984]])\n",
"print(df_can.iloc[87, [3, 4, 5, 6, 7, 8]])"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"Column names that are integers (such as the years) might introduce some confusion. For example, when we are referencing the year 2013, one might confuse that when the 2013th positional index. \n",
"\n",
"To avoid this ambuigity, let's convert the column names into strings: '1980' to '2013'."
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"outputs": [],
"source": [
"df_can.columns = list(map(str, df_can.columns))\n",
"# [print (type(x)) for x in df_can.columns.values] #<-- uncomment to check type of column headers"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"Since we converted the years to string, let's declare a variable that will allow us to easily call upon the full range of years:"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {
"button": false,
"collapsed": false,
"deletable": true,
"jupyter": {
"outputs_hidden": false
},
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"['1980',\n",
" '1981',\n",
" '1982',\n",
" '1983',\n",
" '1984',\n",
" '1985',\n",
" '1986',\n",
" '1987',\n",
" '1988',\n",
" '1989',\n",
" '1990',\n",
" '1991',\n",
" '1992',\n",
" '1993',\n",
" '1994',\n",
" '1995',\n",
" '1996',\n",
" '1997',\n",
" '1998',\n",
" '1999',\n",
" '2000',\n",
" '2001',\n",
" '2002',\n",
" '2003',\n",
" '2004',\n",
" '2005',\n",
" '2006',\n",
" '2007',\n",
" '2008',\n",
" '2009',\n",
" '2010',\n",
" '2011',\n",
" '2012',\n",
" '2013']"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# useful for plotting later on\n",
"years = list(map(str, range(1980, 2014)))\n",
"years"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"### Filtering based on a criteria\n",
"To filter the dataframe based on a condition, we simply pass the condition as a boolean vector. \n",
"\n",
"For example, Let's filter the dataframe to show the data on Asian countries (AreaName = Asia)."
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {
"button": false,
"collapsed": false,
"deletable": true,
"jupyter": {
"outputs_hidden": false
},
"new_sheet": false,
"run_control": {
"read_only": false
},
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Afghanistan True\n",
"Albania False\n",
"Algeria False\n",
"American Samoa False\n",
"Andorra False\n",
" ... \n",
"Viet Nam True\n",
"Western Sahara False\n",
"Yemen True\n",
"Zambia False\n",
"Zimbabwe False\n",
"Name: Continent, Length: 195, dtype: bool\n"
]
}
],
"source": [
"# 1. create the condition boolean series\n",
"condition = df_can['Continent'] == 'Asia'\n",
"print(condition)"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {
"button": false,
"collapsed": false,
"deletable": true,
"jupyter": {
"outputs_hidden": false
},
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Continent</th>\n",
" <th>Region</th>\n",
" <th>DevName</th>\n",
" <th>1980</th>\n",
" <th>1981</th>\n",
" <th>1982</th>\n",
" <th>1983</th>\n",
" <th>1984</th>\n",
" <th>1985</th>\n",
" <th>1986</th>\n",
" <th>...</th>\n",
" <th>2005</th>\n",
" <th>2006</th>\n",
" <th>2007</th>\n",
" <th>2008</th>\n",
" <th>2009</th>\n",
" <th>2010</th>\n",
" <th>2011</th>\n",
" <th>2012</th>\n",
" <th>2013</th>\n",
" <th>Total</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>Afghanistan</th>\n",
" <td>Asia</td>\n",
" <td>Southern Asia</td>\n",
" <td>Developing regions</td>\n",
" <td>16</td>\n",
" <td>39</td>\n",
" <td>39</td>\n",
" <td>47</td>\n",
" <td>71</td>\n",
" <td>340</td>\n",
" <td>496</td>\n",
" <td>...</td>\n",
" <td>3436</td>\n",
" <td>3009</td>\n",
" <td>2652</td>\n",
" <td>2111</td>\n",
" <td>1746</td>\n",
" <td>1758</td>\n",
" <td>2203</td>\n",
" <td>2635</td>\n",
" <td>2004</td>\n",
" <td>58639</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Armenia</th>\n",
" <td>Asia</td>\n",
" <td>Western Asia</td>\n",
" <td>Developing regions</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>224</td>\n",
" <td>218</td>\n",
" <td>198</td>\n",
" <td>205</td>\n",
" <td>267</td>\n",
" <td>252</td>\n",
" <td>236</td>\n",
" <td>258</td>\n",
" <td>207</td>\n",
" <td>3310</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Azerbaijan</th>\n",
" <td>Asia</td>\n",
" <td>Western Asia</td>\n",
" <td>Developing regions</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>359</td>\n",
" <td>236</td>\n",
" <td>203</td>\n",
" <td>125</td>\n",
" <td>165</td>\n",
" <td>209</td>\n",
" <td>138</td>\n",
" <td>161</td>\n",
" <td>57</td>\n",
" <td>2649</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Bahrain</th>\n",
" <td>Asia</td>\n",
" <td>Western Asia</td>\n",
" <td>Developing regions</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>3</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>12</td>\n",
" <td>12</td>\n",
" <td>22</td>\n",
" <td>9</td>\n",
" <td>35</td>\n",
" <td>28</td>\n",
" <td>21</td>\n",
" <td>39</td>\n",
" <td>32</td>\n",
" <td>475</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Bangladesh</th>\n",
" <td>Asia</td>\n",
" <td>Southern Asia</td>\n",
" <td>Developing regions</td>\n",
" <td>83</td>\n",
" <td>84</td>\n",
" <td>86</td>\n",
" <td>81</td>\n",
" <td>98</td>\n",
" <td>92</td>\n",
" <td>486</td>\n",
" <td>...</td>\n",
" <td>4171</td>\n",
" <td>4014</td>\n",
" <td>2897</td>\n",
" <td>2939</td>\n",
" <td>2104</td>\n",
" <td>4721</td>\n",
" <td>2694</td>\n",
" <td>2640</td>\n",
" <td>3789</td>\n",
" <td>65568</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Bhutan</th>\n",
" <td>Asia</td>\n",
" <td>Southern Asia</td>\n",
" <td>Developing regions</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>5</td>\n",
" <td>10</td>\n",
" <td>7</td>\n",
" <td>36</td>\n",
" <td>865</td>\n",
" <td>1464</td>\n",
" <td>1879</td>\n",
" <td>1075</td>\n",
" <td>487</td>\n",
" <td>5876</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Brunei Darussalam</th>\n",
" <td>Asia</td>\n",
" <td>South-Eastern Asia</td>\n",
" <td>Developing regions</td>\n",
" <td>79</td>\n",
" <td>6</td>\n",
" <td>8</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>12</td>\n",
" <td>...</td>\n",
" <td>4</td>\n",
" <td>5</td>\n",
" <td>11</td>\n",
" <td>10</td>\n",
" <td>5</td>\n",
" <td>12</td>\n",
" <td>6</td>\n",
" <td>3</td>\n",
" <td>6</td>\n",
" <td>600</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Cambodia</th>\n",
" <td>Asia</td>\n",
" <td>South-Eastern Asia</td>\n",
" <td>Developing regions</td>\n",
" <td>12</td>\n",
" <td>19</td>\n",
" <td>26</td>\n",
" <td>33</td>\n",
" <td>10</td>\n",
" <td>7</td>\n",
" <td>8</td>\n",
" <td>...</td>\n",
" <td>370</td>\n",
" <td>529</td>\n",
" <td>460</td>\n",
" <td>354</td>\n",
" <td>203</td>\n",
" <td>200</td>\n",
" <td>196</td>\n",
" <td>233</td>\n",
" <td>288</td>\n",
" <td>6538</td>\n",
" </tr>\n",
" <tr>\n",
" <th>China</th>\n",
" <td>Asia</td>\n",
" <td>Eastern Asia</td>\n",
" <td>Developing regions</td>\n",
" <td>5123</td>\n",
" <td>6682</td>\n",
" <td>3308</td>\n",
" <td>1863</td>\n",
" <td>1527</td>\n",
" <td>1816</td>\n",
" <td>1960</td>\n",
" <td>...</td>\n",
" <td>42584</td>\n",
" <td>33518</td>\n",
" <td>27642</td>\n",
" <td>30037</td>\n",
" <td>29622</td>\n",
" <td>30391</td>\n",
" <td>28502</td>\n",
" <td>33024</td>\n",
" <td>34129</td>\n",
" <td>659962</td>\n",
" </tr>\n",
" <tr>\n",
" <th>China, Hong Kong Special Administrative Region</th>\n",
" <td>Asia</td>\n",
" <td>Eastern Asia</td>\n",
" <td>Developing regions</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>729</td>\n",
" <td>712</td>\n",
" <td>674</td>\n",
" <td>897</td>\n",
" <td>657</td>\n",
" <td>623</td>\n",
" <td>591</td>\n",
" <td>728</td>\n",
" <td>774</td>\n",
" <td>9327</td>\n",
" </tr>\n",
" <tr>\n",
" <th>China, Macao Special Administrative Region</th>\n",
" <td>Asia</td>\n",
" <td>Eastern Asia</td>\n",
" <td>Developing regions</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>21</td>\n",
" <td>32</td>\n",
" <td>16</td>\n",
" <td>12</td>\n",
" <td>21</td>\n",
" <td>21</td>\n",
" <td>13</td>\n",
" <td>33</td>\n",
" <td>29</td>\n",
" <td>284</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Cyprus</th>\n",
" <td>Asia</td>\n",
" <td>Western Asia</td>\n",
" <td>Developing regions</td>\n",
" <td>132</td>\n",
" <td>128</td>\n",
" <td>84</td>\n",
" <td>46</td>\n",
" <td>46</td>\n",
" <td>43</td>\n",
" <td>48</td>\n",
" <td>...</td>\n",
" <td>7</td>\n",
" <td>9</td>\n",
" <td>4</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>18</td>\n",
" <td>6</td>\n",
" <td>12</td>\n",
" <td>16</td>\n",
" <td>1126</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Democratic People's Republic of Korea</th>\n",
" <td>Asia</td>\n",
" <td>Eastern Asia</td>\n",
" <td>Developing regions</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>3</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>14</td>\n",
" <td>10</td>\n",
" <td>7</td>\n",
" <td>19</td>\n",
" <td>11</td>\n",
" <td>45</td>\n",
" <td>97</td>\n",
" <td>66</td>\n",
" <td>17</td>\n",
" <td>388</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Georgia</th>\n",
" <td>Asia</td>\n",
" <td>Western Asia</td>\n",
" <td>Developing regions</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>114</td>\n",
" <td>125</td>\n",
" <td>132</td>\n",
" <td>112</td>\n",
" <td>128</td>\n",
" <td>126</td>\n",
" <td>139</td>\n",
" <td>147</td>\n",
" <td>125</td>\n",
" <td>2068</td>\n",
" </tr>\n",
" <tr>\n",
" <th>India</th>\n",
" <td>Asia</td>\n",
" <td>Southern Asia</td>\n",
" <td>Developing regions</td>\n",
" <td>8880</td>\n",
" <td>8670</td>\n",
" <td>8147</td>\n",
" <td>7338</td>\n",
" <td>5704</td>\n",
" <td>4211</td>\n",
" <td>7150</td>\n",
" <td>...</td>\n",
" <td>36210</td>\n",
" <td>33848</td>\n",
" <td>28742</td>\n",
" <td>28261</td>\n",
" <td>29456</td>\n",
" <td>34235</td>\n",
" <td>27509</td>\n",
" <td>30933</td>\n",
" <td>33087</td>\n",
" <td>691904</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Indonesia</th>\n",
" <td>Asia</td>\n",
" <td>South-Eastern Asia</td>\n",
" <td>Developing regions</td>\n",
" <td>186</td>\n",
" <td>178</td>\n",
" <td>252</td>\n",
" <td>115</td>\n",
" <td>123</td>\n",
" <td>100</td>\n",
" <td>127</td>\n",
" <td>...</td>\n",
" <td>632</td>\n",
" <td>613</td>\n",
" <td>657</td>\n",
" <td>661</td>\n",
" <td>504</td>\n",
" <td>712</td>\n",
" <td>390</td>\n",
" <td>395</td>\n",
" <td>387</td>\n",
" <td>13150</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Iran (Islamic Republic of)</th>\n",
" <td>Asia</td>\n",
" <td>Southern Asia</td>\n",
" <td>Developing regions</td>\n",
" <td>1172</td>\n",
" <td>1429</td>\n",
" <td>1822</td>\n",
" <td>1592</td>\n",
" <td>1977</td>\n",
" <td>1648</td>\n",
" <td>1794</td>\n",
" <td>...</td>\n",
" <td>5837</td>\n",
" <td>7480</td>\n",
" <td>6974</td>\n",
" <td>6475</td>\n",
" <td>6580</td>\n",
" <td>7477</td>\n",
" <td>7479</td>\n",
" <td>7534</td>\n",
" <td>11291</td>\n",
" <td>175923</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Iraq</th>\n",
" <td>Asia</td>\n",
" <td>Western Asia</td>\n",
" <td>Developing regions</td>\n",
" <td>262</td>\n",
" <td>245</td>\n",
" <td>260</td>\n",
" <td>380</td>\n",
" <td>428</td>\n",
" <td>231</td>\n",
" <td>265</td>\n",
" <td>...</td>\n",
" <td>2226</td>\n",
" <td>1788</td>\n",
" <td>2406</td>\n",
" <td>3543</td>\n",
" <td>5450</td>\n",
" <td>5941</td>\n",
" <td>6196</td>\n",
" <td>4041</td>\n",
" <td>4918</td>\n",
" <td>69789</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Israel</th>\n",
" <td>Asia</td>\n",
" <td>Western Asia</td>\n",
" <td>Developing regions</td>\n",
" <td>1403</td>\n",
" <td>1711</td>\n",
" <td>1334</td>\n",
" <td>541</td>\n",
" <td>446</td>\n",
" <td>680</td>\n",
" <td>1212</td>\n",
" <td>...</td>\n",
" <td>2446</td>\n",
" <td>2625</td>\n",
" <td>2401</td>\n",
" <td>2562</td>\n",
" <td>2316</td>\n",
" <td>2755</td>\n",
" <td>1970</td>\n",
" <td>2134</td>\n",
" <td>1945</td>\n",
" <td>66508</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Japan</th>\n",
" <td>Asia</td>\n",
" <td>Eastern Asia</td>\n",
" <td>Developed regions</td>\n",
" <td>701</td>\n",
" <td>756</td>\n",
" <td>598</td>\n",
" <td>309</td>\n",
" <td>246</td>\n",
" <td>198</td>\n",
" <td>248</td>\n",
" <td>...</td>\n",
" <td>1067</td>\n",
" <td>1212</td>\n",
" <td>1250</td>\n",
" <td>1284</td>\n",
" <td>1194</td>\n",
" <td>1168</td>\n",
" <td>1265</td>\n",
" <td>1214</td>\n",
" <td>982</td>\n",
" <td>27707</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Jordan</th>\n",
" <td>Asia</td>\n",
" <td>Western Asia</td>\n",
" <td>Developing regions</td>\n",
" <td>177</td>\n",
" <td>160</td>\n",
" <td>155</td>\n",
" <td>113</td>\n",
" <td>102</td>\n",
" <td>179</td>\n",
" <td>181</td>\n",
" <td>...</td>\n",
" <td>1940</td>\n",
" <td>1827</td>\n",
" <td>1421</td>\n",
" <td>1581</td>\n",
" <td>1235</td>\n",
" <td>1831</td>\n",
" <td>1635</td>\n",
" <td>1206</td>\n",
" <td>1255</td>\n",
" <td>35406</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Kazakhstan</th>\n",
" <td>Asia</td>\n",
" <td>Central Asia</td>\n",
" <td>Developing regions</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>506</td>\n",
" <td>408</td>\n",
" <td>436</td>\n",
" <td>394</td>\n",
" <td>431</td>\n",
" <td>377</td>\n",
" <td>381</td>\n",
" <td>462</td>\n",
" <td>348</td>\n",
" <td>8490</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Kuwait</th>\n",
" <td>Asia</td>\n",
" <td>Western Asia</td>\n",
" <td>Developing regions</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>8</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>4</td>\n",
" <td>...</td>\n",
" <td>66</td>\n",
" <td>35</td>\n",
" <td>62</td>\n",
" <td>53</td>\n",
" <td>68</td>\n",
" <td>67</td>\n",
" <td>58</td>\n",
" <td>73</td>\n",
" <td>48</td>\n",
" <td>2025</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Kyrgyzstan</th>\n",
" <td>Asia</td>\n",
" <td>Central Asia</td>\n",
" <td>Developing regions</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>173</td>\n",
" <td>161</td>\n",
" <td>135</td>\n",
" <td>168</td>\n",
" <td>173</td>\n",
" <td>157</td>\n",
" <td>159</td>\n",
" <td>278</td>\n",
" <td>123</td>\n",
" <td>2353</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Lao People's Democratic Republic</th>\n",
" <td>Asia</td>\n",
" <td>South-Eastern Asia</td>\n",
" <td>Developing regions</td>\n",
" <td>11</td>\n",
" <td>6</td>\n",
" <td>16</td>\n",
" <td>16</td>\n",
" <td>7</td>\n",
" <td>17</td>\n",
" <td>21</td>\n",
" <td>...</td>\n",
" <td>42</td>\n",
" <td>74</td>\n",
" <td>53</td>\n",
" <td>32</td>\n",
" <td>39</td>\n",
" <td>54</td>\n",
" <td>22</td>\n",
" <td>25</td>\n",
" <td>15</td>\n",
" <td>1089</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Lebanon</th>\n",
" <td>Asia</td>\n",
" <td>Western Asia</td>\n",
" <td>Developing regions</td>\n",
" <td>1409</td>\n",
" <td>1119</td>\n",
" <td>1159</td>\n",
" <td>789</td>\n",
" <td>1253</td>\n",
" <td>1683</td>\n",
" <td>2576</td>\n",
" <td>...</td>\n",
" <td>3709</td>\n",
" <td>3802</td>\n",
" <td>3467</td>\n",
" <td>3566</td>\n",
" <td>3077</td>\n",
" <td>3432</td>\n",
" <td>3072</td>\n",
" <td>1614</td>\n",
" <td>2172</td>\n",
" <td>115359</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Malaysia</th>\n",
" <td>Asia</td>\n",
" <td>South-Eastern Asia</td>\n",
" <td>Developing regions</td>\n",
" <td>786</td>\n",
" <td>816</td>\n",
" <td>813</td>\n",
" <td>448</td>\n",
" <td>384</td>\n",
" <td>374</td>\n",
" <td>425</td>\n",
" <td>...</td>\n",
" <td>593</td>\n",
" <td>580</td>\n",
" <td>600</td>\n",
" <td>658</td>\n",
" <td>640</td>\n",
" <td>802</td>\n",
" <td>409</td>\n",
" <td>358</td>\n",
" <td>204</td>\n",
" <td>24417</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Maldives</th>\n",
" <td>Asia</td>\n",
" <td>Southern Asia</td>\n",
" <td>Developing regions</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>7</td>\n",
" <td>4</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>30</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Mongolia</th>\n",
" <td>Asia</td>\n",
" <td>Eastern Asia</td>\n",
" <td>Developing regions</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>59</td>\n",
" <td>64</td>\n",
" <td>82</td>\n",
" <td>59</td>\n",
" <td>118</td>\n",
" <td>169</td>\n",
" <td>103</td>\n",
" <td>68</td>\n",
" <td>99</td>\n",
" <td>952</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Myanmar</th>\n",
" <td>Asia</td>\n",
" <td>South-Eastern Asia</td>\n",
" <td>Developing regions</td>\n",
" <td>80</td>\n",
" <td>62</td>\n",
" <td>46</td>\n",
" <td>31</td>\n",
" <td>41</td>\n",
" <td>23</td>\n",
" <td>18</td>\n",
" <td>...</td>\n",
" <td>210</td>\n",
" <td>953</td>\n",
" <td>1887</td>\n",
" <td>975</td>\n",
" <td>1153</td>\n",
" <td>556</td>\n",
" <td>368</td>\n",
" <td>193</td>\n",
" <td>262</td>\n",
" <td>9245</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Nepal</th>\n",
" <td>Asia</td>\n",
" <td>Southern Asia</td>\n",
" <td>Developing regions</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>6</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>13</td>\n",
" <td>...</td>\n",
" <td>607</td>\n",
" <td>540</td>\n",
" <td>511</td>\n",
" <td>581</td>\n",
" <td>561</td>\n",
" <td>1392</td>\n",
" <td>1129</td>\n",
" <td>1185</td>\n",
" <td>1308</td>\n",
" <td>10222</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Oman</th>\n",
" <td>Asia</td>\n",
" <td>Western Asia</td>\n",
" <td>Developing regions</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>8</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>14</td>\n",
" <td>18</td>\n",
" <td>16</td>\n",
" <td>10</td>\n",
" <td>7</td>\n",
" <td>14</td>\n",
" <td>10</td>\n",
" <td>13</td>\n",
" <td>11</td>\n",
" <td>224</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Pakistan</th>\n",
" <td>Asia</td>\n",
" <td>Southern Asia</td>\n",
" <td>Developing regions</td>\n",
" <td>978</td>\n",
" <td>972</td>\n",
" <td>1201</td>\n",
" <td>900</td>\n",
" <td>668</td>\n",
" <td>514</td>\n",
" <td>691</td>\n",
" <td>...</td>\n",
" <td>14314</td>\n",
" <td>13127</td>\n",
" <td>10124</td>\n",
" <td>8994</td>\n",
" <td>7217</td>\n",
" <td>6811</td>\n",
" <td>7468</td>\n",
" <td>11227</td>\n",
" <td>12603</td>\n",
" <td>241600</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Philippines</th>\n",
" <td>Asia</td>\n",
" <td>South-Eastern Asia</td>\n",
" <td>Developing regions</td>\n",
" <td>6051</td>\n",
" <td>5921</td>\n",
" <td>5249</td>\n",
" <td>4562</td>\n",
" <td>3801</td>\n",
" <td>3150</td>\n",
" <td>4166</td>\n",
" <td>...</td>\n",
" <td>18139</td>\n",
" <td>18400</td>\n",
" <td>19837</td>\n",
" <td>24887</td>\n",
" <td>28573</td>\n",
" <td>38617</td>\n",
" <td>36765</td>\n",
" <td>34315</td>\n",
" <td>29544</td>\n",
" <td>511391</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Qatar</th>\n",
" <td>Asia</td>\n",
" <td>Western Asia</td>\n",
" <td>Developing regions</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>...</td>\n",
" <td>11</td>\n",
" <td>2</td>\n",
" <td>5</td>\n",
" <td>9</td>\n",
" <td>6</td>\n",
" <td>18</td>\n",
" <td>3</td>\n",
" <td>14</td>\n",
" <td>6</td>\n",
" <td>157</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Republic of Korea</th>\n",
" <td>Asia</td>\n",
" <td>Eastern Asia</td>\n",
" <td>Developing regions</td>\n",
" <td>1011</td>\n",
" <td>1456</td>\n",
" <td>1572</td>\n",
" <td>1081</td>\n",
" <td>847</td>\n",
" <td>962</td>\n",
" <td>1208</td>\n",
" <td>...</td>\n",
" <td>5832</td>\n",
" <td>6215</td>\n",
" <td>5920</td>\n",
" <td>7294</td>\n",
" <td>5874</td>\n",
" <td>5537</td>\n",
" <td>4588</td>\n",
" <td>5316</td>\n",
" <td>4509</td>\n",
" <td>142581</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Saudi Arabia</th>\n",
" <td>Asia</td>\n",
" <td>Western Asia</td>\n",
" <td>Developing regions</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>5</td>\n",
" <td>...</td>\n",
" <td>198</td>\n",
" <td>252</td>\n",
" <td>188</td>\n",
" <td>249</td>\n",
" <td>246</td>\n",
" <td>330</td>\n",
" <td>278</td>\n",
" <td>286</td>\n",
" <td>267</td>\n",
" <td>3425</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Singapore</th>\n",
" <td>Asia</td>\n",
" <td>South-Eastern Asia</td>\n",
" <td>Developing regions</td>\n",
" <td>241</td>\n",
" <td>301</td>\n",
" <td>337</td>\n",
" <td>169</td>\n",
" <td>128</td>\n",
" <td>139</td>\n",
" <td>205</td>\n",
" <td>...</td>\n",
" <td>392</td>\n",
" <td>298</td>\n",
" <td>690</td>\n",
" <td>734</td>\n",
" <td>366</td>\n",
" <td>805</td>\n",
" <td>219</td>\n",
" <td>146</td>\n",
" <td>141</td>\n",
" <td>14579</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Sri Lanka</th>\n",
" <td>Asia</td>\n",
" <td>Southern Asia</td>\n",
" <td>Developing regions</td>\n",
" <td>185</td>\n",
" <td>371</td>\n",
" <td>290</td>\n",
" <td>197</td>\n",
" <td>1086</td>\n",
" <td>845</td>\n",
" <td>1838</td>\n",
" <td>...</td>\n",
" <td>4930</td>\n",
" <td>4714</td>\n",
" <td>4123</td>\n",
" <td>4756</td>\n",
" <td>4547</td>\n",
" <td>4422</td>\n",
" <td>3309</td>\n",
" <td>3338</td>\n",
" <td>2394</td>\n",
" <td>148358</td>\n",
" </tr>\n",
" <tr>\n",
" <th>State of Palestine</th>\n",
" <td>Asia</td>\n",
" <td>Western Asia</td>\n",
" <td>Developing regions</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>453</td>\n",
" <td>627</td>\n",
" <td>441</td>\n",
" <td>481</td>\n",
" <td>400</td>\n",
" <td>654</td>\n",
" <td>555</td>\n",
" <td>533</td>\n",
" <td>462</td>\n",
" <td>6512</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Syrian Arab Republic</th>\n",
" <td>Asia</td>\n",
" <td>Western Asia</td>\n",
" <td>Developing regions</td>\n",
" <td>315</td>\n",
" <td>419</td>\n",
" <td>409</td>\n",
" <td>269</td>\n",
" <td>264</td>\n",
" <td>385</td>\n",
" <td>493</td>\n",
" <td>...</td>\n",
" <td>1458</td>\n",
" <td>1145</td>\n",
" <td>1056</td>\n",
" <td>919</td>\n",
" <td>917</td>\n",
" <td>1039</td>\n",
" <td>1005</td>\n",
" <td>650</td>\n",
" <td>1009</td>\n",
" <td>31485</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Tajikistan</th>\n",
" <td>Asia</td>\n",
" <td>Central Asia</td>\n",
" <td>Developing regions</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>85</td>\n",
" <td>46</td>\n",
" <td>44</td>\n",
" <td>15</td>\n",
" <td>50</td>\n",
" <td>52</td>\n",
" <td>47</td>\n",
" <td>34</td>\n",
" <td>39</td>\n",
" <td>503</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Thailand</th>\n",
" <td>Asia</td>\n",
" <td>South-Eastern Asia</td>\n",
" <td>Developing regions</td>\n",
" <td>56</td>\n",
" <td>53</td>\n",
" <td>113</td>\n",
" <td>65</td>\n",
" <td>82</td>\n",
" <td>66</td>\n",
" <td>78</td>\n",
" <td>...</td>\n",
" <td>575</td>\n",
" <td>500</td>\n",
" <td>487</td>\n",
" <td>519</td>\n",
" <td>512</td>\n",
" <td>499</td>\n",
" <td>396</td>\n",
" <td>296</td>\n",
" <td>400</td>\n",
" <td>9174</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Turkey</th>\n",
" <td>Asia</td>\n",
" <td>Western Asia</td>\n",
" <td>Developing regions</td>\n",
" <td>481</td>\n",
" <td>874</td>\n",
" <td>706</td>\n",
" <td>280</td>\n",
" <td>338</td>\n",
" <td>202</td>\n",
" <td>257</td>\n",
" <td>...</td>\n",
" <td>2065</td>\n",
" <td>1638</td>\n",
" <td>1463</td>\n",
" <td>1122</td>\n",
" <td>1238</td>\n",
" <td>1492</td>\n",
" <td>1257</td>\n",
" <td>1068</td>\n",
" <td>729</td>\n",
" <td>31781</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Turkmenistan</th>\n",
" <td>Asia</td>\n",
" <td>Central Asia</td>\n",
" <td>Developing regions</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>40</td>\n",
" <td>26</td>\n",
" <td>37</td>\n",
" <td>13</td>\n",
" <td>20</td>\n",
" <td>30</td>\n",
" <td>20</td>\n",
" <td>20</td>\n",
" <td>14</td>\n",
" <td>310</td>\n",
" </tr>\n",
" <tr>\n",
" <th>United Arab Emirates</th>\n",
" <td>Asia</td>\n",
" <td>Western Asia</td>\n",
" <td>Developing regions</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>5</td>\n",
" <td>...</td>\n",
" <td>31</td>\n",
" <td>42</td>\n",
" <td>37</td>\n",
" <td>33</td>\n",
" <td>37</td>\n",
" <td>86</td>\n",
" <td>60</td>\n",
" <td>54</td>\n",
" <td>46</td>\n",
" <td>836</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Uzbekistan</th>\n",
" <td>Asia</td>\n",
" <td>Central Asia</td>\n",
" <td>Developing regions</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>330</td>\n",
" <td>262</td>\n",
" <td>284</td>\n",
" <td>215</td>\n",
" <td>288</td>\n",
" <td>289</td>\n",
" <td>162</td>\n",
" <td>235</td>\n",
" <td>167</td>\n",
" <td>3368</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Viet Nam</th>\n",
" <td>Asia</td>\n",
" <td>South-Eastern Asia</td>\n",
" <td>Developing regions</td>\n",
" <td>1191</td>\n",
" <td>1829</td>\n",
" <td>2162</td>\n",
" <td>3404</td>\n",
" <td>7583</td>\n",
" <td>5907</td>\n",
" <td>2741</td>\n",
" <td>...</td>\n",
" <td>1852</td>\n",
" <td>3153</td>\n",
" <td>2574</td>\n",
" <td>1784</td>\n",
" <td>2171</td>\n",
" <td>1942</td>\n",
" <td>1723</td>\n",
" <td>1731</td>\n",
" <td>2112</td>\n",
" <td>97146</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Yemen</th>\n",
" <td>Asia</td>\n",
" <td>Western Asia</td>\n",
" <td>Developing regions</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>6</td>\n",
" <td>0</td>\n",
" <td>18</td>\n",
" <td>7</td>\n",
" <td>...</td>\n",
" <td>161</td>\n",
" <td>140</td>\n",
" <td>122</td>\n",
" <td>133</td>\n",
" <td>128</td>\n",
" <td>211</td>\n",
" <td>160</td>\n",
" <td>174</td>\n",
" <td>217</td>\n",
" <td>2985</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>49 rows × 38 columns</p>\n",
"</div>"
],
"text/plain": [
" Continent Region \\\n",
"Afghanistan Asia Southern Asia \n",
"Armenia Asia Western Asia \n",
"Azerbaijan Asia Western Asia \n",
"Bahrain Asia Western Asia \n",
"Bangladesh Asia Southern Asia \n",
"Bhutan Asia Southern Asia \n",
"Brunei Darussalam Asia South-Eastern Asia \n",
"Cambodia Asia South-Eastern Asia \n",
"China Asia Eastern Asia \n",
"China, Hong Kong Special Administrative Region Asia Eastern Asia \n",
"China, Macao Special Administrative Region Asia Eastern Asia \n",
"Cyprus Asia Western Asia \n",
"Democratic People's Republic of Korea Asia Eastern Asia \n",
"Georgia Asia Western Asia \n",
"India Asia Southern Asia \n",
"Indonesia Asia South-Eastern Asia \n",
"Iran (Islamic Republic of) Asia Southern Asia \n",
"Iraq Asia Western Asia \n",
"Israel Asia Western Asia \n",
"Japan Asia Eastern Asia \n",
"Jordan Asia Western Asia \n",
"Kazakhstan Asia Central Asia \n",
"Kuwait Asia Western Asia \n",
"Kyrgyzstan Asia Central Asia \n",
"Lao People's Democratic Republic Asia South-Eastern Asia \n",
"Lebanon Asia Western Asia \n",
"Malaysia Asia South-Eastern Asia \n",
"Maldives Asia Southern Asia \n",
"Mongolia Asia Eastern Asia \n",
"Myanmar Asia South-Eastern Asia \n",
"Nepal Asia Southern Asia \n",
"Oman Asia Western Asia \n",
"Pakistan Asia Southern Asia \n",
"Philippines Asia South-Eastern Asia \n",
"Qatar Asia Western Asia \n",
"Republic of Korea Asia Eastern Asia \n",
"Saudi Arabia Asia Western Asia \n",
"Singapore Asia South-Eastern Asia \n",
"Sri Lanka Asia Southern Asia \n",
"State of Palestine Asia Western Asia \n",
"Syrian Arab Republic Asia Western Asia \n",
"Tajikistan Asia Central Asia \n",
"Thailand Asia South-Eastern Asia \n",
"Turkey Asia Western Asia \n",
"Turkmenistan Asia Central Asia \n",
"United Arab Emirates Asia Western Asia \n",
"Uzbekistan Asia Central Asia \n",
"Viet Nam Asia South-Eastern Asia \n",
"Yemen Asia Western Asia \n",
"\n",
" DevName 1980 \\\n",
"Afghanistan Developing regions 16 \n",
"Armenia Developing regions 0 \n",
"Azerbaijan Developing regions 0 \n",
"Bahrain Developing regions 0 \n",
"Bangladesh Developing regions 83 \n",
"Bhutan Developing regions 0 \n",
"Brunei Darussalam Developing regions 79 \n",
"Cambodia Developing regions 12 \n",
"China Developing regions 5123 \n",
"China, Hong Kong Special Administrative Region Developing regions 0 \n",
"China, Macao Special Administrative Region Developing regions 0 \n",
"Cyprus Developing regions 132 \n",
"Democratic People's Republic of Korea Developing regions 1 \n",
"Georgia Developing regions 0 \n",
"India Developing regions 8880 \n",
"Indonesia Developing regions 186 \n",
"Iran (Islamic Republic of) Developing regions 1172 \n",
"Iraq Developing regions 262 \n",
"Israel Developing regions 1403 \n",
"Japan Developed regions 701 \n",
"Jordan Developing regions 177 \n",
"Kazakhstan Developing regions 0 \n",
"Kuwait Developing regions 1 \n",
"Kyrgyzstan Developing regions 0 \n",
"Lao People's Democratic Republic Developing regions 11 \n",
"Lebanon Developing regions 1409 \n",
"Malaysia Developing regions 786 \n",
"Maldives Developing regions 0 \n",
"Mongolia Developing regions 0 \n",
"Myanmar Developing regions 80 \n",
"Nepal Developing regions 1 \n",
"Oman Developing regions 0 \n",
"Pakistan Developing regions 978 \n",
"Philippines Developing regions 6051 \n",
"Qatar Developing regions 0 \n",
"Republic of Korea Developing regions 1011 \n",
"Saudi Arabia Developing regions 0 \n",
"Singapore Developing regions 241 \n",
"Sri Lanka Developing regions 185 \n",
"State of Palestine Developing regions 0 \n",
"Syrian Arab Republic Developing regions 315 \n",
"Tajikistan Developing regions 0 \n",
"Thailand Developing regions 56 \n",
"Turkey Developing regions 481 \n",
"Turkmenistan Developing regions 0 \n",
"United Arab Emirates Developing regions 0 \n",
"Uzbekistan Developing regions 0 \n",
"Viet Nam Developing regions 1191 \n",
"Yemen Developing regions 1 \n",
"\n",
" 1981 1982 1983 1984 1985 \\\n",
"Afghanistan 39 39 47 71 340 \n",
"Armenia 0 0 0 0 0 \n",
"Azerbaijan 0 0 0 0 0 \n",
"Bahrain 2 1 1 1 3 \n",
"Bangladesh 84 86 81 98 92 \n",
"Bhutan 0 0 0 1 0 \n",
"Brunei Darussalam 6 8 2 2 4 \n",
"Cambodia 19 26 33 10 7 \n",
"China 6682 3308 1863 1527 1816 \n",
"China, Hong Kong Special Administrative Region 0 0 0 0 0 \n",
"China, Macao Special Administrative Region 0 0 0 0 0 \n",
"Cyprus 128 84 46 46 43 \n",
"Democratic People's Republic of Korea 1 3 1 4 3 \n",
"Georgia 0 0 0 0 0 \n",
"India 8670 8147 7338 5704 4211 \n",
"Indonesia 178 252 115 123 100 \n",
"Iran (Islamic Republic of) 1429 1822 1592 1977 1648 \n",
"Iraq 245 260 380 428 231 \n",
"Israel 1711 1334 541 446 680 \n",
"Japan 756 598 309 246 198 \n",
"Jordan 160 155 113 102 179 \n",
"Kazakhstan 0 0 0 0 0 \n",
"Kuwait 0 8 2 1 4 \n",
"Kyrgyzstan 0 0 0 0 0 \n",
"Lao People's Democratic Republic 6 16 16 7 17 \n",
"Lebanon 1119 1159 789 1253 1683 \n",
"Malaysia 816 813 448 384 374 \n",
"Maldives 0 0 1 0 0 \n",
"Mongolia 0 0 0 0 0 \n",
"Myanmar 62 46 31 41 23 \n",
"Nepal 1 6 1 2 4 \n",
"Oman 0 0 8 0 0 \n",
"Pakistan 972 1201 900 668 514 \n",
"Philippines 5921 5249 4562 3801 3150 \n",
"Qatar 0 0 0 0 0 \n",
"Republic of Korea 1456 1572 1081 847 962 \n",
"Saudi Arabia 0 1 4 1 2 \n",
"Singapore 301 337 169 128 139 \n",
"Sri Lanka 371 290 197 1086 845 \n",
"State of Palestine 0 0 0 0 0 \n",
"Syrian Arab Republic 419 409 269 264 385 \n",
"Tajikistan 0 0 0 0 0 \n",
"Thailand 53 113 65 82 66 \n",
"Turkey 874 706 280 338 202 \n",
"Turkmenistan 0 0 0 0 0 \n",
"United Arab Emirates 2 2 1 2 0 \n",
"Uzbekistan 0 0 0 0 0 \n",
"Viet Nam 1829 2162 3404 7583 5907 \n",
"Yemen 2 1 6 0 18 \n",
"\n",
" 1986 ... 2005 2006 \\\n",
"Afghanistan 496 ... 3436 3009 \n",
"Armenia 0 ... 224 218 \n",
"Azerbaijan 0 ... 359 236 \n",
"Bahrain 0 ... 12 12 \n",
"Bangladesh 486 ... 4171 4014 \n",
"Bhutan 0 ... 5 10 \n",
"Brunei Darussalam 12 ... 4 5 \n",
"Cambodia 8 ... 370 529 \n",
"China 1960 ... 42584 33518 \n",
"China, Hong Kong Special Administrative Region 0 ... 729 712 \n",
"China, Macao Special Administrative Region 0 ... 21 32 \n",
"Cyprus 48 ... 7 9 \n",
"Democratic People's Republic of Korea 0 ... 14 10 \n",
"Georgia 0 ... 114 125 \n",
"India 7150 ... 36210 33848 \n",
"Indonesia 127 ... 632 613 \n",
"Iran (Islamic Republic of) 1794 ... 5837 7480 \n",
"Iraq 265 ... 2226 1788 \n",
"Israel 1212 ... 2446 2625 \n",
"Japan 248 ... 1067 1212 \n",
"Jordan 181 ... 1940 1827 \n",
"Kazakhstan 0 ... 506 408 \n",
"Kuwait 4 ... 66 35 \n",
"Kyrgyzstan 0 ... 173 161 \n",
"Lao People's Democratic Republic 21 ... 42 74 \n",
"Lebanon 2576 ... 3709 3802 \n",
"Malaysia 425 ... 593 580 \n",
"Maldives 0 ... 0 0 \n",
"Mongolia 0 ... 59 64 \n",
"Myanmar 18 ... 210 953 \n",
"Nepal 13 ... 607 540 \n",
"Oman 0 ... 14 18 \n",
"Pakistan 691 ... 14314 13127 \n",
"Philippines 4166 ... 18139 18400 \n",
"Qatar 1 ... 11 2 \n",
"Republic of Korea 1208 ... 5832 6215 \n",
"Saudi Arabia 5 ... 198 252 \n",
"Singapore 205 ... 392 298 \n",
"Sri Lanka 1838 ... 4930 4714 \n",
"State of Palestine 0 ... 453 627 \n",
"Syrian Arab Republic 493 ... 1458 1145 \n",
"Tajikistan 0 ... 85 46 \n",
"Thailand 78 ... 575 500 \n",
"Turkey 257 ... 2065 1638 \n",
"Turkmenistan 0 ... 40 26 \n",
"United Arab Emirates 5 ... 31 42 \n",
"Uzbekistan 0 ... 330 262 \n",
"Viet Nam 2741 ... 1852 3153 \n",
"Yemen 7 ... 161 140 \n",
"\n",
" 2007 2008 2009 2010 \\\n",
"Afghanistan 2652 2111 1746 1758 \n",
"Armenia 198 205 267 252 \n",
"Azerbaijan 203 125 165 209 \n",
"Bahrain 22 9 35 28 \n",
"Bangladesh 2897 2939 2104 4721 \n",
"Bhutan 7 36 865 1464 \n",
"Brunei Darussalam 11 10 5 12 \n",
"Cambodia 460 354 203 200 \n",
"China 27642 30037 29622 30391 \n",
"China, Hong Kong Special Administrative Region 674 897 657 623 \n",
"China, Macao Special Administrative Region 16 12 21 21 \n",
"Cyprus 4 7 6 18 \n",
"Democratic People's Republic of Korea 7 19 11 45 \n",
"Georgia 132 112 128 126 \n",
"India 28742 28261 29456 34235 \n",
"Indonesia 657 661 504 712 \n",
"Iran (Islamic Republic of) 6974 6475 6580 7477 \n",
"Iraq 2406 3543 5450 5941 \n",
"Israel 2401 2562 2316 2755 \n",
"Japan 1250 1284 1194 1168 \n",
"Jordan 1421 1581 1235 1831 \n",
"Kazakhstan 436 394 431 377 \n",
"Kuwait 62 53 68 67 \n",
"Kyrgyzstan 135 168 173 157 \n",
"Lao People's Democratic Republic 53 32 39 54 \n",
"Lebanon 3467 3566 3077 3432 \n",
"Malaysia 600 658 640 802 \n",
"Maldives 2 1 7 4 \n",
"Mongolia 82 59 118 169 \n",
"Myanmar 1887 975 1153 556 \n",
"Nepal 511 581 561 1392 \n",
"Oman 16 10 7 14 \n",
"Pakistan 10124 8994 7217 6811 \n",
"Philippines 19837 24887 28573 38617 \n",
"Qatar 5 9 6 18 \n",
"Republic of Korea 5920 7294 5874 5537 \n",
"Saudi Arabia 188 249 246 330 \n",
"Singapore 690 734 366 805 \n",
"Sri Lanka 4123 4756 4547 4422 \n",
"State of Palestine 441 481 400 654 \n",
"Syrian Arab Republic 1056 919 917 1039 \n",
"Tajikistan 44 15 50 52 \n",
"Thailand 487 519 512 499 \n",
"Turkey 1463 1122 1238 1492 \n",
"Turkmenistan 37 13 20 30 \n",
"United Arab Emirates 37 33 37 86 \n",
"Uzbekistan 284 215 288 289 \n",
"Viet Nam 2574 1784 2171 1942 \n",
"Yemen 122 133 128 211 \n",
"\n",
" 2011 2012 2013 Total \n",
"Afghanistan 2203 2635 2004 58639 \n",
"Armenia 236 258 207 3310 \n",
"Azerbaijan 138 161 57 2649 \n",
"Bahrain 21 39 32 475 \n",
"Bangladesh 2694 2640 3789 65568 \n",
"Bhutan 1879 1075 487 5876 \n",
"Brunei Darussalam 6 3 6 600 \n",
"Cambodia 196 233 288 6538 \n",
"China 28502 33024 34129 659962 \n",
"China, Hong Kong Special Administrative Region 591 728 774 9327 \n",
"China, Macao Special Administrative Region 13 33 29 284 \n",
"Cyprus 6 12 16 1126 \n",
"Democratic People's Republic of Korea 97 66 17 388 \n",
"Georgia 139 147 125 2068 \n",
"India 27509 30933 33087 691904 \n",
"Indonesia 390 395 387 13150 \n",
"Iran (Islamic Republic of) 7479 7534 11291 175923 \n",
"Iraq 6196 4041 4918 69789 \n",
"Israel 1970 2134 1945 66508 \n",
"Japan 1265 1214 982 27707 \n",
"Jordan 1635 1206 1255 35406 \n",
"Kazakhstan 381 462 348 8490 \n",
"Kuwait 58 73 48 2025 \n",
"Kyrgyzstan 159 278 123 2353 \n",
"Lao People's Democratic Republic 22 25 15 1089 \n",
"Lebanon 3072 1614 2172 115359 \n",
"Malaysia 409 358 204 24417 \n",
"Maldives 3 1 1 30 \n",
"Mongolia 103 68 99 952 \n",
"Myanmar 368 193 262 9245 \n",
"Nepal 1129 1185 1308 10222 \n",
"Oman 10 13 11 224 \n",
"Pakistan 7468 11227 12603 241600 \n",
"Philippines 36765 34315 29544 511391 \n",
"Qatar 3 14 6 157 \n",
"Republic of Korea 4588 5316 4509 142581 \n",
"Saudi Arabia 278 286 267 3425 \n",
"Singapore 219 146 141 14579 \n",
"Sri Lanka 3309 3338 2394 148358 \n",
"State of Palestine 555 533 462 6512 \n",
"Syrian Arab Republic 1005 650 1009 31485 \n",
"Tajikistan 47 34 39 503 \n",
"Thailand 396 296 400 9174 \n",
"Turkey 1257 1068 729 31781 \n",
"Turkmenistan 20 20 14 310 \n",
"United Arab Emirates 60 54 46 836 \n",
"Uzbekistan 162 235 167 3368 \n",
"Viet Nam 1723 1731 2112 97146 \n",
"Yemen 160 174 217 2985 \n",
"\n",
"[49 rows x 38 columns]"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# 2. pass this condition into the dataFrame\n",
"df_can[condition]"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {
"button": false,
"collapsed": false,
"deletable": true,
"jupyter": {
"outputs_hidden": false
},
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Continent</th>\n",
" <th>Region</th>\n",
" <th>DevName</th>\n",
" <th>1980</th>\n",
" <th>1981</th>\n",
" <th>1982</th>\n",
" <th>1983</th>\n",
" <th>1984</th>\n",
" <th>1985</th>\n",
" <th>1986</th>\n",
" <th>...</th>\n",
" <th>2005</th>\n",
" <th>2006</th>\n",
" <th>2007</th>\n",
" <th>2008</th>\n",
" <th>2009</th>\n",
" <th>2010</th>\n",
" <th>2011</th>\n",
" <th>2012</th>\n",
" <th>2013</th>\n",
" <th>Total</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>Afghanistan</th>\n",
" <td>Asia</td>\n",
" <td>Southern Asia</td>\n",
" <td>Developing regions</td>\n",
" <td>16</td>\n",
" <td>39</td>\n",
" <td>39</td>\n",
" <td>47</td>\n",
" <td>71</td>\n",
" <td>340</td>\n",
" <td>496</td>\n",
" <td>...</td>\n",
" <td>3436</td>\n",
" <td>3009</td>\n",
" <td>2652</td>\n",
" <td>2111</td>\n",
" <td>1746</td>\n",
" <td>1758</td>\n",
" <td>2203</td>\n",
" <td>2635</td>\n",
" <td>2004</td>\n",
" <td>58639</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Bangladesh</th>\n",
" <td>Asia</td>\n",
" <td>Southern Asia</td>\n",
" <td>Developing regions</td>\n",
" <td>83</td>\n",
" <td>84</td>\n",
" <td>86</td>\n",
" <td>81</td>\n",
" <td>98</td>\n",
" <td>92</td>\n",
" <td>486</td>\n",
" <td>...</td>\n",
" <td>4171</td>\n",
" <td>4014</td>\n",
" <td>2897</td>\n",
" <td>2939</td>\n",
" <td>2104</td>\n",
" <td>4721</td>\n",
" <td>2694</td>\n",
" <td>2640</td>\n",
" <td>3789</td>\n",
" <td>65568</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Bhutan</th>\n",
" <td>Asia</td>\n",
" <td>Southern Asia</td>\n",
" <td>Developing regions</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>5</td>\n",
" <td>10</td>\n",
" <td>7</td>\n",
" <td>36</td>\n",
" <td>865</td>\n",
" <td>1464</td>\n",
" <td>1879</td>\n",
" <td>1075</td>\n",
" <td>487</td>\n",
" <td>5876</td>\n",
" </tr>\n",
" <tr>\n",
" <th>India</th>\n",
" <td>Asia</td>\n",
" <td>Southern Asia</td>\n",
" <td>Developing regions</td>\n",
" <td>8880</td>\n",
" <td>8670</td>\n",
" <td>8147</td>\n",
" <td>7338</td>\n",
" <td>5704</td>\n",
" <td>4211</td>\n",
" <td>7150</td>\n",
" <td>...</td>\n",
" <td>36210</td>\n",
" <td>33848</td>\n",
" <td>28742</td>\n",
" <td>28261</td>\n",
" <td>29456</td>\n",
" <td>34235</td>\n",
" <td>27509</td>\n",
" <td>30933</td>\n",
" <td>33087</td>\n",
" <td>691904</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Iran (Islamic Republic of)</th>\n",
" <td>Asia</td>\n",
" <td>Southern Asia</td>\n",
" <td>Developing regions</td>\n",
" <td>1172</td>\n",
" <td>1429</td>\n",
" <td>1822</td>\n",
" <td>1592</td>\n",
" <td>1977</td>\n",
" <td>1648</td>\n",
" <td>1794</td>\n",
" <td>...</td>\n",
" <td>5837</td>\n",
" <td>7480</td>\n",
" <td>6974</td>\n",
" <td>6475</td>\n",
" <td>6580</td>\n",
" <td>7477</td>\n",
" <td>7479</td>\n",
" <td>7534</td>\n",
" <td>11291</td>\n",
" <td>175923</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Maldives</th>\n",
" <td>Asia</td>\n",
" <td>Southern Asia</td>\n",
" <td>Developing regions</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>7</td>\n",
" <td>4</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>30</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Nepal</th>\n",
" <td>Asia</td>\n",
" <td>Southern Asia</td>\n",
" <td>Developing regions</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>6</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>13</td>\n",
" <td>...</td>\n",
" <td>607</td>\n",
" <td>540</td>\n",
" <td>511</td>\n",
" <td>581</td>\n",
" <td>561</td>\n",
" <td>1392</td>\n",
" <td>1129</td>\n",
" <td>1185</td>\n",
" <td>1308</td>\n",
" <td>10222</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Pakistan</th>\n",
" <td>Asia</td>\n",
" <td>Southern Asia</td>\n",
" <td>Developing regions</td>\n",
" <td>978</td>\n",
" <td>972</td>\n",
" <td>1201</td>\n",
" <td>900</td>\n",
" <td>668</td>\n",
" <td>514</td>\n",
" <td>691</td>\n",
" <td>...</td>\n",
" <td>14314</td>\n",
" <td>13127</td>\n",
" <td>10124</td>\n",
" <td>8994</td>\n",
" <td>7217</td>\n",
" <td>6811</td>\n",
" <td>7468</td>\n",
" <td>11227</td>\n",
" <td>12603</td>\n",
" <td>241600</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Sri Lanka</th>\n",
" <td>Asia</td>\n",
" <td>Southern Asia</td>\n",
" <td>Developing regions</td>\n",
" <td>185</td>\n",
" <td>371</td>\n",
" <td>290</td>\n",
" <td>197</td>\n",
" <td>1086</td>\n",
" <td>845</td>\n",
" <td>1838</td>\n",
" <td>...</td>\n",
" <td>4930</td>\n",
" <td>4714</td>\n",
" <td>4123</td>\n",
" <td>4756</td>\n",
" <td>4547</td>\n",
" <td>4422</td>\n",
" <td>3309</td>\n",
" <td>3338</td>\n",
" <td>2394</td>\n",
" <td>148358</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>9 rows × 38 columns</p>\n",
"</div>"
],
"text/plain": [
" Continent Region DevName 1980 \\\n",
"Afghanistan Asia Southern Asia Developing regions 16 \n",
"Bangladesh Asia Southern Asia Developing regions 83 \n",
"Bhutan Asia Southern Asia Developing regions 0 \n",
"India Asia Southern Asia Developing regions 8880 \n",
"Iran (Islamic Republic of) Asia Southern Asia Developing regions 1172 \n",
"Maldives Asia Southern Asia Developing regions 0 \n",
"Nepal Asia Southern Asia Developing regions 1 \n",
"Pakistan Asia Southern Asia Developing regions 978 \n",
"Sri Lanka Asia Southern Asia Developing regions 185 \n",
"\n",
" 1981 1982 1983 1984 1985 1986 ... 2005 \\\n",
"Afghanistan 39 39 47 71 340 496 ... 3436 \n",
"Bangladesh 84 86 81 98 92 486 ... 4171 \n",
"Bhutan 0 0 0 1 0 0 ... 5 \n",
"India 8670 8147 7338 5704 4211 7150 ... 36210 \n",
"Iran (Islamic Republic of) 1429 1822 1592 1977 1648 1794 ... 5837 \n",
"Maldives 0 0 1 0 0 0 ... 0 \n",
"Nepal 1 6 1 2 4 13 ... 607 \n",
"Pakistan 972 1201 900 668 514 691 ... 14314 \n",
"Sri Lanka 371 290 197 1086 845 1838 ... 4930 \n",
"\n",
" 2006 2007 2008 2009 2010 2011 2012 \\\n",
"Afghanistan 3009 2652 2111 1746 1758 2203 2635 \n",
"Bangladesh 4014 2897 2939 2104 4721 2694 2640 \n",
"Bhutan 10 7 36 865 1464 1879 1075 \n",
"India 33848 28742 28261 29456 34235 27509 30933 \n",
"Iran (Islamic Republic of) 7480 6974 6475 6580 7477 7479 7534 \n",
"Maldives 0 2 1 7 4 3 1 \n",
"Nepal 540 511 581 561 1392 1129 1185 \n",
"Pakistan 13127 10124 8994 7217 6811 7468 11227 \n",
"Sri Lanka 4714 4123 4756 4547 4422 3309 3338 \n",
"\n",
" 2013 Total \n",
"Afghanistan 2004 58639 \n",
"Bangladesh 3789 65568 \n",
"Bhutan 487 5876 \n",
"India 33087 691904 \n",
"Iran (Islamic Republic of) 11291 175923 \n",
"Maldives 1 30 \n",
"Nepal 1308 10222 \n",
"Pakistan 12603 241600 \n",
"Sri Lanka 2394 148358 \n",
"\n",
"[9 rows x 38 columns]"
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# we can pass mutliple criteria in the same line. \n",
"# let's filter for AreaNAme = Asia and RegName = Southern Asia\n",
"\n",
"df_can[(df_can['Continent']=='Asia') & (df_can['Region']=='Southern Asia')]\n",
"\n",
"# note: When using 'and' and 'or' operators, pandas requires we use '&' and '|' instead of 'and' and 'or'\n",
"# don't forget to enclose the two conditions in parentheses"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"Before we proceed: let's review the changes we have made to our dataframe."
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
},
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"data dimensions: (195, 38)\n",
"Index(['Continent', 'Region', 'DevName', '1980', '1981', '1982', '1983',\n",
" '1984', '1985', '1986', '1987', '1988', '1989', '1990', '1991', '1992',\n",
" '1993', '1994', '1995', '1996', '1997', '1998', '1999', '2000', '2001',\n",
" '2002', '2003', '2004', '2005', '2006', '2007', '2008', '2009', '2010',\n",
" '2011', '2012', '2013', 'Total'],\n",
" dtype='object')\n"
]
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Continent</th>\n",
" <th>Region</th>\n",
" <th>DevName</th>\n",
" <th>1980</th>\n",
" <th>1981</th>\n",
" <th>1982</th>\n",
" <th>1983</th>\n",
" <th>1984</th>\n",
" <th>1985</th>\n",
" <th>1986</th>\n",
" <th>...</th>\n",
" <th>2005</th>\n",
" <th>2006</th>\n",
" <th>2007</th>\n",
" <th>2008</th>\n",
" <th>2009</th>\n",
" <th>2010</th>\n",
" <th>2011</th>\n",
" <th>2012</th>\n",
" <th>2013</th>\n",
" <th>Total</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>Afghanistan</th>\n",
" <td>Asia</td>\n",
" <td>Southern Asia</td>\n",
" <td>Developing regions</td>\n",
" <td>16</td>\n",
" <td>39</td>\n",
" <td>39</td>\n",
" <td>47</td>\n",
" <td>71</td>\n",
" <td>340</td>\n",
" <td>496</td>\n",
" <td>...</td>\n",
" <td>3436</td>\n",
" <td>3009</td>\n",
" <td>2652</td>\n",
" <td>2111</td>\n",
" <td>1746</td>\n",
" <td>1758</td>\n",
" <td>2203</td>\n",
" <td>2635</td>\n",
" <td>2004</td>\n",
" <td>58639</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Albania</th>\n",
" <td>Europe</td>\n",
" <td>Southern Europe</td>\n",
" <td>Developed regions</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>...</td>\n",
" <td>1223</td>\n",
" <td>856</td>\n",
" <td>702</td>\n",
" <td>560</td>\n",
" <td>716</td>\n",
" <td>561</td>\n",
" <td>539</td>\n",
" <td>620</td>\n",
" <td>603</td>\n",
" <td>15699</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>2 rows × 38 columns</p>\n",
"</div>"
],
"text/plain": [
" Continent Region DevName 1980 1981 1982 \\\n",
"Afghanistan Asia Southern Asia Developing regions 16 39 39 \n",
"Albania Europe Southern Europe Developed regions 1 0 0 \n",
"\n",
" 1983 1984 1985 1986 ... 2005 2006 2007 2008 2009 2010 \\\n",
"Afghanistan 47 71 340 496 ... 3436 3009 2652 2111 1746 1758 \n",
"Albania 0 0 0 1 ... 1223 856 702 560 716 561 \n",
"\n",
" 2011 2012 2013 Total \n",
"Afghanistan 2203 2635 2004 58639 \n",
"Albania 539 620 603 15699 \n",
"\n",
"[2 rows x 38 columns]"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"print('data dimensions:', df_can.shape)\n",
"print(df_can.columns)\n",
"df_can.head(2)"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"---\n",
"# Visualizing Data using Matplotlib<a id=\"8\"></a>"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"## Matplotlib: Standard Python Visualization Library<a id=\"10\"></a>\n",
"\n",
"The primary plotting library we will explore in the course is [Matplotlib](http://matplotlib.org/). As mentioned on their website: \n",
">Matplotlib is a Python 2D plotting library which produces publication quality figures in a variety of hardcopy formats and interactive environments across platforms. Matplotlib can be used in Python scripts, the Python and IPython shell, the jupyter notebook, web application servers, and four graphical user interface toolkits.\n",
"\n",
"If you are aspiring to create impactful visualization with python, Matplotlib is an essential tool to have at your disposal."
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"### Matplotlib.Pyplot\n",
"\n",
"One of the core aspects of Matplotlib is `matplotlib.pyplot`. It is Matplotlib's scripting layer which we studied in details in the videos about Matplotlib. Recall that it is a collection of command style functions that make Matplotlib work like MATLAB. Each `pyplot` function makes some change to a figure: e.g., creates a figure, creates a plotting area in a figure, plots some lines in a plotting area, decorates the plot with labels, etc. In this lab, we will work with the scripting layer to learn how to generate line plots. In future labs, we will get to work with the Artist layer as well to experiment first hand how it differs from the scripting layer. \n"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"Let's start by importing `Matplotlib` and `Matplotlib.pyplot` as follows:"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {
"button": false,
"collapsed": false,
"deletable": true,
"jupyter": {
"outputs_hidden": false
},
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"outputs": [],
"source": [
"# we are using the inline backend\n",
"%matplotlib inline \n",
"\n",
"import matplotlib as mpl\n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"*optional: check if Matplotlib is loaded."
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {
"button": false,
"collapsed": false,
"deletable": true,
"jupyter": {
"outputs_hidden": false
},
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Matplotlib version: 3.3.0\n"
]
}
],
"source": [
"print ('Matplotlib version: ', mpl.__version__) # >= 2.0.0"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"*optional: apply a style to Matplotlib."
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {
"button": false,
"collapsed": false,
"deletable": true,
"jupyter": {
"outputs_hidden": false
},
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"['Solarize_Light2', '_classic_test_patch', 'bmh', 'classic', 'dark_background', 'fast', 'fivethirtyeight', 'ggplot', 'grayscale', 'seaborn', 'seaborn-bright', 'seaborn-colorblind', 'seaborn-dark', 'seaborn-dark-palette', 'seaborn-darkgrid', 'seaborn-deep', 'seaborn-muted', 'seaborn-notebook', 'seaborn-paper', 'seaborn-pastel', 'seaborn-poster', 'seaborn-talk', 'seaborn-ticks', 'seaborn-white', 'seaborn-whitegrid', 'tableau-colorblind10']\n"
]
}
],
"source": [
"print(plt.style.available)\n",
"mpl.style.use(['ggplot']) # optional: for ggplot-like style"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"### Plotting in *pandas*\n",
"\n",
"Fortunately, pandas has a built-in implementation of Matplotlib that we can use. Plotting in *pandas* is as simple as appending a `.plot()` method to a series or dataframe.\n",
"\n",
"Documentation:\n",
"- [Plotting with Series](http://pandas.pydata.org/pandas-docs/stable/api.html#plotting)<br>\n",
"- [Plotting with Dataframes](http://pandas.pydata.org/pandas-docs/stable/api.html#api-dataframe-plotting)"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"# Line Pots (Series/Dataframe) <a id=\"12\"></a>"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"**What is a line plot and why use it?**\n",
"\n",
"A line chart or line plot is a type of plot which displays information as a series of data points called 'markers' connected by straight line segments. It is a basic type of chart common in many fields.\n",
"Use line plot when you have a continuous data set. These are best suited for trend-based visualizations of data over a period of time."
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"**Let's start with a case study:**\n",
"\n",
"In 2010, Haiti suffered a catastrophic magnitude 7.0 earthquake. The quake caused widespread devastation and loss of life and aout three million people were affected by this natural disaster. As part of Canada's humanitarian effort, the Government of Canada stepped up its effort in accepting refugees from Haiti. We can quickly visualize this effort using a `Line` plot:\n",
"\n",
"**Question:** Plot a line graph of immigration from Haiti using `df.plot()`.\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"First, we will extract the data series for Haiti."
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {
"button": false,
"collapsed": false,
"deletable": true,
"jupyter": {
"outputs_hidden": false
},
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"outputs": [
{
"data": {
"text/plain": [
"1980 1666\n",
"1981 3692\n",
"1982 3498\n",
"1983 2860\n",
"1984 1418\n",
"Name: Haiti, dtype: object"
]
},
"execution_count": 33,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"haiti = df_can.loc['Haiti', years] # passing in years 1980 - 2013 to exclude the 'total' column\n",
"haiti.head()"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"Next, we will plot a line plot by appending `.plot()` to the `haiti` dataframe."
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {
"button": false,
"collapsed": false,
"deletable": true,
"jupyter": {
"outputs_hidden": false
},
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/pandas/plotting/_matplotlib/core.py:1192: UserWarning: FixedFormatter should only be used together with FixedLocator\n",
" ax.set_xticklabels(xticklabels)\n"
]
},
{
"data": {
"text/plain": [
"<AxesSubplot:>"
]
},
"execution_count": 34,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"haiti.plot()"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"*pandas* automatically populated the x-axis with the index values (years), and the y-axis with the column values (population). However, notice how the years were not displayed because they are of type *string*. Therefore, let's change the type of the index values to *integer* for plotting.\n",
"\n",
"Also, let's label the x and y axis using `plt.title()`, `plt.ylabel()`, and `plt.xlabel()` as follows:"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {
"button": false,
"collapsed": false,
"deletable": true,
"jupyter": {
"outputs_hidden": false
},
"new_sheet": false,
"run_control": {
"read_only": false
},
"scrolled": true
},
"outputs": [
{
"data": {
"image/png": "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3buXEydO1FqPw5nEYbPZeOihhwgPD+ehhx6itLSUuXPnkpeXR1RUFA888IB9nsjKlStZs2YNhmEwefJkkpOTAcjMzGThwoVYrVYGDx7M5MmT610PXQghvM5LicOdHEocH330kUvW4/joo4+Ij4+nrKwMgFWrVjFgwACuvvpqVq1axapVq7j55pvJyspi48aNzJkzh4KCAh5//HHmz5+PYRi8+uqrTJ06lR49evD000+zY8cOBg8e3KS4hBDCbYoKoF2gy/sZvMmhkiMdO3Zscvn0/Px8tm3bxgUXXGDflpGRYb9jSU1NJSMjw7595MiR+Pn5ER0dTWxsLAcOHKCgoICysjJ69uyJUooxY8bY9xFCiGapuBBCWtdoVIfuOC6//HIWLFjA1VdfXauPIyYmxqETvf7669x88832uw2AoqIiwsLMDqOwsDCKi4sBsFgs9OjRw/688PBwLBYLPj4+RERE2LdHRERgsVjqPN/q1atZvXo1AM8880yjE5+vr2+LXHNE4vYsiduzWlLclrITEBFN+Ol4W1Ls9XEocSxZsgSArVu31nrMkfU4tm7dSmhoKN26dWP37t1nfX59xRSdKbKYlpZGWlqa/ffjx487vO+ZIiMjG72vN0ncniVxe1ZLirsqPw86JdjjbUmxx8XF1bndocTR1MWa9u3bx9dff8327duxWq2UlZWxYMECQkNDKSgoICwsjIKCAkJCQgDzTiI/P9++v8ViITw8vNb2/Px8wsPDmxSbEEK4VXEhqld/b0fhUh5ZYOOmm27ipZdeYuHChfz+97+nf//+TJs2jZSUFNatWwfAunXrGDJkCAApKSls3LiRiooKcnNzyc7OJikpibCwMAIDA9m/fz9aa9avX09KSoonXoIQQjhNV1bACS+UG3Gzeu84nnzySWbMmAHArFmz6h3y+thjjzX65FdffTVz585lzZo1REZGMn36dAASExMZMWIE06dPxzAMpkyZYl9E6o477mDRokVYrVaSk5NlRJUQovkq9k65EXerN3GcOT9j/PjxLjthv3796NfPrBLZoUMHZs2aVefzJk6cyMSJE2tt7969O+np6S6LRwgh3KakEPBCuRE3qzdxjBo1yv7z2LFjPRGLEEK0Lq1w8h94qI9DCCHaIl10uk6VJA4hhBAOsd9xtK7OcUkcQgjhLsWFEBCIatfO25G4VL2Jo3pE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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"haiti.index = haiti.index.map(int) # let's change the index values of Haiti to type integer for plotting\n",
"haiti.plot(kind='line')\n",
"\n",
"plt.title('Immigration from Haiti')\n",
"plt.ylabel('Number of immigrants')\n",
"plt.xlabel('Years')\n",
"\n",
"plt.show() # need this line to show the updates made to the figure"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"We can clearly notice how number of immigrants from Haiti spiked up from 2010 as Canada stepped up its efforts to accept refugees from Haiti. Let's annotate this spike in the plot by using the `plt.text()` method."
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {
"button": false,
"collapsed": false,
"deletable": true,
"jupyter": {
"outputs_hidden": false
},
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAY4AAAEaCAYAAAAG87ApAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy86wFpkAAAACXBIWXMAAAsTAAALEwEAmpwYAABVKklEQVR4nO3deVxVdfrA8c/3ACKiIHBZBU3FfcPCfUGTspq2cZz2RbKy1ZnsV9lo2p7V4DZhTWk21UxTOmrLVKajuZvkVi7lWoqCIJddkOV+f39cuYECXuAuLM/79fIlnHvPOc89Xu9zz3d5vkprrRFCCCHsZLg7ACGEEI2LJA4hhBC1IolDCCFErUjiEEIIUSuSOIQQQtSKJA4hhBC1IolDNFqjRo3i3nvvdWsM3377LUopUlJSXHK+v/zlL4SGhqKU4r333nPJOV3J3uv57LPPEh0d7aKoxPmUzOMQdTVhwgRSUlJYvXq1W85vNpvx9PTEz8/PJefz9PRk4cKFTJgwwbatuLgYs9lMSEgIhuHc72HfffcdgwcPZsWKFQwaNAh/f398fHycek57jBo1iujoaBYuXFhp+y+//ELHjh3ZsGEDw4cPt+tY51/PjRs3MmLECI4ePcoll1xie15+fj5FRUWYTCZHvhRhJ093ByBEXQUGBtb7GCUlJXh6eqKUqtP+LVq0ICwsrN5x2OPgwYMYhsENN9xQ7XPq+3rczd7r2bp1a1q3bu2CiERVpKlKOMyECROIj4/nb3/7G5GRkbRu3Zp7772XkpIS3nrrLTp06EBAQAD3338/xcXFtv1GjRrFxIkTmT59OiEhIbRt25Zp06ZhsVh4/vnnCQ0NJTg4mGnTplU63/lNVYWFhdx///34+/sTEBDAQw89xNNPP12pSaNijJdccgne3t4UFBSwatUqRo0aRWBgIP7+/sTFxbFt2zbbfpdccgllZWUkJCSglLJ9MFfVtLJ161ZGjhyJj48PAQEB3HbbbaSnp9seL29m+fTTT+nevTu+vr6MHj2aw4cP13ht77zzTiwWS6XzV/d6fv75Z373u9/ZPmCvu+46Dh06ZDvee++9h6enJ2vXrqVPnz74+PgQFxfHyZMnWb9+Pf3798fX15f4+HhOnDhh93vgYqZNm0aPHj1o1aoVUVFRPPDAA+Tk5Nger3g9f/nlF0aMGAFAx44dUUoxatSoStdQuIckDuFQycnJfP/996xatYp//etffPjhh9xwww1s3ryZr776ig8++IAPPviARYsWVdpv6dKllJSUsHHjRmbPns3LL7/MtddeS35+Phs2bOCvf/0rL7/8Ml999VW1537qqaf49NNP+eCDD9i6dSv+/v4sWLDggudt27aNNWvWsGLFCnbv3k3Lli3Jz8/n4YcfZuvWrWzevJkuXbpw1VVXkZmZaXtdHh4ezJ07l9TUVFJTU6uMIS0tjSuvvJLIyEi2bdvG559/zp49e/jDH/5Q6Xmpqam8+eab/POf/2Tz5s1kZ2dzzz33VPva5s2bx9y5c/Hw8Ljg/Oe/Hq01V155JUVFRaxbt45169aRn5/PVVddVSlhWywWnnvuORYuXMimTZs4efIkN998MzNmzODNN99k48aNpKSkMGXKlGrjqi0fHx/efvtt9u3bx3vvvce3337L5MmTq3xuVFQUn376qe01pqamsmzZMofFIupBC1FHd999tx4zZkyl34ODg/XZs2dt26655hodFBSki4qKbNuuv/56/Yc//MH2e1xcnO7Xr1+lY/fs2VP37t270ra+ffvqxx9/vNJ+EydO1FprnZ+fr1u0aKEXLlxYaZ9Bgwbpzp07V4rR399f5+Xl1fjaysrKdNu2bfWHH35o2+bh4aEXL15c6Xlr167VgD5+/LjWWuvp06frdu3aVboGu3bt0oBet26d1lrrmTNnag8PD52enm57zkcffaSVUrqwsLDamBYvXqw9PDwqbavq9SxcuFD7+PjojIwM27a0tDTdsmVL/Y9//MN2LEDv3LnT9pzXXntNA/r777+3bZs9e7YOCgqqNiatrf8Onp6e2tfXt9KfVq1aaUBv2LCh2n2XLVumW7RoocvKyrTWF17PDRs2aEAfPXq00n4zZ86s9O8qXEvuOIRD9ejRgxYtWth+DwsLo1u3bnh7e1faVrHpBqBfv36Vfg8LC6Nv374XbDt/v3KHDh2iuLiYwYMHV9o+ZMiQKmM8v3386NGj3HnnnURHR+Pn54efnx85OTn8+uuvNbzaC+3du5fBgwdXugb9+vXD39+fvXv32rZFREQQHBxs+71du3Zorat9fTU5//Xs3buXnj17Vuo4Dg0NpVu3bpViUErRp08f2+/lfQsVr3tYWBiZmZmUlZXVGMPvf/97du3aVenPl19+ecHzli1bxsiRI4mI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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"haiti.plot(kind='line')\n",
"\n",
"plt.title('Immigration from Haiti')\n",
"plt.ylabel('Number of Immigrants')\n",
"plt.xlabel('Years')\n",
"\n",
"# annotate the 2010 Earthquake. \n",
"# syntax: plt.text(x, y, label)\n",
"plt.text(2000, 6000, '2010 Earthquake') # see note below\n",
"\n",
"plt.show() "
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"With just a few lines of code, you were able to quickly identify and visualize the spike in immigration!\n",
"\n",
"Quick note on x and y values in `plt.text(x, y, label)`:\n",
" \n",
" Since the x-axis (years) is type 'integer', we specified x as a year. The y axis (number of immigrants) is type 'integer', so we can just specify the value y = 6000.\n",
" \n",
"```python\n",
" plt.text(2000, 6000, '2010 Earthquake') # years stored as type int\n",
"```\n",
" If the years were stored as type 'string', we would need to specify x as the index position of the year. Eg 20th index is year 2000 since it is the 20th year with a base year of 1980.\n",
"```python\n",
" plt.text(20, 6000, '2010 Earthquake') # years stored as type int\n",
"```\n",
" We will cover advanced annotation methods in later modules."
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"We can easily add more countries to line plot to make meaningful comparisons immigration from different countries. \n",
"\n",
"**Question:** Let's compare the number of immigrants from India and China from 1980 to 2013.\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"Step 1: Get the data set for China and India, and display dataframe."
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
},
"scrolled": true
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>1980</th>\n",
" <th>1981</th>\n",
" <th>1982</th>\n",
" <th>1983</th>\n",
" <th>1984</th>\n",
" <th>1985</th>\n",
" <th>1986</th>\n",
" <th>1987</th>\n",
" <th>1988</th>\n",
" <th>1989</th>\n",
" <th>...</th>\n",
" <th>2004</th>\n",
" <th>2005</th>\n",
" <th>2006</th>\n",
" <th>2007</th>\n",
" <th>2008</th>\n",
" <th>2009</th>\n",
" <th>2010</th>\n",
" <th>2011</th>\n",
" <th>2012</th>\n",
" <th>2013</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>India</th>\n",
" <td>8880</td>\n",
" <td>8670</td>\n",
" <td>8147</td>\n",
" <td>7338</td>\n",
" <td>5704</td>\n",
" <td>4211</td>\n",
" <td>7150</td>\n",
" <td>10189</td>\n",
" <td>11522</td>\n",
" <td>10343</td>\n",
" <td>...</td>\n",
" <td>28235</td>\n",
" <td>36210</td>\n",
" <td>33848</td>\n",
" <td>28742</td>\n",
" <td>28261</td>\n",
" <td>29456</td>\n",
" <td>34235</td>\n",
" <td>27509</td>\n",
" <td>30933</td>\n",
" <td>33087</td>\n",
" </tr>\n",
" <tr>\n",
" <th>China</th>\n",
" <td>5123</td>\n",
" <td>6682</td>\n",
" <td>3308</td>\n",
" <td>1863</td>\n",
" <td>1527</td>\n",
" <td>1816</td>\n",
" <td>1960</td>\n",
" <td>2643</td>\n",
" <td>2758</td>\n",
" <td>4323</td>\n",
" <td>...</td>\n",
" <td>36619</td>\n",
" <td>42584</td>\n",
" <td>33518</td>\n",
" <td>27642</td>\n",
" <td>30037</td>\n",
" <td>29622</td>\n",
" <td>30391</td>\n",
" <td>28502</td>\n",
" <td>33024</td>\n",
" <td>34129</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>2 rows × 34 columns</p>\n",
"</div>"
],
"text/plain": [
" 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 ... \\\n",
"India 8880 8670 8147 7338 5704 4211 7150 10189 11522 10343 ... \n",
"China 5123 6682 3308 1863 1527 1816 1960 2643 2758 4323 ... \n",
"\n",
" 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 \n",
"India 28235 36210 33848 28742 28261 29456 34235 27509 30933 33087 \n",
"China 36619 42584 33518 27642 30037 29622 30391 28502 33024 34129 \n",
"\n",
"[2 rows x 34 columns]"
]
},
"execution_count": 41,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"### type your answer here\n",
"##China = df_can.loc['China', years] # passing in years 1980 - 2013 to exclude the 'total' column\n",
"##China.head()\n",
"df_CI= df_can.loc[['India', 'China'], years] # passing in years 1980 - 2013 to exclude the 'total' column\n",
"df_CI.head()\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"Double-click __here__ for the solution.\n",
"<!-- The correct answer is:\n",
"df_CI = df_can.loc[['India', 'China'], years]\n",
"df_CI.head()\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"Step 2: Plot graph. We will explicitly specify line plot by passing in `kind` parameter to `plot()`."
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {
"button": false,
"collapsed": false,
"deletable": true,
"jupyter": {
"outputs_hidden": false
},
"new_sheet": false,
"run_control": {
"read_only": false
},
"scrolled": true
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/pandas/plotting/_matplotlib/core.py:1192: UserWarning: FixedFormatter should only be used together with FixedLocator\n",
" ax.set_xticklabels(xticklabels)\n"
]
},
{
"data": {
"text/plain": [
"<AxesSubplot:>"
]
},
"execution_count": 43,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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N9nw10cccQQvvfQSb7zxBjvttBM///nPcRynrmURBJAWgiDMOJMNf93a2sqNN97IBRdcwEknncSSJUswTXOWSyHMRaSFIDQEU6nJTxeTDX8NcPzxx3P88ccD8P3vf18EQZgWpIUgCDPMZMNfV9/T39/P9773Pc4999xZeHNhriMtBEGYRuoR/hrgmmuu4c9//jMAV155JbvtttvMF0aY80j4a2HOIuGvBWFyiMtIEARBAEQQBEEQhBARBEEQBAF4k/chbNiwYUr3dXR0lBcsbxQascye5zXc8MxGLHMj/ra3p8w77bTTmNekhSAIgiAAIgiCIAhCiAiCIEwT69ev57TTTmP16tWsWbOG7373uwD09fVx5plncthhh3HmmWfS399fvucb3/gGhx12GEcccQSPPfZYOf2Pf/wjRx99NIcddhif/exneRN7eoUdGBEEQZgmLMvi85//PI8//jg/+clP+Ld/+zdefPFFbr31Vg4//HCeeuopDj/88PIEtBdffJEHHniARx55hB/84Ad85jOfwfM8AP7xH/+Rr371q/zqV7/i1Vdf5dFHH53NoglzFBEEQZgmurq62HfffQFIJpMsX76cTZs28eCDD/L+978fgPe///384he/AODBBx/k5JNPJhqNsvPOO7N06VKee+45uru7SafTrFy5EqUUp512WvkeQagnErpCaAia123AzuXr+kwnHmNw8dgjNqpZu3Ytf/rTn1ixYgU9PT10dXUBgWhs3boVgE2bNnHAAQeU71m4cCGbNm3Ctm0WLlw4Il0Q6o20EARhmslms5x//vlcd911pFKpMfON1i+glBozXRDqjbQQhIZgojX5euM4Dueffz6nnnoqJ5xwAhCMIe/u7qarq4vu7m7mzZsHBDX/6rk1GzdupKuri4ULF7Jx48YR6UIDoH0ML4vhDmJ4gxhuGsMbhNjBQLLuHyeCIAjThNaaK6+8kt13350LL7ywnH7cccdx9913c8kll3D33XeX1zk47rjjuPjii7ngggvo7u7m1VdfZcWKFZimSTKZ5Pe//z0HHHAA99xzD+edd95sFUuoB9pHeUOYVUbecINjs+rY8DIo/BG3+y0LwHxr3V9LBEEQpolnnnmGH/3oR+y1114ce+yxAFx11VVcfPHFXHTRRdxxxx0sWrSIb3/72wDsueeenHTSSaxZswbTNPnSl75U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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"### type your answer here\n",
"df_CI.plot(kind='line')\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"Double-click __here__ for the solution.\n",
"<!-- The correct answer is:\n",
"df_CI.plot(kind='line')\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"That doesn't look right...\n",
"\n",
"Recall that *pandas* plots the indices on the x-axis and the columns as individual lines on the y-axis. Since `df_CI` is a dataframe with the `country` as the index and `years` as the columns, we must first transpose the dataframe using `transpose()` method to swap the row and columns."
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {
"button": false,
"collapsed": false,
"deletable": true,
"jupyter": {
"outputs_hidden": false
},
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>India</th>\n",
" <th>China</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1980</th>\n",
" <td>8880</td>\n",
" <td>5123</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1981</th>\n",
" <td>8670</td>\n",
" <td>6682</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1982</th>\n",
" <td>8147</td>\n",
" <td>3308</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1983</th>\n",
" <td>7338</td>\n",
" <td>1863</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1984</th>\n",
" <td>5704</td>\n",
" <td>1527</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" India China\n",
"1980 8880 5123\n",
"1981 8670 6682\n",
"1982 8147 3308\n",
"1983 7338 1863\n",
"1984 5704 1527"
]
},
"execution_count": 44,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_CI = df_CI.transpose()\n",
"df_CI.head()"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"*pandas* will auomatically graph the two countries on the same graph. Go ahead and plot the new transposed dataframe. Make sure to add a title to the plot and label the axes."
]
},
{
"cell_type": "code",
"execution_count": 45,
"metadata": {
"button": false,
"collapsed": false,
"deletable": true,
"jupyter": {
"outputs_hidden": false
},
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/pandas/plotting/_matplotlib/core.py:1192: UserWarning: FixedFormatter should only be used together with FixedLocator\n",
" ax.set_xticklabels(xticklabels)\n"
]
},
{
"data": {
"text/plain": [
"<AxesSubplot:>"
]
},
"execution_count": 45,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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aVPzczabDafTid1ux2g0EhwcjNVqpaGhgbS0NIQQTJkyxedVV70Rd3fwJO7i4mJGjhwJQEREBCEhIRQVFfX4691a3N3BZDIxePBgAIKCgkhISMBisZCXl8fUqVMBmDp1avP1y8vLY9KkSfj5+REbG0tcXByFhYVdfs29FXdX8zTuwMBAzjvvvOa7l9O64z3eGX0mIbQkKSmJLVu2ALBx48bmekkTJkwgMDCQu+66i5/97GdceeWVhIaGtlh11WKx9Pi4T1u2bBkPPvgg7733XosFA7sr7oEDB7JlyxacTielpaUUFRVRXl7e4693a3Gf1l3Xu7S0lIMHD5KSkkJVVVVz3S+TyUR1dTVwdgXhqKgoLBZLt17zzsR9Wndcc3fibk1PeY+7q8/0IbTk3nvv5fXXX+e9994jKysLo9H1cgsLC9E0jT//+c/U1dXxxBNPkJ6e3i0foi3xNO5+/foxd+5coqKiaGhoYOHChaxbt675m0x3x33RRRdRXFzMI488QkxMDEOHDsVgMPT4691a3EC3XW+bzcbChQu57bbb2rw7bO3adtc172zc0D3X3N24W9NT3uPu6tMJISEhgccffxxwNQts27YNgP/+979kZGRgNBqJiIhg6NChHDhwgGHDhp1VdTUqKqrHx92vX7/mOIOCgrjwwgspLCzs8oTQWtwGg4HbbrutebvHH3+c/v37ExIS0qOvd2txA91yvR0OBwsXLmTy5MmMHz8ecDVlWa1WTCYTVquV8PBw4OwKwhaLhaioqBYrC/v6mnsjbuj6a+5J3K3pjuvdGX26yaiqqgpwLdH5wQcfcMkllwCu2uW7du1CSonNZqOgoICEhARMJhNBQUHk5+cjpWTdunVkZWX1+LidTmfzravD4WDr1q0+LQ7oadyNjY3YbDYAdu7cicFgIDExscdf79bi7o7rLaXk5ZdfJiEhgSuuuKL58aysLHJycgDIyclh7NixzY/n5ubS1NREaWkpJ06cICUlpcuvubfi7upr7mncrekp73F39ZmZyi+++CJ79uyhpqaGiIgIrr/+emw2GytXrgRg3Lhx3HjjjQghsNlsLFu2jOLiYqSUXHTRRfzgBz8A4MCBAyxbtgy73U5GRga33367T4eIeSNum83Gk08+idPpRNd10tPTufXWW9E03+V7T+IuLS3l6aefRtM0oqKiuOeee4iJiQF69vVuLe7uuN779u3jiSeeIDk5ufn63HDDDaSmprJo0SLKy8uJjo5mwYIFzf1KH3zwAV9++WXzkNnMzEyga6+5t+Lu6mvekbh//vOfU19fj8PhICQkhMcff5zExMQuf493Rp9JCIqiKErn9OkmI0VRFMV9KiEoiqIogEoIiqIoyikqISiKoiiASgiKoijKKSohKIqiKIBKCIqiKMop/w/T5gXFujmFDAAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"### type your answer here\n",
"df_CI.plot(kind='line')\n",
"\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"Double-click __here__ for the solution.\n",
"<!-- The correct answer is:\n",
"df_CI.index = df_CI.index.map(int) # let's change the index values of df_CI to type integer for plotting\n",
"df_CI.plot(kind='line')\n",
"-->\n",
"\n",
"<!--\n",
"plt.title('Immigrants from China and India')\n",
"plt.ylabel('Number of Immigrants')\n",
"plt.xlabel('Years')\n",
"-->\n",
"\n",
"<!--\n",
"plt.show()\n",
"--> "
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"From the above plot, we can observe that the China and India have very similar immigration trends through the years. "
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"*Note*: How come we didn't need to transpose Haiti's dataframe before plotting (like we did for df_CI)?\n",
"\n",
"That's because `haiti` is a series as opposed to a dataframe, and has the years as its indices as shown below. \n",
"```python\n",
"print(type(haiti))\n",
"print(haiti.head(5))\n",
"```\n",
">class 'pandas.core.series.Series' <br>\n",
">1980 1666 <br>\n",
">1981 3692 <br>\n",
">1982 3498 <br>\n",
">1983 2860 <br>\n",
">1984 1418 <br>\n",
">Name: Haiti, dtype: int64 <br>"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"Line plot is a handy tool to display several dependent variables against one independent variable. However, it is recommended that no more than 5-10 lines on a single graph; any more than that and it becomes difficult to interpret."
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"**Question:** Compare the trend of top 5 countries that contributed the most to immigration to Canada."
]
},
{
"cell_type": "code",
"execution_count": 57,
"metadata": {
"button": false,
"collapsed": false,
"deletable": true,
"jupyter": {
"outputs_hidden": false
},
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" Afghanistan Albania Algeria American Samoa Andorra\n",
"1980 16 1 80 0 0\n",
"1981 39 0 67 1 0\n",
"1982 39 0 71 0 0\n",
"1983 47 0 69 0 0\n",
"1984 71 0 63 0 0\n",
"1985 340 0 44 0 0\n",
"1986 496 1 69 0 2\n",
"1987 741 2 132 1 0\n",
"1988 828 2 242 0 0\n",
"1989 1076 3 434 1 0\n",
"1990 1028 3 491 2 3\n",
"1991 1378 21 872 0 0\n",
"1992 1170 56 795 0 1\n",
"1993 713 96 717 0 0\n",
"1994 858 71 595 0 0\n",
"1995 1537 63 1106 0 0\n",
"1996 2212 113 2054 0 0\n",
"1997 2555 307 1842 0 0\n",
"1998 1999 574 2292 0 2\n",
"1999 2395 1264 2389 0 0\n",
"2000 3326 1816 2867 0 0\n",
"2001 4067 1602 3418 0 1\n",
"2002 3697 1021 3406 0 0\n",
"2003 3479 853 3072 0 2\n",
"2004 2978 1450 3616 0 0\n",
"2005 3436 1223 3626 0 0\n",
"2006 3009 856 4807 1 1\n",
"2007 2652 702 3623 0 1\n",
"2008 2111 560 4005 0 0\n",
"2009 1746 716 5393 0 0\n",
"2010 1758 561 4752 0 0\n",
"2011 2203 539 4325 0 0\n",
"2012 2635 620 3774 0 1\n",
"2013 2004 603 4331 0 1\n"
]
},
{
"data": {
"text/plain": [
"<function matplotlib.pyplot.show(close=None, block=None)>"
]
},
"execution_count": 57,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"### type your answer here\n",
"\n",
"##df_top5 = df_can.head(5)\n",
"##df_top5 = df_can.head(5)\n",
"##df_top5= df_top5[years].transpose()\n",
"print(df_top5)\n",
"\n",
"plt.title('Immigration Trend of Top 5 Countries')\n",
"plt.ylabel('Number of Immigrants')\n",
"plt.xlabel('Years')\n",
"plt.show"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"Double-click __here__ for the solution.\n",
"<!-- The correct answer is:\n",
"\\\\ # Step 1: Get the dataset. Recall that we created a Total column that calculates the cumulative immigration by country. \\\\ We will sort on this column to get our top 5 countries using pandas sort_values() method.\n",
"\\\\ inplace = True paramemter saves the changes to the original df_can dataframe\n",
"df_can.sort_values(by='Total', ascending=False, axis=0, inplace=True)\n",
"-->\n",
"\n",
"<!--\n",
"# get the top 5 entries\n",
"df_top5 = df_can.head(5)\n",
"-->\n",
"\n",
"<!--\n",
"# transpose the dataframe\n",
"df_top5 = df_top5[years].transpose() \n",
"-->\n",
"\n",
"<!--\n",
"print(df_top5)\n",
"-->\n",
"\n",
"<!--\n",
"\\\\ # Step 2: Plot the dataframe. To make the plot more readeable, we will change the size using the `figsize` parameter.\n",
"df_top5.index = df_top5.index.map(int) # let's change the index values of df_top5 to type integer for plotting\n",
"df_top5.plot(kind='line', figsize=(14, 8)) # pass a tuple (x, y) size\n",
"-->\n",
"\n",
"<!--\n",
"plt.title('Immigration Trend of Top 5 Countries')\n",
"plt.ylabel('Number of Immigrants')\n",
"plt.xlabel('Years')\n",
"-->\n",
"\n",
"<!--\n",
"plt.show()\n",
"-->"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"### Other Plots\n",
"\n",
"Congratulations! you have learned how to wrangle data with python and create a line plot with Matplotlib. There are many other plotting styles available other than the default Line plot, all of which can be accessed by passing `kind` keyword to `plot()`. The full list of available plots are as follows:\n",
"\n",
"* `bar` for vertical bar plots\n",
"* `barh` for horizontal bar plots\n",
"* `hist` for histogram\n",
"* `box` for boxplot\n",
"* `kde` or `density` for density plots\n",
"* `area` for area plots\n",
"* `pie` for pie plots\n",
"* `scatter` for scatter plots\n",
"* `hexbin` for hexbin plot"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"### Thank you for completing this lab!\n",
"\n",
"This notebook was originally created by [Jay Rajasekharan](https://www.linkedin.com/in/jayrajasekharan) with contributions from [Ehsan M. Kermani](https://www.linkedin.com/in/ehsanmkermani), and [Slobodan Markovic](https://www.linkedin.com/in/slobodan-markovic).\n",
"\n",
"This notebook was recently revised by [Alex Aklson](https://www.linkedin.com/in/aklson/). I hope you found this lab session interesting. Feel free to contact me if you have any questions!"
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"This notebook is part of a course on **Coursera** called *Data Visualization with Python*. If you accessed this notebook outside the course, you can take this course online by clicking [here](http://cocl.us/DV0101EN_Coursera_Week1_LAB1)."
]
},
{
"cell_type": "markdown",
"metadata": {
"button": false,
"deletable": true,
"new_sheet": false,
"run_control": {
"read_only": false
}
},
"source": [
"<hr>\n",
"\n",
"Copyright &copy; 2019 [Cognitive Class](https://cognitiveclass.ai/?utm_source=bducopyrightlink&utm_medium=dswb&utm_campaign=bdu). This notebook and its source code are released under the terms of the [MIT License](https://bigdatauniversity.com/mit-license/)."
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python",
"language": "python",
"name": "conda-env-python-py"
},
"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.6.11"
},
"widgets": {
"state": {},
"version": "1.1.2"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment