{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##Medals for participating countries at the International Olympiad in Informatics, 1989-2015##"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Read data from IOI [homepage](http://stats.ioinformatics.org/countries/):"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"
\n",
" \n",
" \n",
" | \n",
" 0 | \n",
" 1 | \n",
" 2 | \n",
" 3 | \n",
" 4 | \n",
" 5 | \n",
" 6 | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" NaN | \n",
" Country▲ | \n",
" IOI Host | \n",
" Medals | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" 1 | \n",
" G | \n",
" S | \n",
" B | \n",
" Total | \n",
" NaN | \n",
" NaN | \n",
" NaN | \n",
"
\n",
" \n",
" 2 | \n",
" NaN | \n",
" Albania | \n",
" NaN | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 3 | \n",
" ? | \n",
" Argentina | \n",
" 1993 | \n",
" 2 | \n",
" 8 | \n",
" 22 | \n",
" 32 | \n",
"
\n",
" \n",
" 4 | \n",
" ? | \n",
" Armenia | \n",
" NaN | \n",
" 1 | \n",
" 4 | \n",
" 20 | \n",
" 25 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" 0 1 2 3 4 5 6\n",
"0 NaN Country▲ IOI Host Medals NaN NaN NaN\n",
"1 G S B Total NaN NaN NaN\n",
"2 NaN Albania NaN 0 0 0 0\n",
"3 ? Argentina 1993 2 8 22 32\n",
"4 ? Armenia NaN 1 4 20 25"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"url=r'http://stats.ioinformatics.org/countries/'\n",
"dfs = pd.read_html(url)#returns a list of tables\n",
"df=dfs[0]\n",
"df.head()#inspect header"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Re-read skipping rows 0,1:"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"
\n",
" \n",
" \n",
" | \n",
" 0 | \n",
" 1 | \n",
" 2 | \n",
" 3 | \n",
" 4 | \n",
" 5 | \n",
" 6 | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" NaN | \n",
" Albania | \n",
" NaN | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 1 | \n",
" ? | \n",
" Argentina | \n",
" 1993 | \n",
" 2 | \n",
" 8 | \n",
" 22 | \n",
" 32 | \n",
"
\n",
" \n",
" 2 | \n",
" ? | \n",
" Armenia | \n",
" NaN | \n",
" 1 | \n",
" 4 | \n",
" 20 | \n",
" 25 | \n",
"
\n",
" \n",
" 3 | \n",
" NaN | \n",
" Australia | \n",
" 2013 | \n",
" 6 | \n",
" 14 | \n",
" 30 | \n",
" 50 | \n",
"
\n",
" \n",
" 4 | \n",
" NaN | \n",
" Austria | \n",
" NaN | \n",
" 3 | \n",
" 5 | \n",
" 22 | \n",
" 30 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" 0 1 2 3 4 5 6\n",
"0 NaN Albania NaN 0 0 0 0\n",
"1 ? Argentina 1993 2 8 22 32\n",
"2 ? Armenia NaN 1 4 20 25\n",
"3 NaN Australia 2013 6 14 30 50\n",
"4 NaN Austria NaN 3 5 22 30"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"url=r'http://stats.ioinformatics.org/countries/'\n",
"dfs = pd.read_html(url, skiprows=[0,1])\n",
"df=dfs[0]\n",
"df.head()"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Int64Index([0, 1, 2, 3, 4, 5, 6], dtype='int64')\n"
]
}
],
"source": [
"print df.columns"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Delete columns 0, 2:"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"df.drop([0,2], axis=1, inplace=True)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" 1 3 4 5 6\n",
"0 Albania 0 0 0 0\n",
"1 Argentina 2 8 22 32\n",
"2 Armenia 1 4 20 25\n",
"3 Australia 6 14 30 50\n",
"4 Austria 3 5 22 30\n"
]
}
],
"source": [
"print df.head()"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Country | \n",
" Gold | \n",
" Silver | \n",
" Bronze | \n",
" Total | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" Albania | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
" 0 | \n",
"
\n",
" \n",
" 1 | \n",
" Argentina | \n",
" 2 | \n",
" 8 | \n",
" 22 | \n",
" 32 | \n",
"
\n",
" \n",
" 2 | \n",
" Armenia | \n",
" 1 | \n",
" 4 | \n",
" 20 | \n",
" 25 | \n",
"
\n",
" \n",
" 3 | \n",
" Australia | \n",
" 6 | \n",
" 14 | \n",
" 30 | \n",
" 50 | \n",
"
\n",
" \n",
" 4 | \n",
" Austria | \n",
" 3 | \n",
" 5 | \n",
" 22 | \n",
" 30 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Country Gold Silver Bronze Total\n",
"0 Albania 0 0 0 0\n",
"1 Argentina 2 8 22 32\n",
"2 Armenia 1 4 20 25\n",
"3 Australia 6 14 30 50\n",
"4 Austria 3 5 22 30"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dfn=df.rename(columns = {1: 'Country', 3:'Gold', 4: 'Silver', 5: 'Bronze', 6:'Total'})\n",
"dfn.head()"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Country | \n",
" Gold | \n",
" Silver | \n",
" Bronze | \n",
" Total | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" Argentina | \n",
" 2 | \n",
" 8 | \n",
" 22 | \n",
" 32 | \n",
"
\n",
" \n",
" 1 | \n",
" Armenia | \n",
" 1 | \n",
" 4 | \n",
" 20 | \n",
" 25 | \n",
"
\n",
" \n",
" 2 | \n",
" Australia | \n",
" 6 | \n",
" 14 | \n",
" 30 | \n",
" 50 | \n",
"
\n",
" \n",
" 3 | \n",
" Austria | \n",
" 3 | \n",
" 5 | \n",
" 22 | \n",
" 30 | \n",
"
\n",
" \n",
" 4 | \n",
" Azerbaijan | \n",
" 0 | \n",
" 1 | \n",
" 4 | \n",
" 5 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Country Gold Silver Bronze Total\n",
"0 Argentina 2 8 22 32\n",
"1 Armenia 1 4 20 25\n",
"2 Australia 6 14 30 50\n",
"3 Austria 3 5 22 30\n",
"4 Azerbaijan 0 1 4 5"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dfn = dfn[(dfn[['Total']] != 0).all(axis=1)]#delete countries with no medal\n",
"L= len(dfn)\n",
"dfn= dfn.set_index(np.arange(L))\n",
"dfn.head()\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"List the complete table:"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"\n",
" \n",
" \n",
" | \n",
" Country | \n",
" Gold | \n",
" Silver | \n",
" Bronze | \n",
" Total | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" Argentina | \n",
" 2 | \n",
" 8 | \n",
" 22 | \n",
" 32 | \n",
"
\n",
" \n",
" 1 | \n",
" Armenia | \n",
" 1 | \n",
" 4 | \n",
" 20 | \n",
" 25 | \n",
"
\n",
" \n",
" 2 | \n",
" Australia | \n",
" 6 | \n",
" 14 | \n",
" 30 | \n",
" 50 | \n",
"
\n",
" \n",
" 3 | \n",
" Austria | \n",
" 3 | \n",
" 5 | \n",
" 22 | \n",
" 30 | \n",
"
\n",
" \n",
" 4 | \n",
" Azerbaijan | \n",
" 0 | \n",
" 1 | \n",
" 4 | \n",
" 5 | \n",
"
\n",
" \n",
" 5 | \n",
" Bangladesh | \n",
" 0 | \n",
" 1 | \n",
" 3 | \n",
" 4 | \n",
"
\n",
" \n",
" 6 | \n",
" Belarus | \n",
" 14 | \n",
" 32 | \n",
" 33 | \n",
" 79 | \n",
"
\n",
" \n",
" 7 | \n",
" Belgium | \n",
" 0 | \n",
" 2 | \n",
" 6 | \n",
" 8 | \n",
"
\n",
" \n",
" 8 | \n",
" Bosnia and Herzegovina | \n",
" 0 | \n",
" 1 | \n",
" 5 | \n",
" 6 | \n",
"
\n",
" \n",
" 9 | \n",
" Brazil | \n",
" 2 | \n",
" 9 | \n",
" 27 | \n",
" 38 | \n",
"
\n",
" \n",
" 10 | \n",
" Bulgaria | \n",
" 23 | \n",
" 39 | \n",
" 31 | \n",
" 93 | \n",
"
\n",
" \n",
" 11 | \n",
" Canada | \n",
" 10 | \n",
" 22 | \n",
" 33 | \n",
" 65 | \n",
"
\n",
" \n",
" 12 | \n",
" Chile | \n",
" 0 | \n",
" 0 | \n",
" 1 | \n",
" 1 | \n",
"
\n",
" \n",
" 13 | \n",
" China | \n",
" 72 | \n",
" 23 | \n",
" 12 | \n",
" 107 | \n",
"
\n",
" \n",
" 14 | \n",
" Colombia | \n",
" 0 | \n",
" 2 | \n",
" 9 | \n",
" 11 | \n",
"
\n",
" \n",
" 15 | \n",
" Croatia | \n",
" 11 | \n",
" 33 | \n",
" 32 | \n",
" 76 | \n",
"
\n",
" \n",
" 16 | \n",
" Cuba | \n",
" 0 | \n",
" 6 | \n",
" 26 | \n",
" 32 | \n",
"
\n",
" \n",
" 17 | \n",
" Cyprus | \n",
" 0 | \n",
" 0 | \n",
" 2 | \n",
" 2 | \n",
"
\n",
" \n",
" 18 | \n",
" Czech Republic | \n",
" 13 | \n",
" 22 | \n",
" 36 | \n",
" 71 | \n",
"
\n",
" \n",
" 19 | \n",
" Czechoslovakia | \n",
" 3 | \n",
" 4 | \n",
" 2 | \n",
" 9 | \n",
"
\n",
" \n",
" 20 | \n",
" Denmark | \n",
" 3 | \n",
" 6 | \n",
" 19 | \n",
" 28 | \n",
"
\n",
" \n",
" 21 | \n",
" Egypt | \n",
" 0 | \n",
" 4 | \n",
" 12 | \n",
" 16 | \n",
"
\n",
" \n",
" 22 | \n",
" Estonia | \n",
" 5 | \n",
" 17 | \n",
" 30 | \n",
" 52 | \n",
"
\n",
" \n",
" 23 | \n",
" Finland | \n",
" 5 | \n",
" 21 | \n",
" 33 | \n",
" 59 | \n",
"
\n",
" \n",
" 24 | \n",
" France | \n",
" 2 | \n",
" 7 | \n",
" 27 | \n",
" 36 | \n",
"
\n",
" \n",
" 25 | \n",
" Georgia | \n",
" 2 | \n",
" 7 | \n",
" 31 | \n",
" 40 | \n",
"
\n",
" \n",
" 26 | \n",
" German Democratic Republic | \n",
" 0 | \n",
" 3 | \n",
" 0 | \n",
" 3 | \n",
"
\n",
" \n",
" 27 | \n",
" Germany | \n",
" 14 | \n",
" 26 | \n",
" 36 | \n",
" 76 | \n",
"
\n",
" \n",
" 28 | \n",
" Greece | \n",
" 0 | \n",
" 4 | \n",
" 21 | \n",
" 25 | \n",
"
\n",
" \n",
" 29 | \n",
" Hong Kong | \n",
" 4 | \n",
" 21 | \n",
" 38 | \n",
" 63 | \n",
"
\n",
" \n",
" 30 | \n",
" Hungary | \n",
" 11 | \n",
" 27 | \n",
" 41 | \n",
" 79 | \n",
"
\n",
" \n",
" 31 | \n",
" India | \n",
" 1 | \n",
" 11 | \n",
" 27 | \n",
" 39 | \n",
"
\n",
" \n",
" 32 | \n",
" Indonesia | \n",
" 2 | \n",
" 18 | \n",
" 29 | \n",
" 49 | \n",
"
\n",
" \n",
" 33 | \n",
" Iran | \n",
" 19 | \n",
" 47 | \n",
" 22 | \n",
" 88 | \n",
"
\n",
" \n",
" 34 | \n",
" Ireland | \n",
" 1 | \n",
" 4 | \n",
" 12 | \n",
" 17 | \n",
"
\n",
" \n",
" 35 | \n",
" Israel | \n",
" 5 | \n",
" 22 | \n",
" 25 | \n",
" 52 | \n",
"
\n",
" \n",
" 36 | \n",
" Italy | \n",
" 2 | \n",
" 14 | \n",
" 24 | \n",
" 40 | \n",
"
\n",
" \n",
" 37 | \n",
" Japan | \n",
" 16 | \n",
" 17 | \n",
" 8 | \n",
" 41 | \n",
"
\n",
" \n",
" 38 | \n",
" Kazakhstan | \n",
" 2 | \n",
" 14 | \n",
" 24 | \n",
" 40 | \n",
"
\n",
" \n",
" 39 | \n",
" Kyrgyzstan | \n",
" 0 | \n",
" 0 | \n",
" 3 | \n",
" 3 | \n",
"
\n",
" \n",
" 40 | \n",
" Latvia | \n",
" 6 | \n",
" 23 | \n",
" 39 | \n",
" 68 | \n",
"
\n",
" \n",
" 41 | \n",
" Lithuania | \n",
" 2 | \n",
" 25 | \n",
" 39 | \n",
" 66 | \n",
"
\n",
" \n",
" 42 | \n",
" Luxembourg | \n",
" 0 | \n",
" 1 | \n",
" 14 | \n",
" 15 | \n",
"
\n",
" \n",
" 43 | \n",
" Macau | \n",
" 0 | \n",
" 4 | \n",
" 10 | \n",
" 14 | \n",
"
\n",
" \n",
" 44 | \n",
" Macedonia | \n",
" 0 | \n",
" 1 | \n",
" 13 | \n",
" 14 | \n",
"
\n",
" \n",
" 45 | \n",
" Malaysia | \n",
" 0 | \n",
" 2 | \n",
" 3 | \n",
" 5 | \n",
"
\n",
" \n",
" 46 | \n",
" Malta | \n",
" 0 | \n",
" 0 | \n",
" 2 | \n",
" 2 | \n",
"
\n",
" \n",
" 47 | \n",
" Mexico | \n",
" 1 | \n",
" 3 | \n",
" 13 | \n",
" 17 | \n",
"
\n",
" \n",
" 48 | \n",
" Moldova | \n",
" 0 | \n",
" 2 | \n",
" 22 | \n",
" 24 | \n",
"
\n",
" \n",
" 49 | \n",
" Mongolia | \n",
" 0 | \n",
" 0 | \n",
" 2 | \n",
" 2 | \n",
"
\n",
" \n",
" 50 | \n",
" Netherlands | \n",
" 3 | \n",
" 15 | \n",
" 36 | \n",
" 54 | \n",
"
\n",
" \n",
" 51 | \n",
" New Zealand | \n",
" 0 | \n",
" 1 | \n",
" 14 | \n",
" 15 | \n",
"
\n",
" \n",
" 52 | \n",
" Norway | \n",
" 0 | \n",
" 2 | \n",
" 5 | \n",
" 7 | \n",
"
\n",
" \n",
" 53 | \n",
" Philippines | \n",
" 0 | \n",
" 0 | \n",
" 1 | \n",
" 1 | \n",
"
\n",
" \n",
" 54 | \n",
" Poland | \n",
" 34 | \n",
" 36 | \n",
" 27 | \n",
" 97 | \n",
"
\n",
" \n",
" 55 | \n",
" Portugal | \n",
" 0 | \n",
" 0 | \n",
" 5 | \n",
" 5 | \n",
"
\n",
" \n",
" 56 | \n",
" Republic of Korea | \n",
" 33 | \n",
" 33 | \n",
" 26 | \n",
" 92 | \n",
"
\n",
" \n",
" 57 | \n",
" Romania | \n",
" 28 | \n",
" 42 | \n",
" 25 | \n",
" 95 | \n",
"
\n",
" \n",
" 58 | \n",
" Russia | \n",
" 52 | \n",
" 32 | \n",
" 12 | \n",
" 96 | \n",
"
\n",
" \n",
" 59 | \n",
" Serbia | \n",
" 0 | \n",
" 11 | \n",
" 14 | \n",
" 25 | \n",
"
\n",
" \n",
" 60 | \n",
" Serbia and Montenegro | \n",
" 2 | \n",
" 15 | \n",
" 17 | \n",
" 34 | \n",
"
\n",
" \n",
" 61 | \n",
" Singapore | \n",
" 8 | \n",
" 27 | \n",
" 34 | \n",
" 69 | \n",
"
\n",
" \n",
" 62 | \n",
" Slovakia | \n",
" 24 | \n",
" 37 | \n",
" 23 | \n",
" 84 | \n",
"
\n",
" \n",
" 63 | \n",
" Slovenia | \n",
" 0 | \n",
" 4 | \n",
" 22 | \n",
" 26 | \n",
"
\n",
" \n",
" 64 | \n",
" South Africa | \n",
" 4 | \n",
" 13 | \n",
" 34 | \n",
" 51 | \n",
"
\n",
" \n",
" 65 | \n",
" Soviet Union | \n",
" 3 | \n",
" 4 | \n",
" 1 | \n",
" 8 | \n",
"
\n",
" \n",
" 66 | \n",
" Spain | \n",
" 0 | \n",
" 4 | \n",
" 12 | \n",
" 16 | \n",
"
\n",
" \n",
" 67 | \n",
" Sri Lanka | \n",
" 3 | \n",
" 7 | \n",
" 16 | \n",
" 26 | \n",
"
\n",
" \n",
" 68 | \n",
" Sweden | \n",
" 13 | \n",
" 22 | \n",
" 27 | \n",
" 62 | \n",
"
\n",
" \n",
" 69 | \n",
" Switzerland | \n",
" 0 | \n",
" 7 | \n",
" 25 | \n",
" 32 | \n",
"
\n",
" \n",
" 70 | \n",
" Syria | \n",
" 0 | \n",
" 2 | \n",
" 3 | \n",
" 5 | \n",
"
\n",
" \n",
" 71 | \n",
" Taiwan | \n",
" 17 | \n",
" 42 | \n",
" 22 | \n",
" 81 | \n",
"
\n",
" \n",
" 72 | \n",
" Tajikistan | \n",
" 0 | \n",
" 0 | \n",
" 4 | \n",
" 4 | \n",
"
\n",
" \n",
" 73 | \n",
" Thailand | \n",
" 15 | \n",
" 32 | \n",
" 41 | \n",
" 88 | \n",
"
\n",
" \n",
" 74 | \n",
" Trinidad and Tobago | \n",
" 0 | \n",
" 0 | \n",
" 3 | \n",
" 3 | \n",
"
\n",
" \n",
" 75 | \n",
" Tunisia | \n",
" 0 | \n",
" 0 | \n",
" 1 | \n",
" 1 | \n",
"
\n",
" \n",
" 76 | \n",
" Turkey | \n",
" 2 | \n",
" 20 | \n",
" 37 | \n",
" 59 | \n",
"
\n",
" \n",
" 77 | \n",
" Turkmenistan | \n",
" 1 | \n",
" 0 | \n",
" 4 | \n",
" 5 | \n",
"
\n",
" \n",
" 78 | \n",
" Ukraine | \n",
" 7 | \n",
" 22 | \n",
" 44 | \n",
" 73 | \n",
"
\n",
" \n",
" 79 | \n",
" United Kingdom | \n",
" 5 | \n",
" 16 | \n",
" 29 | \n",
" 50 | \n",
"
\n",
" \n",
" 80 | \n",
" United States of America | \n",
" 42 | \n",
" 33 | \n",
" 15 | \n",
" 90 | \n",
"
\n",
" \n",
" 81 | \n",
" Venezuela | \n",
" 0 | \n",
" 0 | \n",
" 1 | \n",
" 1 | \n",
"
\n",
" \n",
" 82 | \n",
" Vietnam | \n",
" 10 | \n",
" 36 | \n",
" 45 | \n",
" 91 | \n",
"
\n",
" \n",
" 83 | \n",
" Yugoslavia | \n",
" 1 | \n",
" 3 | \n",
" 1 | \n",
" 5 | \n",
"
\n",
" \n",
"
"
],
"text/plain": [
""
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from IPython.display import HTML\n",
"h = HTML(dfn.to_html());h\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Shorten a few country names:"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"dfn.loc[8, 'Country']='BosniaHer'\n",
"dfn.loc[18,'Country']='CzechRep'\n",
"dfn.loc[19, 'Country']='Czechoslov'\n",
"dfn.loc[26, 'Country']='GermanDemR'\n",
"dfn.loc[29,'Country']='HongKong'\n",
"dfn.loc[51,'Country']='NewZealand'\n",
"dfn.loc[56, 'Country']='RepKorea'\n",
"dfn.loc[60, 'Country']='SerbiaMoN'\n",
"dfn.loc[64, 'Country']='SouthAfrica'\n",
"dfn.loc[65, 'Country']='SovUnion'\n",
"dfn.loc[67, 'Country']='SriLanka'\n",
"dfn.loc[74, 'Country']='TrinidadTo'\n",
"dfn.loc[79, 'Country']='UnKingdom'\n",
"dfn.loc[80, 'Country']='USA'\n"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"#Check data again\n",
"#h = HTML(dfn.to_html());h"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Convert data from the last 4 columns to int:"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"for c in ['Gold', 'Silver', 'Bronze', 'Total']:\n",
" dfn[c]=dfn[c].astype(int)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Sort data increasingly with respect to the total number of medals:"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Country | \n",
" Gold | \n",
" Silver | \n",
" Bronze | \n",
" Total | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" Philippines | \n",
" 0 | \n",
" 0 | \n",
" 1 | \n",
" 1 | \n",
"
\n",
" \n",
" 1 | \n",
" Venezuela | \n",
" 0 | \n",
" 0 | \n",
" 1 | \n",
" 1 | \n",
"
\n",
" \n",
" 2 | \n",
" Tunisia | \n",
" 0 | \n",
" 0 | \n",
" 1 | \n",
" 1 | \n",
"
\n",
" \n",
" 3 | \n",
" Chile | \n",
" 0 | \n",
" 0 | \n",
" 1 | \n",
" 1 | \n",
"
\n",
" \n",
" 4 | \n",
" Mongolia | \n",
" 0 | \n",
" 0 | \n",
" 2 | \n",
" 2 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Country Gold Silver Bronze Total\n",
"0 Philippines 0 0 1 1\n",
"1 Venezuela 0 0 1 1\n",
"2 Tunisia 0 0 1 1\n",
"3 Chile 0 0 1 1\n",
"4 Mongolia 0 0 2 2"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dfs=dfn.sort(columns='Total')\n",
"L=len(dfs)\n",
"dfs= dfs.set_index(np.arange(L))\n",
"dfs.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Set colors for Gold, Silver and Bronze medal:"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"colors=['#D9D919', '#C0C0C0', '#A67D3D'] #bright gold, silver, bronze"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"import plotly.plotly as py\n",
"from plotly.graph_objs import *\n",
"\n",
"py.sign_in(\"empet\", \"shzbvu3hbh\")"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"Co=dfs['Country'].values.tolist()\n",
"Go=dfs['Gold'].values.tolist()\n",
"Si=dfs['Silver'].values.tolist()\n",
"Bro=dfs['Bronze'].values.tolist()\n",
"To=dfs['Total'].values.tolist()"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"107\n"
]
}
],
"source": [
"print max(To)"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
""
],
"text/plain": [
""
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"anno_text=\"Source: [1]\"\n",
"\n",
"trace1= Bar(\n",
" x=Go,\n",
" y=Co,\n",
" orientation='h', \n",
" marker=Marker(color=colors[0]),\n",
" name='gold'\n",
" )\n",
"trace2= Bar(\n",
" x=Si,\n",
" y=Co,\n",
" orientation='h', \n",
" marker=Marker(color=colors[1]),\n",
" name='silver'\n",
" )\n",
"trace3= Bar(\n",
" x=Bro,\n",
" y=Co,\n",
" orientation='h', \n",
" marker=Marker(color=colors[2]),\n",
" name='bronze'\n",
" )\n",
"data = Data([trace1, trace2, trace3])\n",
"m_title='Unofficial country rankings according to the total number of medals at IOI
1989-2015'\n",
"layout = Layout(\n",
" title=m_title,\n",
" font=Font(family='Raleway, sans-serif'\n",
" \n",
" ),\n",
" showlegend=False,\n",
" autosize=False,\n",
" width=800,\n",
" height=1000,\n",
" xaxis=XAxis(\n",
" range=[0, 108],\n",
" gridwidth=2,\n",
" showgrid=True,\n",
" zeroline=True,\n",
" showline=True,\n",
" mirror=True,\n",
" side='top'\n",
" ),\n",
" \n",
" \n",
" yaxis=YAxis(\n",
" #title='Country',\n",
" showgrid=False,\n",
" zeroline=True,\n",
" showline=True,\n",
" autotick=True,\n",
" nticks=0,\n",
" ticks='outside',\n",
" showticklabels=True,\n",
" tick0=0,\n",
" dtick=1,\n",
" ticklen=10,\n",
" mirror=True\n",
" ),\n",
" \n",
" \n",
" margin=Margin(\n",
" l=80,\n",
" r=80,\n",
" b=80,\n",
" t=100,\n",
" pad=2\n",
" ),\n",
" annotations=Annotations([\n",
" Annotation(\n",
" showarrow=False, \n",
" text=anno_text, \n",
" xref='paper', \n",
" yref='paper', \n",
" x=0, \n",
" y=-0.075, \n",
" xanchor='left', \n",
" yanchor='bottom', \n",
" font=Font(\n",
" size=14 \n",
" ) \n",
" )\n",
" ]), \n",
" \n",
" bargap=0.18,\n",
" bargroupgap=0,\n",
" hovermode='y',\n",
" dragmode='zoom',\n",
" barmode='stack',\n",
" \n",
")\n",
"fig = Figure(data=data, layout=layout)\n",
"py.iplot(fig, filename='IOI-Rankings', height=1005)"
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n"
],
"text/plain": [
""
]
},
"execution_count": 44,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from IPython.core.display import HTML\n",
"def css_styling():\n",
" styles = open(\"./custom.css\", \"r\").read()\n",
" return HTML(styles)\n",
"css_styling()"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
"language": "python",
"name": "python2"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.9"
}
},
"nbformat": 4,
"nbformat_minor": 0
}