From 456b026bb4352ec825d8707f72081a19c91d2890 Mon Sep 17 00:00:00 2001 From: Michael Zingale Date: Fri, 6 Feb 2026 13:28:28 -0500 Subject: [PATCH] remove pandas --- content/07-pandas/exercises.txt | 2 - content/07-pandas/ideas.txt | 1 - content/07-pandas/pandas-babynames.ipynb | 6652 -------------------- content/07-pandas/pandas-experiments.ipynb | 719 --- content/07-pandas/pandas-intro.ipynb | 5108 --------------- content/07-pandas/pandas-worldbank.ipynb | 4013 ------------ content/07-pandas/pandas_solutions.txt | 37 - content/07-pandas/sample.csv | 20 - 8 files changed, 16552 deletions(-) delete mode 100644 content/07-pandas/exercises.txt delete mode 100644 content/07-pandas/ideas.txt delete mode 100644 content/07-pandas/pandas-babynames.ipynb delete mode 100644 content/07-pandas/pandas-experiments.ipynb delete mode 100644 content/07-pandas/pandas-intro.ipynb delete mode 100644 content/07-pandas/pandas-worldbank.ipynb delete mode 100644 content/07-pandas/pandas_solutions.txt delete mode 100644 content/07-pandas/sample.csv diff --git a/content/07-pandas/exercises.txt b/content/07-pandas/exercises.txt deleted file mode 100644 index c4b054ba..00000000 --- a/content/07-pandas/exercises.txt +++ /dev/null @@ -1,2 +0,0 @@ --- work with the World Bank data --- curve fit from pandas diff --git a/content/07-pandas/ideas.txt b/content/07-pandas/ideas.txt deleted file mode 100644 index 7236428d..00000000 --- a/content/07-pandas/ideas.txt +++ /dev/null @@ -1 +0,0 @@ -https://gist.github.com/jakevdp/9ffd72a81c1af80a10314cba0569af84 diff --git a/content/07-pandas/pandas-babynames.ipynb b/content/07-pandas/pandas-babynames.ipynb deleted file mode 100644 index 1f1176ee..00000000 --- a/content/07-pandas/pandas-babynames.ipynb +++ /dev/null @@ -1,6652 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# pandas exercises" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We'll use the sample dataset from the Social Secury Administration on baby names:\n", - "https://www.ssa.gov/oact/babynames/limits.html\n", - "\n", - "Download the \"National\" version and unzip it. There will be one file for each year.\n", - "\n", - "This example follows the _Python for Data Analysis_ book closely" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "import pandas as pd\n", - "import numpy as np\n", - "%matplotlib inline\n", - "import matplotlib.pyplot as plt" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let's start by reading in just a single dataset, for the first year available (1880). We give the names of the columns here. The index will just be the line / record number in the file (not really important for us)" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
namesexbirths
0MaryF7065
1AnnaF2604
2EmmaF2003
3ElizabethF1939
4MinnieF1746
5MargaretF1578
6IdaF1472
7AliceF1414
8BerthaF1320
9SarahF1288
10AnnieF1258
11ClaraF1226
12EllaF1156
13FlorenceF1063
14CoraF1045
15MarthaF1040
16LauraF1012
17NellieF995
18GraceF982
19CarrieF949
20MaudeF858
21MabelF808
22BessieF796
23JennieF793
24GertrudeF787
25JuliaF783
26HattieF769
27EdithF768
28MattieF704
29RoseF700
............
1970PhiloM5
1971PhineasM5
1972PresleyM5
1973RansomM5
1974ReeceM5
1975ReneM5
1976RoswellM5
1977RowlandM5
1978SampsonM5
1979SamualM5
1980SantosM5
1981SchuylerM5
1982SheppardM5
1983SpurgeonM5
1984StarlingM5
1985SylvanusM5
1986TheadoreM5
1987TheophileM5
1988TilmonM5
1989TommyM5
1990UnknownM5
1991VannM5
1992WesM5
1993WinstonM5
1994WoodM5
1995WoodieM5
1996WorthyM5
1997WrightM5
1998YorkM5
1999ZachariahM5
\n", - "

2000 rows × 3 columns

\n", - "
" - ], - "text/plain": [ - " name sex births\n", - "0 Mary F 7065\n", - "1 Anna F 2604\n", - "2 Emma F 2003\n", - "3 Elizabeth F 1939\n", - "4 Minnie F 1746\n", - "5 Margaret F 1578\n", - "6 Ida F 1472\n", - "7 Alice F 1414\n", - "8 Bertha F 1320\n", - "9 Sarah F 1288\n", - "10 Annie F 1258\n", - "11 Clara F 1226\n", - "12 Ella F 1156\n", - "13 Florence F 1063\n", - "14 Cora F 1045\n", - "15 Martha F 1040\n", - "16 Laura F 1012\n", - "17 Nellie F 995\n", - "18 Grace F 982\n", - "19 Carrie F 949\n", - "20 Maude F 858\n", - "21 Mabel F 808\n", - "22 Bessie F 796\n", - "23 Jennie F 793\n", - "24 Gertrude F 787\n", - "25 Julia F 783\n", - "26 Hattie F 769\n", - "27 Edith F 768\n", - "28 Mattie F 704\n", - "29 Rose F 700\n", - "... ... .. ...\n", - "1970 Philo M 5\n", - "1971 Phineas M 5\n", - "1972 Presley M 5\n", - "1973 Ransom M 5\n", - "1974 Reece M 5\n", - "1975 Rene M 5\n", - "1976 Roswell M 5\n", - "1977 Rowland M 5\n", - "1978 Sampson M 5\n", - "1979 Samual M 5\n", - "1980 Santos M 5\n", - "1981 Schuyler M 5\n", - "1982 Sheppard M 5\n", - "1983 Spurgeon M 5\n", - "1984 Starling M 5\n", - "1985 Sylvanus M 5\n", - "1986 Theadore M 5\n", - "1987 Theophile M 5\n", - "1988 Tilmon M 5\n", - "1989 Tommy M 5\n", - "1990 Unknown M 5\n", - "1991 Vann M 5\n", - "1992 Wes M 5\n", - "1993 Winston M 5\n", - "1994 Wood M 5\n", - "1995 Woodie M 5\n", - "1996 Worthy M 5\n", - "1997 Wright M 5\n", - "1998 York M 5\n", - "1999 Zachariah M 5\n", - "\n", - "[2000 rows x 3 columns]" - ] - }, - "execution_count": 2, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "names_1880 = pd.read_csv('babynames/yob1880.txt', names=[\"name\", \"sex\", \"births\"])\n", - "names_1880" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## number of births\n", - "\n", - "Now we want to start doing some analysis. `.groupby()` creates a new type of container that groups items. Here, we'll group by sex.\n", - "\n", - "See this:\n", - "http://pandas.pydata.org/pandas-docs/stable/groupby.html\n", - "https://community.modeanalytics.com/python/tutorial/pandas-groupby-and-python-lambda-functions/\n", - "\n", - "for a nice explanation of this method." - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "sex\n", - "F 90992\n", - "M 110490\n", - "Name: births, dtype: int64" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "names_1880.groupby(\"sex\")[\"births\"].sum()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Note that we can use a column name as a parameter of the object, so we can equivalently do this as:" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "sex\n", - "F 90992\n", - "M 110490\n", - "Name: births, dtype: int64" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "names_1880.groupby(\"sex\").births.sum()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "On its own, you can't print a `GroupBy` object. You need to do a transformation or filter on it to get back a `Series` or `DataFrame`." - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
namebirths
sex
F942942
M10581058
\n", - "
" - ], - "text/plain": [ - " name births\n", - "sex \n", - "F 942 942\n", - "M 1058 1058" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "gb = names_1880.groupby(\"sex\")\n", - "gb.count()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "As we saw in the intro, we can propagate a scalar to all indices in the `DataFrame`. We'll use this to add a new column that represents the year:" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
namesexbirthsyear
0MaryF70651880
1AnnaF26041880
2EmmaF20031880
3ElizabethF19391880
4MinnieF17461880
5MargaretF15781880
6IdaF14721880
7AliceF14141880
8BerthaF13201880
9SarahF12881880
10AnnieF12581880
11ClaraF12261880
12EllaF11561880
13FlorenceF10631880
14CoraF10451880
15MarthaF10401880
16LauraF10121880
17NellieF9951880
18GraceF9821880
19CarrieF9491880
20MaudeF8581880
21MabelF8081880
22BessieF7961880
23JennieF7931880
24GertrudeF7871880
25JuliaF7831880
26HattieF7691880
27EdithF7681880
28MattieF7041880
29RoseF7001880
...............
1970PhiloM51880
1971PhineasM51880
1972PresleyM51880
1973RansomM51880
1974ReeceM51880
1975ReneM51880
1976RoswellM51880
1977RowlandM51880
1978SampsonM51880
1979SamualM51880
1980SantosM51880
1981SchuylerM51880
1982SheppardM51880
1983SpurgeonM51880
1984StarlingM51880
1985SylvanusM51880
1986TheadoreM51880
1987TheophileM51880
1988TilmonM51880
1989TommyM51880
1990UnknownM51880
1991VannM51880
1992WesM51880
1993WinstonM51880
1994WoodM51880
1995WoodieM51880
1996WorthyM51880
1997WrightM51880
1998YorkM51880
1999ZachariahM51880
\n", - "

2000 rows × 4 columns

\n", - "
" - ], - "text/plain": [ - " name sex births year\n", - "0 Mary F 7065 1880\n", - "1 Anna F 2604 1880\n", - "2 Emma F 2003 1880\n", - "3 Elizabeth F 1939 1880\n", - "4 Minnie F 1746 1880\n", - "5 Margaret F 1578 1880\n", - "6 Ida F 1472 1880\n", - "7 Alice F 1414 1880\n", - "8 Bertha F 1320 1880\n", - "9 Sarah F 1288 1880\n", - "10 Annie F 1258 1880\n", - "11 Clara F 1226 1880\n", - "12 Ella F 1156 1880\n", - "13 Florence F 1063 1880\n", - "14 Cora F 1045 1880\n", - "15 Martha F 1040 1880\n", - "16 Laura F 1012 1880\n", - "17 Nellie F 995 1880\n", - "18 Grace F 982 1880\n", - "19 Carrie F 949 1880\n", - "20 Maude F 858 1880\n", - "21 Mabel F 808 1880\n", - "22 Bessie F 796 1880\n", - "23 Jennie F 793 1880\n", - "24 Gertrude F 787 1880\n", - "25 Julia F 783 1880\n", - "26 Hattie F 769 1880\n", - "27 Edith F 768 1880\n", - "28 Mattie F 704 1880\n", - "29 Rose F 700 1880\n", - "... ... .. ... ...\n", - "1970 Philo M 5 1880\n", - "1971 Phineas M 5 1880\n", - "1972 Presley M 5 1880\n", - "1973 Ransom M 5 1880\n", - "1974 Reece M 5 1880\n", - "1975 Rene M 5 1880\n", - "1976 Roswell M 5 1880\n", - "1977 Rowland M 5 1880\n", - "1978 Sampson M 5 1880\n", - "1979 Samual M 5 1880\n", - "1980 Santos M 5 1880\n", - "1981 Schuyler M 5 1880\n", - "1982 Sheppard M 5 1880\n", - "1983 Spurgeon M 5 1880\n", - "1984 Starling M 5 1880\n", - "1985 Sylvanus M 5 1880\n", - "1986 Theadore M 5 1880\n", - "1987 Theophile M 5 1880\n", - "1988 Tilmon M 5 1880\n", - "1989 Tommy M 5 1880\n", - "1990 Unknown M 5 1880\n", - "1991 Vann M 5 1880\n", - "1992 Wes M 5 1880\n", - "1993 Winston M 5 1880\n", - "1994 Wood M 5 1880\n", - "1995 Woodie M 5 1880\n", - "1996 Worthy M 5 1880\n", - "1997 Wright M 5 1880\n", - "1998 York M 5 1880\n", - "1999 Zachariah M 5 1880\n", - "\n", - "[2000 rows x 4 columns]" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "names_1880[\"year\"] = 1880\n", - "names_1880" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## all data sets\n", - "\n", - "Now we can read in all of the datasets. We will read them in one-by-one and add the \"year\" column to them. We'll keep a list of all the `DataFrame`s and then we'll use a pandas method to transform this list of `DataFrame`s into a single `DataFrame`" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [], - "source": [ - "years = range(1880, 2016)\n", - "\n", - "pieces = []\n", - "columns = [\"name\", \"sex\", \"births\"]\n", - "\n", - "for yr in years:\n", - " frame = pd.read_csv(\"babynames/yob{}.txt\".format(yr), names=columns)\n", - " \n", - " # this creates a new column and gives all rows the same value -- the year\n", - " frame[\"year\"] = yr\n", - " pieces.append(frame)\n", - "\n", - "# create a single dataframe through concatenation -- ignore_index means that\n", - "# we don't care about the original line numbers\n", - "names = pd.concat(pieces, ignore_index=True)" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
namesexbirthsyear
0MaryF70651880
1AnnaF26041880
2EmmaF20031880
3ElizabethF19391880
4MinnieF17461880
5MargaretF15781880
6IdaF14721880
7AliceF14141880
8BerthaF13201880
9SarahF12881880
10AnnieF12581880
11ClaraF12261880
12EllaF11561880
13FlorenceF10631880
14CoraF10451880
15MarthaF10401880
16LauraF10121880
17NellieF9951880
18GraceF9821880
19CarrieF9491880
20MaudeF8581880
21MabelF8081880
22BessieF7961880
23JennieF7931880
24GertrudeF7871880
25JuliaF7831880
26HattieF7691880
27EdithF7681880
28MattieF7041880
29RoseF7001880
...............
1858659ZavonM52015
1858660ZayM52015
1858661ZaylorM52015
1858662ZayquanM52015
1858663ZechariaM52015
1858664ZecharyaM52015
1858665ZeeM52015
1858666ZeevM52015
1858667ZeikM52015
1858668ZekariahM52015
1858669ZepplinM52015
1858670ZerekM52015
1858671ZeydM52015
1858672ZhiM52015
1858673ZielM52015
1858674ZihanM52015
1858675ZihaoM52015
1858676ZihengM52015
1858677ZimereM52015
1858678ZiyiM52015
1858679ZiyuM52015
1858680ZoelM52015
1858681ZoharM52015
1858682ZoltonM52015
1858683ZyahM52015
1858684ZykellM52015
1858685ZykingM52015
1858686ZykirM52015
1858687ZyrusM52015
1858688ZyusM52015
\n", - "

1858689 rows × 4 columns

\n", - "
" - ], - "text/plain": [ - " name sex births year\n", - "0 Mary F 7065 1880\n", - "1 Anna F 2604 1880\n", - "2 Emma F 2003 1880\n", - "3 Elizabeth F 1939 1880\n", - "4 Minnie F 1746 1880\n", - "5 Margaret F 1578 1880\n", - "6 Ida F 1472 1880\n", - "7 Alice F 1414 1880\n", - "8 Bertha F 1320 1880\n", - "9 Sarah F 1288 1880\n", - "10 Annie F 1258 1880\n", - "11 Clara F 1226 1880\n", - "12 Ella F 1156 1880\n", - "13 Florence F 1063 1880\n", - "14 Cora F 1045 1880\n", - "15 Martha F 1040 1880\n", - "16 Laura F 1012 1880\n", - "17 Nellie F 995 1880\n", - "18 Grace F 982 1880\n", - "19 Carrie F 949 1880\n", - "20 Maude F 858 1880\n", - "21 Mabel F 808 1880\n", - "22 Bessie F 796 1880\n", - "23 Jennie F 793 1880\n", - "24 Gertrude F 787 1880\n", - "25 Julia F 783 1880\n", - "26 Hattie F 769 1880\n", - "27 Edith F 768 1880\n", - "28 Mattie F 704 1880\n", - "29 Rose F 700 1880\n", - "... ... .. ... ...\n", - "1858659 Zavon M 5 2015\n", - "1858660 Zay M 5 2015\n", - "1858661 Zaylor M 5 2015\n", - "1858662 Zayquan M 5 2015\n", - "1858663 Zecharia M 5 2015\n", - "1858664 Zecharya M 5 2015\n", - "1858665 Zee M 5 2015\n", - "1858666 Zeev M 5 2015\n", - "1858667 Zeik M 5 2015\n", - "1858668 Zekariah M 5 2015\n", - "1858669 Zepplin M 5 2015\n", - "1858670 Zerek M 5 2015\n", - "1858671 Zeyd M 5 2015\n", - "1858672 Zhi M 5 2015\n", - "1858673 Ziel M 5 2015\n", - "1858674 Zihan M 5 2015\n", - "1858675 Zihao M 5 2015\n", - "1858676 Ziheng M 5 2015\n", - "1858677 Zimere M 5 2015\n", - "1858678 Ziyi M 5 2015\n", - "1858679 Ziyu M 5 2015\n", - "1858680 Zoel M 5 2015\n", - "1858681 Zohar M 5 2015\n", - "1858682 Zolton M 5 2015\n", - "1858683 Zyah M 5 2015\n", - "1858684 Zykell M 5 2015\n", - "1858685 Zyking M 5 2015\n", - "1858686 Zykir M 5 2015\n", - "1858687 Zyrus M 5 2015\n", - "1858688 Zyus M 5 2015\n", - "\n", - "[1858689 rows x 4 columns]" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "names" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## pivot tables" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "a _pivot table_ creates a new dataframe from our original one, usually summarizing the data in a new way. In particular, with a pivot table, we can create a new index and columns, with the data in the `DataFrame` reduced via some operation across another column.\n", - "\n", - "Here, the column that we are going to aggregate is \"births\", and the function will will use for the aggregating is `sum` (to sum over the names)." - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
namesexbirthsyear
0MaryF70651880
1AnnaF26041880
2EmmaF20031880
3ElizabethF19391880
4MinnieF17461880
\n", - "
" - ], - "text/plain": [ - " name sex births year\n", - "0 Mary F 7065 1880\n", - "1 Anna F 2604 1880\n", - "2 Emma F 2003 1880\n", - "3 Elizabeth F 1939 1880\n", - "4 Minnie F 1746 1880" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "names.head()" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [], - "source": [ - "total_births = names.pivot_table(\"births\", index=\"year\", columns=\"sex\", aggfunc=sum)" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
sexFM
year
188090992110490
188191953100743
1882107848113686
1883112318104627
1884129020114443
1885133055107799
1886144534110785
1887145981101415
1888178624120850
1889178366110582
1890190376111025
1891185482101193
1892212341122036
1893212905112317
1894222922115770
1895233628117396
1896237918119568
1897234200112758
1898258770122691
1899233023106212
1900299822150490
1901239347106469
1902264075122659
1903261972119233
1904275371128125
1905291623132318
1906295304133157
1907318565146830
1908334315154343
1909347232163999
.........
198617147841840347
198717379811865804
198817799751912764
198918431752000082
199018978072052662
199118744892019523
199218433831996492
199318085081960486
199417851841931313
199517580101902971
199617523641893548
199717399631884324
199817660751910424
199917727881918984
200018147381962556
200117991991941401
200217953671939950
200318255091973612
200418343791983010
200518456401995115
200618987762052652
200719197752072505
200818876602036750
200918334611979895
201017734401914629
201117544241894262
201217552541890889
201317475441883945
201417772421910876
201517693251898858
\n", - "

136 rows × 2 columns

\n", - "
" - ], - "text/plain": [ - "sex F M\n", - "year \n", - "1880 90992 110490\n", - "1881 91953 100743\n", - "1882 107848 113686\n", - "1883 112318 104627\n", - "1884 129020 114443\n", - "1885 133055 107799\n", - "1886 144534 110785\n", - "1887 145981 101415\n", - "1888 178624 120850\n", - "1889 178366 110582\n", - "1890 190376 111025\n", - "1891 185482 101193\n", - "1892 212341 122036\n", - "1893 212905 112317\n", - "1894 222922 115770\n", - "1895 233628 117396\n", - "1896 237918 119568\n", - "1897 234200 112758\n", - "1898 258770 122691\n", - "1899 233023 106212\n", - "1900 299822 150490\n", - "1901 239347 106469\n", - "1902 264075 122659\n", - "1903 261972 119233\n", - "1904 275371 128125\n", - "1905 291623 132318\n", - "1906 295304 133157\n", - "1907 318565 146830\n", - "1908 334315 154343\n", - "1909 347232 163999\n", - "... ... ...\n", - "1986 1714784 1840347\n", - "1987 1737981 1865804\n", - "1988 1779975 1912764\n", - "1989 1843175 2000082\n", - "1990 1897807 2052662\n", - "1991 1874489 2019523\n", - "1992 1843383 1996492\n", - "1993 1808508 1960486\n", - "1994 1785184 1931313\n", - "1995 1758010 1902971\n", - "1996 1752364 1893548\n", - "1997 1739963 1884324\n", - "1998 1766075 1910424\n", - "1999 1772788 1918984\n", - "2000 1814738 1962556\n", - "2001 1799199 1941401\n", - "2002 1795367 1939950\n", - "2003 1825509 1973612\n", - "2004 1834379 1983010\n", - "2005 1845640 1995115\n", - "2006 1898776 2052652\n", - "2007 1919775 2072505\n", - "2008 1887660 2036750\n", - "2009 1833461 1979895\n", - "2010 1773440 1914629\n", - "2011 1754424 1894262\n", - "2012 1755254 1890889\n", - "2013 1747544 1883945\n", - "2014 1777242 1910876\n", - "2015 1769325 1898858\n", - "\n", - "[136 rows x 2 columns]" - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "total_births" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "total_births.plot()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## `.apply()` and new columns" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now we'll use `.groupby()` again to allow use to derive a new column -- the fraction of the births with the name specified by the index. \n", - "\n", - "`apply()` uses what Pandas calls the _split-apply-combine_ rules, e.g., it splits the data into groups, applies your function, and then intelligently concatenates it back together. Here, the result will be a `DataFrame` with the original information and this new column." - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [], - "source": [ - "def add_prop(group):\n", - " group[\"prop\"] = group[\"births\"]/group[\"births\"].sum()\n", - " return group\n", - "\n", - "names = names.groupby([\"year\", \"sex\"]).apply(add_prop)" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
namesexbirthsyearprop
0MaryF706518800.077644
1AnnaF260418800.028618
2EmmaF200318800.022013
3ElizabethF193918800.021310
4MinnieF174618800.019189
5MargaretF157818800.017342
6IdaF147218800.016177
7AliceF141418800.015540
8BerthaF132018800.014507
9SarahF128818800.014155
10AnnieF125818800.013825
11ClaraF122618800.013474
12EllaF115618800.012704
13FlorenceF106318800.011682
14CoraF104518800.011485
15MarthaF104018800.011430
16LauraF101218800.011122
17NellieF99518800.010935
18GraceF98218800.010792
19CarrieF94918800.010429
20MaudeF85818800.009429
21MabelF80818800.008880
22BessieF79618800.008748
23JennieF79318800.008715
24GertrudeF78718800.008649
25JuliaF78318800.008605
26HattieF76918800.008451
27EdithF76818800.008440
28MattieF70418800.007737
29RoseF70018800.007693
..................
1858659ZavonM520150.000003
1858660ZayM520150.000003
1858661ZaylorM520150.000003
1858662ZayquanM520150.000003
1858663ZechariaM520150.000003
1858664ZecharyaM520150.000003
1858665ZeeM520150.000003
1858666ZeevM520150.000003
1858667ZeikM520150.000003
1858668ZekariahM520150.000003
1858669ZepplinM520150.000003
1858670ZerekM520150.000003
1858671ZeydM520150.000003
1858672ZhiM520150.000003
1858673ZielM520150.000003
1858674ZihanM520150.000003
1858675ZihaoM520150.000003
1858676ZihengM520150.000003
1858677ZimereM520150.000003
1858678ZiyiM520150.000003
1858679ZiyuM520150.000003
1858680ZoelM520150.000003
1858681ZoharM520150.000003
1858682ZoltonM520150.000003
1858683ZyahM520150.000003
1858684ZykellM520150.000003
1858685ZykingM520150.000003
1858686ZykirM520150.000003
1858687ZyrusM520150.000003
1858688ZyusM520150.000003
\n", - "

1858689 rows × 5 columns

\n", - "
" - ], - "text/plain": [ - " name sex births year prop\n", - "0 Mary F 7065 1880 0.077644\n", - "1 Anna F 2604 1880 0.028618\n", - "2 Emma F 2003 1880 0.022013\n", - "3 Elizabeth F 1939 1880 0.021310\n", - "4 Minnie F 1746 1880 0.019189\n", - "5 Margaret F 1578 1880 0.017342\n", - "6 Ida F 1472 1880 0.016177\n", - "7 Alice F 1414 1880 0.015540\n", - "8 Bertha F 1320 1880 0.014507\n", - "9 Sarah F 1288 1880 0.014155\n", - "10 Annie F 1258 1880 0.013825\n", - "11 Clara F 1226 1880 0.013474\n", - "12 Ella F 1156 1880 0.012704\n", - "13 Florence F 1063 1880 0.011682\n", - "14 Cora F 1045 1880 0.011485\n", - "15 Martha F 1040 1880 0.011430\n", - "16 Laura F 1012 1880 0.011122\n", - "17 Nellie F 995 1880 0.010935\n", - "18 Grace F 982 1880 0.010792\n", - "19 Carrie F 949 1880 0.010429\n", - "20 Maude F 858 1880 0.009429\n", - "21 Mabel F 808 1880 0.008880\n", - "22 Bessie F 796 1880 0.008748\n", - "23 Jennie F 793 1880 0.008715\n", - "24 Gertrude F 787 1880 0.008649\n", - "25 Julia F 783 1880 0.008605\n", - "26 Hattie F 769 1880 0.008451\n", - "27 Edith F 768 1880 0.008440\n", - "28 Mattie F 704 1880 0.007737\n", - "29 Rose F 700 1880 0.007693\n", - "... ... .. ... ... ...\n", - "1858659 Zavon M 5 2015 0.000003\n", - "1858660 Zay M 5 2015 0.000003\n", - "1858661 Zaylor M 5 2015 0.000003\n", - "1858662 Zayquan M 5 2015 0.000003\n", - "1858663 Zecharia M 5 2015 0.000003\n", - "1858664 Zecharya M 5 2015 0.000003\n", - "1858665 Zee M 5 2015 0.000003\n", - "1858666 Zeev M 5 2015 0.000003\n", - "1858667 Zeik M 5 2015 0.000003\n", - "1858668 Zekariah M 5 2015 0.000003\n", - "1858669 Zepplin M 5 2015 0.000003\n", - "1858670 Zerek M 5 2015 0.000003\n", - "1858671 Zeyd M 5 2015 0.000003\n", - "1858672 Zhi M 5 2015 0.000003\n", - "1858673 Ziel M 5 2015 0.000003\n", - "1858674 Zihan M 5 2015 0.000003\n", - "1858675 Zihao M 5 2015 0.000003\n", - "1858676 Ziheng M 5 2015 0.000003\n", - "1858677 Zimere M 5 2015 0.000003\n", - "1858678 Ziyi M 5 2015 0.000003\n", - "1858679 Ziyu M 5 2015 0.000003\n", - "1858680 Zoel M 5 2015 0.000003\n", - "1858681 Zohar M 5 2015 0.000003\n", - "1858682 Zolton M 5 2015 0.000003\n", - "1858683 Zyah M 5 2015 0.000003\n", - "1858684 Zykell M 5 2015 0.000003\n", - "1858685 Zyking M 5 2015 0.000003\n", - "1858686 Zykir M 5 2015 0.000003\n", - "1858687 Zyrus M 5 2015 0.000003\n", - "1858688 Zyus M 5 2015 0.000003\n", - "\n", - "[1858689 rows x 5 columns]" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "names" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Q1: Sanity check\n", - "\n", - "Verify that within each of the groups we just used above that the \"prop\" column sums to 1 (it should be close, to roundoff). The `np.allclose()` function might be useful here." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now we will group by \"year\" and \"sex\" and then sort by births to get just the top N most popular names.\n", - "\n", - "Notice that we simply append any additional arguments to our apply function after the function name (this is an example of the `**kwargs` behavior in python" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [], - "source": [ - "def get_top(group, N=1000):\n", - " return group.sort_values(by=\"births\", ascending=False)[:N]\n", - "\n", - "grouped = names.groupby([\"year\", \"sex\"])\n", - "top = grouped.apply(get_top, 1000)" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
namesexbirthsyearprop
yearsex
1880F0MaryF706518800.077644
1AnnaF260418800.028618
2EmmaF200318800.022013
3ElizabethF193918800.021310
4MinnieF174618800.019189
5MargaretF157818800.017342
6IdaF147218800.016177
7AliceF141418800.015540
8BerthaF132018800.014507
9SarahF128818800.014155
10AnnieF125818800.013825
11ClaraF122618800.013474
12EllaF115618800.012704
13FlorenceF106318800.011682
14CoraF104518800.011485
15MarthaF104018800.011430
16LauraF101218800.011122
17NellieF99518800.010935
18GraceF98218800.010792
19CarrieF94918800.010429
20MaudeF85818800.009429
21MabelF80818800.008880
22BessieF79618800.008748
23JennieF79318800.008715
24GertrudeF78718800.008649
25JuliaF78318800.008605
26HattieF76918800.008451
27EdithF76818800.008440
28MattieF70418800.007737
29RoseF70018800.007693
........................
2015M1845703YadielM21120150.000111
1845704YahyaM21120150.000111
1845700AarushM21120150.000111
1845702RobinM21120150.000111
1845701DeangeloM21120150.000111
1845705BodenM20920150.000110
1845707KyeM20920150.000110
1845708KylenM20920150.000110
1845709ToddM20920150.000110
1845710TrumanM20920150.000110
1845706EanM20920150.000110
1845712GilbertM20820150.000110
1845713HaidenM20820150.000110
1845711ChevyM20820150.000110
1845715DangeloM20720150.000109
1845716JuelzM20720150.000109
1845717OsvaldoM20720150.000109
1845714BrixtonM20720150.000109
1845718BishopM20620150.000108
1845719FreddyM20620150.000108
1845720ReaganM20620150.000108
1845721FrankieM20520150.000108
1845722MalakiM20520150.000108
1845725JayvionM20420150.000107
1845726LeroyM20420150.000107
1845724DeshawnM20420150.000107
1845723CamrenM20420150.000107
1845728JaydonM20320150.000107
1845727BriarM20320150.000107
1845730AyanM20220150.000106
\n", - "

271877 rows × 5 columns

\n", - "
" - ], - "text/plain": [ - " name sex births year prop\n", - "year sex \n", - "1880 F 0 Mary F 7065 1880 0.077644\n", - " 1 Anna F 2604 1880 0.028618\n", - " 2 Emma F 2003 1880 0.022013\n", - " 3 Elizabeth F 1939 1880 0.021310\n", - " 4 Minnie F 1746 1880 0.019189\n", - " 5 Margaret F 1578 1880 0.017342\n", - " 6 Ida F 1472 1880 0.016177\n", - " 7 Alice F 1414 1880 0.015540\n", - " 8 Bertha F 1320 1880 0.014507\n", - " 9 Sarah F 1288 1880 0.014155\n", - " 10 Annie F 1258 1880 0.013825\n", - " 11 Clara F 1226 1880 0.013474\n", - " 12 Ella F 1156 1880 0.012704\n", - " 13 Florence F 1063 1880 0.011682\n", - " 14 Cora F 1045 1880 0.011485\n", - " 15 Martha F 1040 1880 0.011430\n", - " 16 Laura F 1012 1880 0.011122\n", - " 17 Nellie F 995 1880 0.010935\n", - " 18 Grace F 982 1880 0.010792\n", - " 19 Carrie F 949 1880 0.010429\n", - " 20 Maude F 858 1880 0.009429\n", - " 21 Mabel F 808 1880 0.008880\n", - " 22 Bessie F 796 1880 0.008748\n", - " 23 Jennie F 793 1880 0.008715\n", - " 24 Gertrude F 787 1880 0.008649\n", - " 25 Julia F 783 1880 0.008605\n", - " 26 Hattie F 769 1880 0.008451\n", - " 27 Edith F 768 1880 0.008440\n", - " 28 Mattie F 704 1880 0.007737\n", - " 29 Rose F 700 1880 0.007693\n", - "... ... .. ... ... ...\n", - "2015 M 1845703 Yadiel M 211 2015 0.000111\n", - " 1845704 Yahya M 211 2015 0.000111\n", - " 1845700 Aarush M 211 2015 0.000111\n", - " 1845702 Robin M 211 2015 0.000111\n", - " 1845701 Deangelo M 211 2015 0.000111\n", - " 1845705 Boden M 209 2015 0.000110\n", - " 1845707 Kye M 209 2015 0.000110\n", - " 1845708 Kylen M 209 2015 0.000110\n", - " 1845709 Todd M 209 2015 0.000110\n", - " 1845710 Truman M 209 2015 0.000110\n", - " 1845706 Ean M 209 2015 0.000110\n", - " 1845712 Gilbert M 208 2015 0.000110\n", - " 1845713 Haiden M 208 2015 0.000110\n", - " 1845711 Chevy M 208 2015 0.000110\n", - " 1845715 Dangelo M 207 2015 0.000109\n", - " 1845716 Juelz M 207 2015 0.000109\n", - " 1845717 Osvaldo M 207 2015 0.000109\n", - " 1845714 Brixton M 207 2015 0.000109\n", - " 1845718 Bishop M 206 2015 0.000108\n", - " 1845719 Freddy M 206 2015 0.000108\n", - " 1845720 Reagan M 206 2015 0.000108\n", - " 1845721 Frankie M 205 2015 0.000108\n", - " 1845722 Malaki M 205 2015 0.000108\n", - " 1845725 Jayvion M 204 2015 0.000107\n", - " 1845726 Leroy M 204 2015 0.000107\n", - " 1845724 Deshawn M 204 2015 0.000107\n", - " 1845723 Camren M 204 2015 0.000107\n", - " 1845728 Jaydon M 203 2015 0.000107\n", - " 1845727 Briar M 203 2015 0.000107\n", - " 1845730 Ayan M 202 2015 0.000106\n", - "\n", - "[271877 rows x 5 columns]" - ] - }, - "execution_count": 16, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "top" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Q2: split by sex\n", - "\n", - "create two new dataframes, one `boys` with just those in `top` that are \"M\" and one `girls` with those in `top` who are \"F\"" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [ - { - "ename": "NameError", - "evalue": "name 'boys' is not defined", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mboys\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[0;31mNameError\u001b[0m: name 'boys' is not defined" - ] - } - ], - "source": [ - "boys" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## More analysis" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "How many times does each name appear, by year? This dataframe is the total number of births by year and name" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/usr/lib64/python3.6/site-packages/pandas/core/reshape/pivot.py:135: FutureWarning: 'year' is both a column name and an index level.\n", - "Defaulting to column but this will raise an ambiguity error in a future version\n", - " grouped = data.groupby(keys)\n" - ] - } - ], - "source": [ - "total_births = top.pivot_table(\"births\", index=\"year\", columns=\"name\", aggfunc=sum)" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
nameAadenAaliyahAanyaAaravAaronAarushAbAbagailAbbAbbey...ZoaZoeZoeyZoieZolaZollieZonaZoraZulaZuri
year
1880NaNNaNNaNNaN102.0NaNNaNNaNNaNNaN...8.023.0NaNNaN7.0NaN8.028.027.0NaN
1881NaNNaNNaNNaN94.0NaNNaNNaNNaNNaN...NaN22.0NaNNaN10.0NaN9.021.027.0NaN
1882NaNNaNNaNNaN85.0NaNNaNNaNNaNNaN...8.025.0NaNNaN9.0NaN17.032.021.0NaN
1883NaNNaNNaNNaN105.0NaNNaNNaNNaNNaN...NaN23.0NaNNaN10.0NaN11.035.025.0NaN
1884NaNNaNNaNNaN97.0NaNNaNNaNNaNNaN...13.031.0NaNNaN14.06.08.058.027.0NaN
1885NaNNaNNaNNaN88.0NaN6.0NaNNaNNaN...6.027.0NaNNaN12.06.014.048.038.0NaN
1886NaNNaNNaNNaN86.0NaNNaNNaNNaNNaN...13.025.0NaNNaN8.0NaN20.052.043.0NaN
1887NaNNaNNaNNaN78.0NaNNaNNaNNaNNaN...9.034.0NaNNaN23.0NaN28.046.033.0NaN
1888NaNNaNNaNNaN90.0NaNNaNNaNNaNNaN...11.042.0NaNNaN23.07.030.042.045.0NaN
1889NaNNaNNaNNaN85.0NaNNaNNaNNaNNaN...14.029.0NaNNaN22.0NaN29.053.055.0NaN
1890NaNNaNNaNNaN96.0NaNNaNNaN6.0NaN...NaN42.0NaNNaN32.07.027.060.065.0NaN
1891NaNNaNNaNNaN69.0NaNNaNNaNNaNNaN...NaN34.0NaNNaN29.06.014.052.045.0NaN
1892NaNNaNNaNNaN95.0NaNNaNNaNNaNNaN...NaN34.0NaNNaN27.0NaN25.066.053.0NaN
1893NaNNaNNaNNaN81.0NaNNaNNaNNaNNaN...NaN23.0NaNNaN34.06.015.067.070.0NaN
1894NaNNaNNaNNaN79.0NaNNaNNaNNaNNaN...NaN28.0NaNNaN51.0NaN23.066.064.0NaN
1895NaNNaNNaNNaN94.0NaNNaNNaNNaNNaN...NaN34.0NaNNaN60.011.038.055.055.0NaN
1896NaNNaNNaNNaN69.0NaNNaNNaNNaNNaN...NaN36.0NaNNaN47.0NaN38.072.065.0NaN
1897NaNNaNNaNNaN87.0NaNNaNNaNNaNNaN...NaN35.0NaNNaN51.0NaN28.067.079.0NaN
1898NaNNaNNaNNaN89.0NaNNaNNaNNaNNaN...NaN30.0NaNNaN62.0NaN28.065.083.0NaN
1899NaNNaNNaNNaN71.0NaNNaNNaNNaNNaN...NaN27.0NaNNaN49.06.031.056.060.0NaN
1900NaNNaNNaNNaN103.0NaNNaNNaNNaNNaN...NaN26.0NaNNaN48.09.044.099.071.0NaN
1901NaNNaNNaNNaN80.0NaNNaNNaNNaNNaN...NaN26.0NaNNaN56.0NaN31.058.057.0NaN
1902NaNNaNNaNNaN78.0NaNNaNNaNNaNNaN...NaN34.0NaNNaN58.0NaN23.058.066.0NaN
1903NaNNaNNaNNaN93.0NaNNaNNaNNaNNaN...NaN19.0NaNNaN64.0NaN41.083.074.0NaN
1904NaNNaNNaNNaN117.0NaNNaNNaNNaNNaN...NaN27.0NaNNaN46.0NaN35.054.074.0NaN
1905NaNNaNNaNNaN96.0NaNNaNNaNNaNNaN...NaN24.0NaNNaN66.08.024.055.061.0NaN
1906NaNNaNNaNNaN96.0NaNNaNNaNNaNNaN...NaN19.0NaNNaN59.0NaN37.064.058.0NaN
1907NaNNaNNaNNaN130.0NaNNaNNaNNaNNaN...NaN19.0NaNNaN53.011.039.092.072.0NaN
1908NaNNaNNaNNaN114.0NaNNaNNaNNaNNaN...NaN23.0NaNNaN70.0NaN31.059.053.0NaN
1909NaNNaNNaNNaN142.0NaNNaNNaNNaNNaN...NaN22.0NaNNaN59.0NaN39.057.076.0NaN
..................................................................
1986NaNNaNNaNNaN12690.0NaNNaNNaNNaN370.0...NaN213.0NaNNaNNaNNaNNaNNaNNaNNaN
1987NaNNaNNaNNaN12678.0NaNNaNNaNNaN327.0...NaN247.0NaNNaNNaNNaNNaNNaNNaNNaN
1988NaNNaNNaNNaN14397.0NaNNaNNaNNaN404.0...NaN241.0NaNNaNNaNNaNNaNNaNNaNNaN
1989NaNNaNNaNNaN15314.0NaNNaNNaNNaN470.0...NaN376.0NaNNaNNaNNaNNaNNaNNaNNaN
1990NaNNaNNaNNaN14550.0NaNNaNNaNNaN507.0...NaN478.0NaNNaNNaNNaNNaNNaNNaNNaN
1991NaNNaNNaNNaN14240.0NaNNaNNaNNaN451.0...NaN722.0NaNNaNNaNNaNNaNNaNNaNNaN
1992NaNNaNNaNNaN14506.0NaNNaNNaNNaN430.0...NaN981.0NaNNaNNaNNaNNaNNaNNaNNaN
1993NaNNaNNaNNaN13825.0NaNNaNNaNNaN503.0...NaN1193.0NaNNaNNaNNaNNaNNaNNaNNaN
1994NaN1451.0NaNNaN14380.0NaNNaNNaNNaN597.0...NaN1333.0NaNNaNNaNNaNNaNNaNNaNNaN
1995NaN1255.0NaNNaN13286.0NaNNaNNaNNaN549.0...NaN1726.0219.0NaNNaNNaNNaNNaNNaNNaN
1996NaN831.0NaNNaN11969.0NaNNaNNaNNaN552.0...NaN2064.0339.0NaNNaNNaNNaNNaNNaNNaN
1997NaN1738.0NaNNaN11166.0NaNNaNNaNNaN645.0...NaN2362.0407.0NaNNaNNaNNaNNaNNaNNaN
1998NaN1399.0NaNNaN10544.0NaNNaNNaNNaN661.0...NaN2692.0478.0225.0NaNNaNNaNNaNNaNNaN
1999NaN1088.0NaNNaN9852.0NaNNaN211.0NaN710.0...NaN3237.0563.0257.0NaNNaNNaNNaNNaNNaN
2000NaN1495.0NaNNaN9551.0NaNNaN222.0NaN660.0...NaN3785.0691.0320.0NaNNaNNaNNaNNaNNaN
2001NaN3352.0NaNNaN9534.0NaNNaN244.0NaN687.0...NaN4644.0822.0439.0NaNNaNNaNNaNNaNNaN
2002NaN4778.0NaNNaN8999.0NaNNaN256.0NaN600.0...NaN4884.01182.0438.0NaNNaNNaNNaNNaNNaN
2003NaN3671.0NaNNaN8859.0NaNNaN276.0NaN625.0...NaN5085.01469.0449.0NaNNaNNaNNaNNaNNaN
2004NaN3486.0NaNNaN8386.0NaNNaN258.0NaN504.0...NaN5362.01622.0515.0NaNNaNNaNNaNNaNNaN
2005NaN3456.0NaNNaN7799.0NaNNaN287.0NaN452.0...NaN4957.02270.0502.0NaNNaNNaNNaNNaNNaN
2006NaN3742.0NaNNaN8291.0NaNNaN298.0NaN404.0...NaN5152.02848.0531.0NaNNaNNaNNaNNaNNaN
2007NaN3952.0NaNNaN8933.0NaNNaN313.0NaN349.0...NaN4931.03031.0527.0NaNNaNNaNNaNNaNNaN
2008956.04038.0NaN219.08536.0NaNNaN320.0NaN344.0...NaN4779.03445.0493.0NaNNaNNaNNaNNaNNaN
20091267.04366.0NaN270.07966.0NaNNaN297.0NaN307.0...NaN5144.03991.0499.0NaNNaNNaNNaNNaNNaN
2010450.04659.0NaN438.07458.0227.0NaN281.0NaN299.0...NaN6263.05200.0508.0NaNNaNNaNNaNNaN259.0
2011274.05105.0NaN436.07610.0NaNNaNNaNNaN287.0...NaN6294.06394.0523.0NaNNaNNaNNaNNaN313.0
2012223.05499.0NaN435.07519.0NaNNaNNaNNaNNaN...NaN6445.07457.0516.0NaNNaNNaNNaNNaN434.0
2013203.05217.0NaN495.07289.0NaNNaNNaNNaNNaN...NaN5967.07224.0431.0NaNNaNNaNNaNNaN566.0
2014237.04871.0266.0531.07368.0NaNNaNNaNNaNNaN...NaN5857.07384.0365.0NaNNaNNaNNaNNaN664.0
2015296.04836.0NaN539.07113.0211.0NaNNaNNaNNaN...NaN5995.06900.0367.0NaNNaNNaNNaNNaN709.0
\n", - "

136 rows × 7062 columns

\n", - "
" - ], - "text/plain": [ - "name Aaden Aaliyah Aanya Aarav Aaron Aarush Ab Abagail Abb \\\n", - "year \n", - "1880 NaN NaN NaN NaN 102.0 NaN NaN NaN NaN \n", - "1881 NaN NaN NaN NaN 94.0 NaN NaN NaN NaN \n", - "1882 NaN NaN NaN NaN 85.0 NaN NaN NaN NaN \n", - "1883 NaN NaN NaN NaN 105.0 NaN NaN NaN NaN \n", - "1884 NaN NaN NaN NaN 97.0 NaN NaN NaN NaN \n", - "1885 NaN NaN NaN NaN 88.0 NaN 6.0 NaN NaN \n", - "1886 NaN NaN NaN NaN 86.0 NaN NaN NaN NaN \n", - "1887 NaN NaN NaN NaN 78.0 NaN NaN NaN NaN \n", - "1888 NaN NaN NaN NaN 90.0 NaN NaN NaN NaN \n", - "1889 NaN NaN NaN NaN 85.0 NaN NaN NaN NaN \n", - "1890 NaN NaN NaN NaN 96.0 NaN NaN NaN 6.0 \n", - "1891 NaN NaN NaN NaN 69.0 NaN NaN NaN NaN \n", - "1892 NaN NaN NaN NaN 95.0 NaN NaN NaN NaN \n", - "1893 NaN NaN NaN NaN 81.0 NaN NaN NaN NaN \n", - "1894 NaN NaN NaN NaN 79.0 NaN NaN NaN NaN \n", - "1895 NaN NaN NaN NaN 94.0 NaN NaN NaN NaN \n", - "1896 NaN NaN NaN NaN 69.0 NaN NaN NaN NaN \n", - "1897 NaN NaN NaN NaN 87.0 NaN NaN NaN NaN \n", - "1898 NaN NaN NaN NaN 89.0 NaN NaN NaN NaN \n", - "1899 NaN NaN NaN NaN 71.0 NaN NaN NaN NaN \n", - "1900 NaN NaN NaN NaN 103.0 NaN NaN NaN NaN \n", - "1901 NaN NaN NaN NaN 80.0 NaN NaN NaN NaN \n", - "1902 NaN NaN NaN NaN 78.0 NaN NaN NaN NaN \n", - "1903 NaN NaN NaN NaN 93.0 NaN NaN NaN NaN \n", - "1904 NaN NaN NaN NaN 117.0 NaN NaN NaN NaN \n", - "1905 NaN NaN NaN NaN 96.0 NaN NaN NaN NaN \n", - "1906 NaN NaN NaN NaN 96.0 NaN NaN NaN NaN \n", - "1907 NaN NaN NaN NaN 130.0 NaN NaN NaN NaN \n", - "1908 NaN NaN NaN NaN 114.0 NaN NaN NaN NaN \n", - "1909 NaN NaN NaN NaN 142.0 NaN NaN NaN NaN \n", - "... ... ... ... ... ... ... ... ... ... \n", - "1986 NaN NaN NaN NaN 12690.0 NaN NaN NaN NaN \n", - "1987 NaN NaN NaN NaN 12678.0 NaN NaN NaN NaN \n", - "1988 NaN NaN NaN NaN 14397.0 NaN NaN NaN NaN \n", - "1989 NaN NaN NaN NaN 15314.0 NaN NaN NaN NaN \n", - "1990 NaN NaN NaN NaN 14550.0 NaN NaN NaN NaN \n", - "1991 NaN NaN NaN NaN 14240.0 NaN NaN NaN NaN \n", - "1992 NaN NaN NaN NaN 14506.0 NaN NaN NaN NaN \n", - "1993 NaN NaN NaN NaN 13825.0 NaN NaN NaN NaN \n", - "1994 NaN 1451.0 NaN NaN 14380.0 NaN NaN NaN NaN \n", - "1995 NaN 1255.0 NaN NaN 13286.0 NaN NaN NaN NaN \n", - "1996 NaN 831.0 NaN NaN 11969.0 NaN NaN NaN NaN \n", - "1997 NaN 1738.0 NaN NaN 11166.0 NaN NaN NaN NaN \n", - "1998 NaN 1399.0 NaN NaN 10544.0 NaN NaN NaN NaN \n", - "1999 NaN 1088.0 NaN NaN 9852.0 NaN NaN 211.0 NaN \n", - "2000 NaN 1495.0 NaN NaN 9551.0 NaN NaN 222.0 NaN \n", - "2001 NaN 3352.0 NaN NaN 9534.0 NaN NaN 244.0 NaN \n", - "2002 NaN 4778.0 NaN NaN 8999.0 NaN NaN 256.0 NaN \n", - "2003 NaN 3671.0 NaN NaN 8859.0 NaN NaN 276.0 NaN \n", - "2004 NaN 3486.0 NaN NaN 8386.0 NaN NaN 258.0 NaN \n", - "2005 NaN 3456.0 NaN NaN 7799.0 NaN NaN 287.0 NaN \n", - "2006 NaN 3742.0 NaN NaN 8291.0 NaN NaN 298.0 NaN \n", - "2007 NaN 3952.0 NaN NaN 8933.0 NaN NaN 313.0 NaN \n", - "2008 956.0 4038.0 NaN 219.0 8536.0 NaN NaN 320.0 NaN \n", - "2009 1267.0 4366.0 NaN 270.0 7966.0 NaN NaN 297.0 NaN \n", - "2010 450.0 4659.0 NaN 438.0 7458.0 227.0 NaN 281.0 NaN \n", - "2011 274.0 5105.0 NaN 436.0 7610.0 NaN NaN NaN NaN \n", - "2012 223.0 5499.0 NaN 435.0 7519.0 NaN NaN NaN NaN \n", - "2013 203.0 5217.0 NaN 495.0 7289.0 NaN NaN NaN NaN \n", - "2014 237.0 4871.0 266.0 531.0 7368.0 NaN NaN NaN NaN \n", - "2015 296.0 4836.0 NaN 539.0 7113.0 211.0 NaN NaN NaN \n", - "\n", - "name Abbey ... Zoa Zoe Zoey Zoie Zola Zollie Zona Zora \\\n", - "year ... \n", - "1880 NaN ... 8.0 23.0 NaN NaN 7.0 NaN 8.0 28.0 \n", - "1881 NaN ... NaN 22.0 NaN NaN 10.0 NaN 9.0 21.0 \n", - "1882 NaN ... 8.0 25.0 NaN NaN 9.0 NaN 17.0 32.0 \n", - "1883 NaN ... NaN 23.0 NaN NaN 10.0 NaN 11.0 35.0 \n", - "1884 NaN ... 13.0 31.0 NaN NaN 14.0 6.0 8.0 58.0 \n", - "1885 NaN ... 6.0 27.0 NaN NaN 12.0 6.0 14.0 48.0 \n", - "1886 NaN ... 13.0 25.0 NaN NaN 8.0 NaN 20.0 52.0 \n", - "1887 NaN ... 9.0 34.0 NaN NaN 23.0 NaN 28.0 46.0 \n", - "1888 NaN ... 11.0 42.0 NaN NaN 23.0 7.0 30.0 42.0 \n", - "1889 NaN ... 14.0 29.0 NaN NaN 22.0 NaN 29.0 53.0 \n", - "1890 NaN ... NaN 42.0 NaN NaN 32.0 7.0 27.0 60.0 \n", - "1891 NaN ... NaN 34.0 NaN NaN 29.0 6.0 14.0 52.0 \n", - "1892 NaN ... NaN 34.0 NaN NaN 27.0 NaN 25.0 66.0 \n", - "1893 NaN ... NaN 23.0 NaN NaN 34.0 6.0 15.0 67.0 \n", - "1894 NaN ... NaN 28.0 NaN NaN 51.0 NaN 23.0 66.0 \n", - "1895 NaN ... NaN 34.0 NaN NaN 60.0 11.0 38.0 55.0 \n", - "1896 NaN ... NaN 36.0 NaN NaN 47.0 NaN 38.0 72.0 \n", - "1897 NaN ... NaN 35.0 NaN NaN 51.0 NaN 28.0 67.0 \n", - "1898 NaN ... NaN 30.0 NaN NaN 62.0 NaN 28.0 65.0 \n", - "1899 NaN ... NaN 27.0 NaN NaN 49.0 6.0 31.0 56.0 \n", - "1900 NaN ... NaN 26.0 NaN NaN 48.0 9.0 44.0 99.0 \n", - "1901 NaN ... NaN 26.0 NaN NaN 56.0 NaN 31.0 58.0 \n", - "1902 NaN ... NaN 34.0 NaN NaN 58.0 NaN 23.0 58.0 \n", - "1903 NaN ... NaN 19.0 NaN NaN 64.0 NaN 41.0 83.0 \n", - "1904 NaN ... NaN 27.0 NaN NaN 46.0 NaN 35.0 54.0 \n", - "1905 NaN ... NaN 24.0 NaN NaN 66.0 8.0 24.0 55.0 \n", - "1906 NaN ... NaN 19.0 NaN NaN 59.0 NaN 37.0 64.0 \n", - "1907 NaN ... NaN 19.0 NaN NaN 53.0 11.0 39.0 92.0 \n", - "1908 NaN ... NaN 23.0 NaN NaN 70.0 NaN 31.0 59.0 \n", - "1909 NaN ... NaN 22.0 NaN NaN 59.0 NaN 39.0 57.0 \n", - "... ... ... ... ... ... ... ... ... ... ... \n", - "1986 370.0 ... NaN 213.0 NaN NaN NaN NaN NaN NaN \n", - "1987 327.0 ... NaN 247.0 NaN NaN NaN NaN NaN NaN \n", - "1988 404.0 ... NaN 241.0 NaN NaN NaN NaN NaN NaN \n", - "1989 470.0 ... NaN 376.0 NaN NaN NaN NaN NaN NaN \n", - "1990 507.0 ... NaN 478.0 NaN NaN NaN NaN NaN NaN \n", - "1991 451.0 ... NaN 722.0 NaN NaN NaN NaN NaN NaN \n", - "1992 430.0 ... NaN 981.0 NaN NaN NaN NaN NaN NaN \n", - "1993 503.0 ... NaN 1193.0 NaN NaN NaN NaN NaN NaN \n", - "1994 597.0 ... NaN 1333.0 NaN NaN NaN NaN NaN NaN \n", - "1995 549.0 ... NaN 1726.0 219.0 NaN NaN NaN NaN NaN \n", - "1996 552.0 ... NaN 2064.0 339.0 NaN NaN NaN NaN NaN \n", - "1997 645.0 ... NaN 2362.0 407.0 NaN NaN NaN NaN NaN \n", - "1998 661.0 ... NaN 2692.0 478.0 225.0 NaN NaN NaN NaN \n", - "1999 710.0 ... NaN 3237.0 563.0 257.0 NaN NaN NaN NaN \n", - "2000 660.0 ... NaN 3785.0 691.0 320.0 NaN NaN NaN NaN \n", - "2001 687.0 ... NaN 4644.0 822.0 439.0 NaN NaN NaN NaN \n", - "2002 600.0 ... NaN 4884.0 1182.0 438.0 NaN NaN NaN NaN \n", - "2003 625.0 ... NaN 5085.0 1469.0 449.0 NaN NaN NaN NaN \n", - "2004 504.0 ... NaN 5362.0 1622.0 515.0 NaN NaN NaN NaN \n", - "2005 452.0 ... NaN 4957.0 2270.0 502.0 NaN NaN NaN NaN \n", - "2006 404.0 ... NaN 5152.0 2848.0 531.0 NaN NaN NaN NaN \n", - "2007 349.0 ... NaN 4931.0 3031.0 527.0 NaN NaN NaN NaN \n", - "2008 344.0 ... NaN 4779.0 3445.0 493.0 NaN NaN NaN NaN \n", - "2009 307.0 ... NaN 5144.0 3991.0 499.0 NaN NaN NaN NaN \n", - "2010 299.0 ... NaN 6263.0 5200.0 508.0 NaN NaN NaN NaN \n", - "2011 287.0 ... NaN 6294.0 6394.0 523.0 NaN NaN NaN NaN \n", - "2012 NaN ... NaN 6445.0 7457.0 516.0 NaN NaN NaN NaN \n", - "2013 NaN ... NaN 5967.0 7224.0 431.0 NaN NaN NaN NaN \n", - "2014 NaN ... NaN 5857.0 7384.0 365.0 NaN NaN NaN NaN \n", - "2015 NaN ... NaN 5995.0 6900.0 367.0 NaN NaN NaN NaN \n", - "\n", - "name Zula Zuri \n", - "year \n", - "1880 27.0 NaN \n", - "1881 27.0 NaN \n", - "1882 21.0 NaN \n", - "1883 25.0 NaN \n", - "1884 27.0 NaN \n", - "1885 38.0 NaN \n", - "1886 43.0 NaN \n", - "1887 33.0 NaN \n", - "1888 45.0 NaN \n", - "1889 55.0 NaN \n", - "1890 65.0 NaN \n", - "1891 45.0 NaN \n", - "1892 53.0 NaN \n", - "1893 70.0 NaN \n", - "1894 64.0 NaN \n", - "1895 55.0 NaN \n", - "1896 65.0 NaN \n", - "1897 79.0 NaN \n", - "1898 83.0 NaN \n", - "1899 60.0 NaN \n", - "1900 71.0 NaN \n", - "1901 57.0 NaN \n", - "1902 66.0 NaN \n", - "1903 74.0 NaN \n", - "1904 74.0 NaN \n", - "1905 61.0 NaN \n", - "1906 58.0 NaN \n", - "1907 72.0 NaN \n", - "1908 53.0 NaN \n", - "1909 76.0 NaN \n", - "... ... ... \n", - "1986 NaN NaN \n", - "1987 NaN NaN \n", - "1988 NaN NaN \n", - "1989 NaN NaN \n", - "1990 NaN NaN \n", - "1991 NaN NaN \n", - "1992 NaN NaN \n", - "1993 NaN NaN \n", - "1994 NaN NaN \n", - "1995 NaN NaN \n", - "1996 NaN NaN \n", - "1997 NaN NaN \n", - "1998 NaN NaN \n", - "1999 NaN NaN \n", - "2000 NaN NaN \n", - "2001 NaN NaN \n", - "2002 NaN NaN \n", - "2003 NaN NaN \n", - "2004 NaN NaN \n", - "2005 NaN NaN \n", - "2006 NaN NaN \n", - "2007 NaN NaN \n", - "2008 NaN NaN \n", - "2009 NaN NaN \n", - "2010 NaN 259.0 \n", - "2011 NaN 313.0 \n", - "2012 NaN 434.0 \n", - "2013 NaN 566.0 \n", - "2014 NaN 664.0 \n", - "2015 NaN 709.0 \n", - "\n", - "[136 rows x 7062 columns]" - ] - }, - "execution_count": 19, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "total_births" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "year\n", - "1880 9701.0\n", - "1881 8795.0\n", - "1882 9597.0\n", - "1883 8934.0\n", - "1884 9428.0\n", - "1885 8801.0\n", - "1886 9074.0\n", - "1887 8166.0\n", - "1888 9299.0\n", - "1889 8600.0\n", - "1890 8558.0\n", - "1891 7724.0\n", - "1892 9093.0\n", - "1893 8110.0\n", - "1894 8298.0\n", - "1895 8381.0\n", - "1896 8189.0\n", - "1897 7596.0\n", - "1898 8214.0\n", - "1899 7030.0\n", - "1900 9875.0\n", - "1901 6938.0\n", - "1902 7945.0\n", - "1903 7649.0\n", - "1904 8148.0\n", - "1905 8103.0\n", - "1906 8307.0\n", - "1907 9048.0\n", - "1908 9400.0\n", - "1909 9658.0\n", - " ... \n", - "1986 30410.0\n", - "1987 29732.0\n", - "1988 29561.0\n", - "1989 29838.0\n", - "1990 29066.0\n", - "1991 27798.0\n", - "1992 26241.0\n", - "1993 24989.0\n", - "1994 24175.0\n", - "1995 23232.0\n", - "1996 22169.0\n", - "1997 21372.0\n", - "1998 20615.0\n", - "1999 20341.0\n", - "2000 20084.0\n", - "2001 18879.0\n", - "2002 17442.0\n", - "2003 17222.0\n", - "2004 16439.0\n", - "2005 15760.0\n", - "2006 15153.0\n", - "2007 14424.0\n", - "2008 13310.0\n", - "2009 12103.0\n", - "2010 11543.0\n", - "2011 11027.0\n", - "2012 10607.0\n", - "2013 10687.0\n", - "2014 10659.0\n", - "2015 10303.0\n", - "Name: John, Length: 136, dtype: float64" - ] - }, - "execution_count": 20, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "total_births[\"John\"]" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We can see that this matches what we had in our previous data frame" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
namesexbirthsyearprop
yearsex
1880F228JohnF4618800.000506
M942JohnM965518800.087383
1881F2312JohnF2618810.000283
M2938JohnM876918810.087043
1882F4212JohnF4018820.000371
M4963JohnM955718820.084065
1883F6340JohnF4018830.000356
M7116JohnM889418830.085007
1884F8454JohnF4018840.000310
M9318JohnM938818840.082032
1885F10739JohnF4518850.000338
M11640JohnM875618850.081225
1886F13036JohnF4818860.000332
M14019JohnM902618860.081473
1887F15414JohnF5618870.000384
M16435JohnM811018870.079968
1888F17834JohnF5218880.000291
M18976JohnM924718880.076516
1889F20498JohnF5218890.000292
M21632JohnM854818890.077300
1890F23086JohnF5618900.000294
M24277JohnM850218900.076577
1891F25816JohnF4418910.000237
M26971JohnM768018910.075895
1892F28460JohnF5418920.000254
M29759JohnM903918920.074068
1893F31361JohnF6118930.000287
M32671JohnM804918930.071663
1894F34211JohnF6018940.000269
M35552JohnM823818940.071158
........................
1987M1015237JohnM2953519870.015830
1988F1024361JohnF16719880.000094
M1037259JohnM2939419880.015367
1989M1060288JohnM2983819890.014918
1990M1084747JohnM2906619900.014160
1991M1109686JohnM2779819910.013765
1992M1134943JohnM2624119920.013144
1993M1160554JohnM2498919930.012746
1994M1186469JohnM2417519940.012517
1995M1212466JohnM2323219950.012208
1996M1238683JohnM2216919960.011708
1997M1265371JohnM2137219970.011342
1998M1292776JohnM2061519980.010791
1999M1321012JohnM2034119990.010600
2000M1350272JohnM2008420000.010234
2001M1380350JohnM1887920010.009724
2002M1410730JohnM1744220020.008991
2003M1441635JohnM1722220030.008726
2004M1473212JohnM1643920040.008290
2005M1505607JohnM1576020050.007899
2006M1539014JohnM1515320060.007382
2007M1573596JohnM1442420070.006960
2008M1608427JohnM1331020080.006535
2009M1643211JohnM1210320090.006113
2010M1677534JohnM1154320100.006029
2011M1711330JohnM1102720110.005821
2012M1745139JohnM1060720120.005610
2013M1778561JohnM1068720130.005673
2014M1811736JohnM1065920140.005578
2015M1844755JohnM1030320150.005426
\n", - "

245 rows × 5 columns

\n", - "
" - ], - "text/plain": [ - " name sex births year prop\n", - "year sex \n", - "1880 F 228 John F 46 1880 0.000506\n", - " M 942 John M 9655 1880 0.087383\n", - "1881 F 2312 John F 26 1881 0.000283\n", - " M 2938 John M 8769 1881 0.087043\n", - "1882 F 4212 John F 40 1882 0.000371\n", - " M 4963 John M 9557 1882 0.084065\n", - "1883 F 6340 John F 40 1883 0.000356\n", - " M 7116 John M 8894 1883 0.085007\n", - "1884 F 8454 John F 40 1884 0.000310\n", - " M 9318 John M 9388 1884 0.082032\n", - "1885 F 10739 John F 45 1885 0.000338\n", - " M 11640 John M 8756 1885 0.081225\n", - "1886 F 13036 John F 48 1886 0.000332\n", - " M 14019 John M 9026 1886 0.081473\n", - "1887 F 15414 John F 56 1887 0.000384\n", - " M 16435 John M 8110 1887 0.079968\n", - "1888 F 17834 John F 52 1888 0.000291\n", - " M 18976 John M 9247 1888 0.076516\n", - "1889 F 20498 John F 52 1889 0.000292\n", - " M 21632 John M 8548 1889 0.077300\n", - "1890 F 23086 John F 56 1890 0.000294\n", - " M 24277 John M 8502 1890 0.076577\n", - "1891 F 25816 John F 44 1891 0.000237\n", - " M 26971 John M 7680 1891 0.075895\n", - "1892 F 28460 John F 54 1892 0.000254\n", - " M 29759 John M 9039 1892 0.074068\n", - "1893 F 31361 John F 61 1893 0.000287\n", - " M 32671 John M 8049 1893 0.071663\n", - "1894 F 34211 John F 60 1894 0.000269\n", - " M 35552 John M 8238 1894 0.071158\n", - "... ... .. ... ... ...\n", - "1987 M 1015237 John M 29535 1987 0.015830\n", - "1988 F 1024361 John F 167 1988 0.000094\n", - " M 1037259 John M 29394 1988 0.015367\n", - "1989 M 1060288 John M 29838 1989 0.014918\n", - "1990 M 1084747 John M 29066 1990 0.014160\n", - "1991 M 1109686 John M 27798 1991 0.013765\n", - "1992 M 1134943 John M 26241 1992 0.013144\n", - "1993 M 1160554 John M 24989 1993 0.012746\n", - "1994 M 1186469 John M 24175 1994 0.012517\n", - "1995 M 1212466 John M 23232 1995 0.012208\n", - "1996 M 1238683 John M 22169 1996 0.011708\n", - "1997 M 1265371 John M 21372 1997 0.011342\n", - "1998 M 1292776 John M 20615 1998 0.010791\n", - "1999 M 1321012 John M 20341 1999 0.010600\n", - "2000 M 1350272 John M 20084 2000 0.010234\n", - "2001 M 1380350 John M 18879 2001 0.009724\n", - "2002 M 1410730 John M 17442 2002 0.008991\n", - "2003 M 1441635 John M 17222 2003 0.008726\n", - "2004 M 1473212 John M 16439 2004 0.008290\n", - "2005 M 1505607 John M 15760 2005 0.007899\n", - "2006 M 1539014 John M 15153 2006 0.007382\n", - "2007 M 1573596 John M 14424 2007 0.006960\n", - "2008 M 1608427 John M 13310 2008 0.006535\n", - "2009 M 1643211 John M 12103 2009 0.006113\n", - "2010 M 1677534 John M 11543 2010 0.006029\n", - "2011 M 1711330 John M 11027 2011 0.005821\n", - "2012 M 1745139 John M 10607 2012 0.005610\n", - "2013 M 1778561 John M 10687 2013 0.005673\n", - "2014 M 1811736 John M 10659 2014 0.005578\n", - "2015 M 1844755 John M 10303 2015 0.005426\n", - "\n", - "[245 rows x 5 columns]" - ] - }, - "execution_count": 21, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "top[top.name==\"John\"]" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Which names are the most popular of all time?" - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "name\n", - "James 5142912.0\n", - "John 5116313.0\n", - "Robert 4822265.0\n", - "Michael 4343106.0\n", - "Mary 4131873.0\n", - "William 4086383.0\n", - "David 3600738.0\n", - "Joseph 2589732.0\n", - "Richard 2565300.0\n", - "Charles 2381863.0\n", - "Thomas 2295502.0\n", - "Christopher 2011702.0\n", - "Daniel 1886299.0\n", - "Elizabeth 1613326.0\n", - "Patricia 1574798.0\n", - "Matthew 1569338.0\n", - "Jennifer 1467548.0\n", - "George 1465334.0\n", - "Linda 1454380.0\n", - "Barbara 1436646.0\n", - "Anthony 1417510.0\n", - "Donald 1412138.0\n", - "Paul 1385235.0\n", - "Mark 1347586.0\n", - "Edward 1286089.0\n", - "Steven 1276499.0\n", - "Kenneth 1269967.0\n", - "Andrew 1267471.0\n", - "Margaret 1244662.0\n", - "Joshua 1187636.0\n", - " ... \n", - "Amado 5.0\n", - "Pryor 5.0\n", - "Laban 5.0\n", - "Sheppard 5.0\n", - "Vinia 5.0\n", - "Tella 5.0\n", - "Tilford 5.0\n", - "Estie 5.0\n", - "Jep 5.0\n", - "Ollis 5.0\n", - "Clide 5.0\n", - "Tilmon 5.0\n", - "Affie 5.0\n", - "Lovisa 5.0\n", - "Alys 5.0\n", - "Etter 5.0\n", - "Lenzy 5.0\n", - "Maryland 5.0\n", - "Orlie 5.0\n", - "Orr 5.0\n", - "Lovey 5.0\n", - "Mathis 5.0\n", - "Orva 5.0\n", - "Matthews 5.0\n", - "Mattye 5.0\n", - "Voyle 5.0\n", - "Fronnie 5.0\n", - "Cordella 5.0\n", - "Bertina 5.0\n", - "Manervia 5.0\n", - "Length: 7062, dtype: float64" - ] - }, - "execution_count": 22, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "a = total_births.sum()\n", - "a.sort_values(ascending=False)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let's plot naming trends, for a few of the most popular names" - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 23, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "subset = total_births[[\"Michael\", \"Jennifer\"]]\n", - "subset.plot()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Exercises" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Q3: unique names\n", - "\n", - "how many unique names appear in our top 1000 list? Use the `.unique()` method on the \"name\" `Series` to get a an array (it will actually be a NumPy `ndarray` of objects)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Q4: gender neutral names\n", - "\n", - "What are all the names that appear for both boys and girls?" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Q5: name diversity\n", - "\n", - "We want to make a plot of how many names it takes to reach 50% of the births in a given year. Let's start with the boys names:" - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "metadata": {}, - "outputs": [], - "source": [ - "boys = top[top.sex == \"M\"]" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now, to understand the process, let's work just on a particular year, 2015" - ] - }, - { - "cell_type": "code", - "execution_count": 25, - "metadata": {}, - "outputs": [], - "source": [ - "b15 = boys[boys.year == 2015]" - ] - }, - { - "cell_type": "code", - "execution_count": 26, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 26, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "b15.info" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We'll use the `cumsum()` property to do a cumulative sum over the `prop` column we added previously" - ] - }, - { - "cell_type": "code", - "execution_count": 27, - "metadata": {}, - "outputs": [], - "source": [ - "prop_cumsum = b15.sort_values(by=\"prop\", ascending=False)[\"prop\"].cumsum()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "and now we can use `searchsorted` to return the position where \"if the corresponding elements in v were inserted before the indices, the order of self would be preserved.\" (see http://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.searchsorted.html)" - ] - }, - { - "cell_type": "code", - "execution_count": 28, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array([134])" - ] - }, - "execution_count": 28, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "prop_cumsum.searchsorted(0.5)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Since we start counting at 0, we add 1 to this to get the number of names needed in this year to reach 50% of births." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now generalize this to a function that you can use `apply()` on and make a plot of the number of names to reach 50% by year" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.6.5" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/content/07-pandas/pandas-experiments.ipynb b/content/07-pandas/pandas-experiments.ipynb deleted file mode 100644 index 21660d13..00000000 --- a/content/07-pandas/pandas-experiments.ipynb +++ /dev/null @@ -1,719 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "import pandas as pd" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Sort by Two Columns" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [], - "source": [ - "df = pd.DataFrame(np.random.randint(1, 5, (10,2)), columns=['a','b'])\n", - "df.sort_values([\"a\", \"b\"], inplace=True) " - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
ab
412
213
714
822
623
024
132
532
933
334
\n", - "
" - ], - "text/plain": [ - " a b\n", - "4 1 2\n", - "2 1 3\n", - "7 1 4\n", - "8 2 2\n", - "6 2 3\n", - "0 2 4\n", - "1 3 2\n", - "5 3 2\n", - "9 3 3\n", - "3 3 4" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Duplicated Labels" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [], - "source": [ - "df = pd.DataFrame(np.random.randint(1, 5, (15,3)), columns=['a','b','b'])" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
abb
0131
1144
2221
3414
4322
5122
6331
7412
8113
9134
10314
11423
12132
13412
14234
\n", - "
" - ], - "text/plain": [ - " a b b\n", - "0 1 3 1\n", - "1 1 4 4\n", - "2 2 2 1\n", - "3 4 1 4\n", - "4 3 2 2\n", - "5 1 2 2\n", - "6 3 3 1\n", - "7 4 1 2\n", - "8 1 1 3\n", - "9 1 3 4\n", - "10 3 1 4\n", - "11 4 2 3\n", - "12 1 3 2\n", - "13 4 1 2\n", - "14 2 3 4" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
bb
031
144
221
314
422
522
631
712
813
934
1014
1123
1232
1312
1434
\n", - "
" - ], - "text/plain": [ - " b b\n", - "0 3 1\n", - "1 4 4\n", - "2 2 1\n", - "3 1 4\n", - "4 2 2\n", - "5 2 2\n", - "6 3 1\n", - "7 1 2\n", - "8 1 3\n", - "9 3 4\n", - "10 1 4\n", - "11 2 3\n", - "12 3 2\n", - "13 1 2\n", - "14 3 4" - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df[\"b\"]" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "data": { - "text/plain": [ - "0 3\n", - "1 4\n", - "2 2\n", - "3 1\n", - "4 2\n", - "5 2\n", - "6 3\n", - "7 1\n", - "8 1\n", - "9 3\n", - "10 1\n", - "11 2\n", - "12 3\n", - "13 1\n", - "14 3\n", - "Name: b, dtype: int64" - ] - }, - "execution_count": 16, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df.iloc[:,1]" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## `pivot_table` vs. `groupby`\n", - "\n", - "see https://stackoverflow.com/questions/34702815/pandas-group-by-and-pivot-table-difference" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
abc
0110.122273
1210.785140
2310.003996
3120.669116
4220.599575
5320.095478
\n", - "
" - ], - "text/plain": [ - " a b c\n", - "0 1 1 0.122273\n", - "1 2 1 0.785140\n", - "2 3 1 0.003996\n", - "3 1 2 0.669116\n", - "4 2 2 0.599575\n", - "5 3 2 0.095478" - ] - }, - "execution_count": 19, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df = pd.DataFrame({\"a\": [1,2,3,1,2,3], \"b\":[1,1,1,2,2,2], \"c\":np.random.rand(6)})\n", - "df" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "A pivot table creates a new dataframe, with the specified column in the original treated as the index, and any columns given as columns in the dataframe, with the values taken to be \"c\"" - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
b12
a
10.1222730.669116
20.7851400.599575
30.0039960.095478
\n", - "
" - ], - "text/plain": [ - "b 1 2\n", - "a \n", - "1 0.122273 0.669116\n", - "2 0.785140 0.599575\n", - "3 0.003996 0.095478" - ] - }, - "execution_count": 24, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df.pivot_table(\"c\", index=[\"a\"], columns=[\"b\"]) " - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "a b\n", - "1 1 0.122273\n", - " 2 0.669116\n", - "2 1 0.785140\n", - " 2 0.599575\n", - "3 1 0.003996\n", - " 2 0.095478\n", - "Name: c, dtype: float64" - ] - }, - "execution_count": 23, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df.groupby(['a','b'])['c'].sum()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.6.5" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/content/07-pandas/pandas-intro.ipynb b/content/07-pandas/pandas-intro.ipynb deleted file mode 100644 index 17a8e536..00000000 --- a/content/07-pandas/pandas-intro.ipynb +++ /dev/null @@ -1,5108 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Pandas" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "pandas extends the numpy ndarray to allow for a data-structure that labels the columns (called a data frame). You can kind of think about this functionality as operating how a spreadsheet might work.\n", - "\n", - "In this manner, it provides much of the same functionality of R -- the data frame provides the basis for data analysis.\n", - "\n", - "Nice documentation is here:\n", - "\n", - "http://pandas.pydata.org/pandas-docs/stable/dsintro.html#dsintro" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "import pandas as pd\n", - "import numpy as np\n", - "import matplotlib.pyplot as plt" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## series\n", - "\n", - "A series is a labeled array. It looks superficially like a dictionary, but is fixed size, and can handle missing values. It also can also be operated on with any numpy operation or the standard operators (a dictionary cannot). The labels are referred to as the _index_.\n", - "\n", - "Some examples from: http://pandas.pydata.org/pandas-docs/stable/dsintro.html" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "a -0.272166\n", - "b -0.594024\n", - "c -0.533180\n", - "d -0.666801\n", - "e -0.749968\n", - "dtype: float64" - ] - }, - "execution_count": 2, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "s = pd.Series(np.random.randn(5), index=['a', 'b', 'c', 'd', 'e'])\n", - "s" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Index(['a', 'b', 'c', 'd', 'e'], dtype='object')" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "s.index" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "If you don't specify an index, one will be made up for you" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "0 -0.098297\n", - "1 -0.840109\n", - "2 1.282849\n", - "3 0.475101\n", - "4 -0.283392\n", - "dtype: float64" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "pd.Series(np.random.randn(5))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "you can initialize from a dictionary. By default it will use the dictionary keys (sorted) as the index" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "a 0.0\n", - "b 1.0\n", - "c 2.0\n", - "dtype: float64" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "d = {'a' : 0., 'b' : 1., 'c' : 2.}\n", - "pd.Series(d)" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "b 1.0\n", - "c 2.0\n", - "d NaN\n", - "a 0.0\n", - "dtype: float64" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "pd.Series(d, index=['b', 'c', 'd', 'a'])" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Note that NaN indicates a missing value" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "you can operate on a series as you would any ndarray" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "a -0.272166\n", - "b -0.594024\n", - "c -0.533180\n", - "d -0.666801\n", - "e -0.749968\n", - "dtype: float64" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "s" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "-0.27216618170818768" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "s[0]" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "a -0.272166\n", - "b -0.594024\n", - "c -0.533180\n", - "dtype: float64" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "s[:3]" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "a -0.272166\n", - "c -0.533180\n", - "dtype: float64" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "s[s > s.median()]" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "a 0.761728\n", - "b 0.552101\n", - "c 0.586736\n", - "d 0.513348\n", - "e 0.472382\n", - "dtype: float64" - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "np.exp(s)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "you can also index by label -- this mimics the behavior of a dictionary" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "-0.27216618170818768" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "s['a']" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "-0.74996754801095999" - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "s['e']" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "True" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "'e' in s" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The `get()` method can be used to safely access an element if it is possible it does not exist -- you can specify a default to return in that case. The alternative is to use a `try` / `except` block." - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "nan" - ] - }, - "execution_count": 15, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "s.get('f', np.nan)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Operations, like those you use with an ndarray work fine on a Series" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "a -0.544332\n", - "b -1.188048\n", - "c -1.066360\n", - "d -1.333602\n", - "e -1.499935\n", - "dtype: float64" - ] - }, - "execution_count": 16, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "s + s" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "a -0.544332\n", - "b -1.188048\n", - "c -1.066360\n", - "d -1.333602\n", - "e -1.499935\n", - "dtype: float64" - ] - }, - "execution_count": 17, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "s * 2" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "note that operations are always done on like labels, so the following is not exactly the same as numpy arrays. In this sense, pandas results respect the union of indices " - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "a NaN\n", - "b -1.188048\n", - "c -1.066360\n", - "d -1.333602\n", - "e NaN\n", - "dtype: float64" - ] - }, - "execution_count": 18, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "s[1:] + s[:-1]" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "a series can have a name" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "0 1.026684\n", - "1 0.306580\n", - "2 0.135363\n", - "3 -0.352485\n", - "4 -0.188115\n", - "Name: something, dtype: float64" - ] - }, - "execution_count": 19, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "s = pd.Series(np.random.randn(5), name='something')\n", - "s" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## DataFrame\n", - "\n", - "The dataframe is like a spreadsheet -- the columns and rows have labels. It is 2-d. This is what you will usually use with pandas.\n", - "\n", - "you can initialize from:\n", - " * Dict of 1D ndarrays, lists, dicts, or Series\n", - " * 2-D numpy.ndarray\n", - " * Structured or record ndarray\n", - " * A Series\n", - " * Another DataFrame" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": {}, - "outputs": [], - "source": [ - "d = {'one' : pd.Series([1., 2., 3.], index=['b', 'a', 'c']),\n", - " 'two' : pd.Series([2, 1., 3., 4.], index=['b', 'a', 'c', 'd'])}" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
onetwo
a2.01.0
b1.02.0
c3.03.0
dNaN4.0
\n", - "
" - ], - "text/plain": [ - " one two\n", - "a 2.0 1.0\n", - "b 1.0 2.0\n", - "c 3.0 3.0\n", - "d NaN 4.0" - ] - }, - "execution_count": 21, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df = pd.DataFrame(d)\n", - "df" - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "one 2.0\n", - "two 2.5\n", - "dtype: float64" - ] - }, - "execution_count": 22, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df.mean()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "You can exclude some labels" - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
onetwo
dNaN4.0
b1.02.0
a2.01.0
\n", - "
" - ], - "text/plain": [ - " one two\n", - "d NaN 4.0\n", - "b 1.0 2.0\n", - "a 2.0 1.0" - ] - }, - "execution_count": 23, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "pd.DataFrame(d, index=['d', 'b', 'a'])" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Here's initialization from lists / ndarrays" - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "metadata": {}, - "outputs": [], - "source": [ - "d = {'one' : [1., 2., 3., 4.],\n", - " 'two' : [4., 3., 2., 1.]}" - ] - }, - { - "cell_type": "code", - "execution_count": 25, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
onetwo
01.04.0
12.03.0
23.02.0
34.01.0
\n", - "
" - ], - "text/plain": [ - " one two\n", - "0 1.0 4.0\n", - "1 2.0 3.0\n", - "2 3.0 2.0\n", - "3 4.0 1.0" - ] - }, - "execution_count": 25, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "pd.DataFrame(d)" - ] - }, - { - "cell_type": "code", - "execution_count": 26, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
onetwo
a1.04.0
b2.03.0
c3.02.0
d4.01.0
\n", - "
" - ], - "text/plain": [ - " one two\n", - "a 1.0 4.0\n", - "b 2.0 3.0\n", - "c 3.0 2.0\n", - "d 4.0 1.0" - ] - }, - "execution_count": 26, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "pd.DataFrame(d, index=['a', 'b', 'c', 'd'])" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "collapsed": true - }, - "source": [ - "there are lots of other initialization methods, e.g, list of dicts" - ] - }, - { - "cell_type": "code", - "execution_count": 27, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
abc
first12NaN
second51020.0
\n", - "
" - ], - "text/plain": [ - " a b c\n", - "first 1 2 NaN\n", - "second 5 10 20.0" - ] - }, - "execution_count": 27, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "data2 = [{'a': 1, 'b': 2}, {'a': 5, 'b': 10, 'c': 20}]\n", - "pd.DataFrame(data2, index=['first', 'second'])" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### working with the dataframe\n", - "\n", - "you can index it as it it were Series objects. Other access is as follows:\n", - "\n", - " * Select column: `df[col]` (returns Series)\n", - " * Select row by label: `df.loc[label]` (returns Series)\n", - " * Select row by integer location: `df.iloc[loc]` (returns Series)\n", - " * Slice rows: `df[5:10]` (returns DataFrame)\n", - " * Select rows by boolean vector: `df[bool_vec]` (return DataFrame)" - ] - }, - { - "cell_type": "code", - "execution_count": 28, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "a 2.0\n", - "b 1.0\n", - "c 3.0\n", - "d NaN\n", - "Name: one, dtype: float64" - ] - }, - "execution_count": 28, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df['one']" - ] - }, - { - "cell_type": "code", - "execution_count": 29, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
onetwo
a2.01.0
b1.02.0
c3.03.0
dNaN4.0
\n", - "
" - ], - "text/plain": [ - " one two\n", - "a 2.0 1.0\n", - "b 1.0 2.0\n", - "c 3.0 3.0\n", - "d NaN 4.0" - ] - }, - "execution_count": 29, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df" - ] - }, - { - "cell_type": "code", - "execution_count": 30, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "pandas.core.series.Series" - ] - }, - "execution_count": 30, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "type(df['one'])" - ] - }, - { - "cell_type": "code", - "execution_count": 31, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
onetwothreeflag
a2.01.02.0False
b1.02.02.0False
c3.03.09.0True
dNaN4.0NaNFalse
\n", - "
" - ], - "text/plain": [ - " one two three flag\n", - "a 2.0 1.0 2.0 False\n", - "b 1.0 2.0 2.0 False\n", - "c 3.0 3.0 9.0 True\n", - "d NaN 4.0 NaN False" - ] - }, - "execution_count": 31, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df['three'] = df['one'] * df['two']\n", - "df['flag'] = df['one'] > 2\n", - "df" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "you can also treat any index name as if it were a property" - ] - }, - { - "cell_type": "code", - "execution_count": 32, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "a 2.0\n", - "b 2.0\n", - "c 9.0\n", - "d NaN\n", - "Name: three, dtype: float64" - ] - }, - "execution_count": 32, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df.three" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "you can delete or pop columns---popping returns a `Series`" - ] - }, - { - "cell_type": "code", - "execution_count": 33, - "metadata": {}, - "outputs": [], - "source": [ - "del df['two']" - ] - }, - { - "cell_type": "code", - "execution_count": 34, - "metadata": {}, - "outputs": [], - "source": [ - "three = df.pop('three')" - ] - }, - { - "cell_type": "code", - "execution_count": 35, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
oneflag
a2.0False
b1.0False
c3.0True
dNaNFalse
\n", - "
" - ], - "text/plain": [ - " one flag\n", - "a 2.0 False\n", - "b 1.0 False\n", - "c 3.0 True\n", - "d NaN False" - ] - }, - "execution_count": 35, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df" - ] - }, - { - "cell_type": "code", - "execution_count": 36, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "a 2.0\n", - "b 2.0\n", - "c 9.0\n", - "d NaN\n", - "Name: three, dtype: float64" - ] - }, - "execution_count": 36, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "three" - ] - }, - { - "cell_type": "code", - "execution_count": 37, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "pandas.core.series.Series" - ] - }, - "execution_count": 37, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "type(three)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "initializing with a scalar propagates that scalar to all the rows" - ] - }, - { - "cell_type": "code", - "execution_count": 38, - "metadata": {}, - "outputs": [], - "source": [ - "df['foo'] = 'bar'" - ] - }, - { - "cell_type": "code", - "execution_count": 39, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
oneflagfoo
a2.0Falsebar
b1.0Falsebar
c3.0Truebar
dNaNFalsebar
\n", - "
" - ], - "text/plain": [ - " one flag foo\n", - "a 2.0 False bar\n", - "b 1.0 False bar\n", - "c 3.0 True bar\n", - "d NaN False bar" - ] - }, - "execution_count": 39, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## CSV\n", - "\n", - "you can also read from CSV\n", - "\n", - "Note, if there is stray whitespace in your strings in the CSV, pandas will keep it. This is a bit annoying, and you might need to investigate converters to get things properly formatted.\n", - "\n", - "There are similar methods for HDF5 and excel" - ] - }, - { - "cell_type": "code", - "execution_count": 40, - "metadata": {}, - "outputs": [], - "source": [ - "grades = pd.read_csv('sample.csv', index_col=\"student\", skipinitialspace=True)" - ] - }, - { - "cell_type": "code", - "execution_count": 41, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
hw 1hw 2hw 3hw 4exam
student
A10.09.010797
B8.07.09982
CNaN9.06575
D8.09.09990
ENaN10.0101095
F8.02.06766
G6.0NaN4560
H8.08.09884
I10.07.0101092
J10.06.09991
K8.07.06887
L3.08.05771
M9.09.08994
N8.010.09990
O10.010.010999
P8.09.081094
Q5.07.06578
\n", - "
" - ], - "text/plain": [ - " hw 1 hw 2 hw 3 hw 4 exam\n", - "student \n", - "A 10.0 9.0 10 7 97\n", - "B 8.0 7.0 9 9 82\n", - "C NaN 9.0 6 5 75\n", - "D 8.0 9.0 9 9 90\n", - "E NaN 10.0 10 10 95\n", - "F 8.0 2.0 6 7 66\n", - "G 6.0 NaN 4 5 60\n", - "H 8.0 8.0 9 8 84\n", - "I 10.0 7.0 10 10 92\n", - "J 10.0 6.0 9 9 91\n", - "K 8.0 7.0 6 8 87\n", - "L 3.0 8.0 5 7 71\n", - "M 9.0 9.0 8 9 94\n", - "N 8.0 10.0 9 9 90\n", - "O 10.0 10.0 10 9 99\n", - "P 8.0 9.0 8 10 94\n", - "Q 5.0 7.0 6 5 78" - ] - }, - "execution_count": 41, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "grades" - ] - }, - { - "cell_type": "code", - "execution_count": 42, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Index(['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N',\n", - " 'O', 'P', 'Q'],\n", - " dtype='object', name='student')" - ] - }, - "execution_count": 42, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "grades.index" - ] - }, - { - "cell_type": "code", - "execution_count": 43, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Index(['hw 1', 'hw 2', 'hw 3', 'hw 4', 'exam'], dtype='object')" - ] - }, - "execution_count": 43, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "grades.columns" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "A single student's grades" - ] - }, - { - "cell_type": "code", - "execution_count": 47, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "hw 1 10.0\n", - "hw 2 9.0\n", - "hw 3 10.0\n", - "hw 4 7.0\n", - "exam 97.0\n", - "Name: A, dtype: float64" - ] - }, - "execution_count": 47, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "grades.loc[\"A\"]" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "All the grades for the first homework" - ] - }, - { - "cell_type": "code", - "execution_count": 48, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "student\n", - "A 10.0\n", - "B 8.0\n", - "C NaN\n", - "D 8.0\n", - "E NaN\n", - "F 8.0\n", - "G 6.0\n", - "H 8.0\n", - "I 10.0\n", - "J 10.0\n", - "K 8.0\n", - "L 3.0\n", - "M 9.0\n", - "N 8.0\n", - "O 10.0\n", - "P 8.0\n", - "Q 5.0\n", - "Name: hw 1, dtype: float64" - ] - }, - "execution_count": 48, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "grades['hw 1']" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Creating a new column based on the existing ones" - ] - }, - { - "cell_type": "code", - "execution_count": 49, - "metadata": {}, - "outputs": [], - "source": [ - "grades['hw average'] = (grades['hw 1'] + grades['hw 2'] + grades['hw 3'] + grades['hw 4'])/4.0" - ] - }, - { - "cell_type": "code", - "execution_count": 50, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
hw 1hw 2hw 3hw 4examhw average
student
A10.09.0107979.00
B8.07.099828.25
CNaN9.06575NaN
D8.09.099908.75
ENaN10.0101095NaN
F8.02.067665.75
G6.0NaN4560NaN
H8.08.098848.25
I10.07.01010929.25
J10.06.099918.50
K8.07.068877.25
L3.08.057715.75
M9.09.089948.75
N8.010.099909.00
O10.010.0109999.75
P8.09.0810948.75
Q5.07.065785.75
\n", - "
" - ], - "text/plain": [ - " hw 1 hw 2 hw 3 hw 4 exam hw average\n", - "student \n", - "A 10.0 9.0 10 7 97 9.00\n", - "B 8.0 7.0 9 9 82 8.25\n", - "C NaN 9.0 6 5 75 NaN\n", - "D 8.0 9.0 9 9 90 8.75\n", - "E NaN 10.0 10 10 95 NaN\n", - "F 8.0 2.0 6 7 66 5.75\n", - "G 6.0 NaN 4 5 60 NaN\n", - "H 8.0 8.0 9 8 84 8.25\n", - "I 10.0 7.0 10 10 92 9.25\n", - "J 10.0 6.0 9 9 91 8.50\n", - "K 8.0 7.0 6 8 87 7.25\n", - "L 3.0 8.0 5 7 71 5.75\n", - "M 9.0 9.0 8 9 94 8.75\n", - "N 8.0 10.0 9 9 90 9.00\n", - "O 10.0 10.0 10 9 99 9.75\n", - "P 8.0 9.0 8 10 94 8.75\n", - "Q 5.0 7.0 6 5 78 5.75" - ] - }, - "execution_count": 50, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "grades" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "this didn't handle the missing data properly -- let's replace the NaNs with 0" - ] - }, - { - "cell_type": "code", - "execution_count": 51, - "metadata": {}, - "outputs": [], - "source": [ - "g2 = grades.fillna(0)" - ] - }, - { - "cell_type": "code", - "execution_count": 52, - "metadata": {}, - "outputs": [], - "source": [ - "g2['hw average'] = (g2['hw 1'] + g2['hw 2'] + g2['hw 3'] + g2['hw 4'])/4.0" - ] - }, - { - "cell_type": "code", - "execution_count": 53, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
hw 1hw 2hw 3hw 4examhw average
student
A10.09.0107979.00
B8.07.099828.25
C0.09.065755.00
D8.09.099908.75
E0.010.01010957.50
F8.02.067665.75
G6.00.045603.75
H8.08.098848.25
I10.07.01010929.25
J10.06.099918.50
K8.07.068877.25
L3.08.057715.75
M9.09.089948.75
N8.010.099909.00
O10.010.0109999.75
P8.09.0810948.75
Q5.07.065785.75
\n", - "
" - ], - "text/plain": [ - " hw 1 hw 2 hw 3 hw 4 exam hw average\n", - "student \n", - "A 10.0 9.0 10 7 97 9.00\n", - "B 8.0 7.0 9 9 82 8.25\n", - "C 0.0 9.0 6 5 75 5.00\n", - "D 8.0 9.0 9 9 90 8.75\n", - "E 0.0 10.0 10 10 95 7.50\n", - "F 8.0 2.0 6 7 66 5.75\n", - "G 6.0 0.0 4 5 60 3.75\n", - "H 8.0 8.0 9 8 84 8.25\n", - "I 10.0 7.0 10 10 92 9.25\n", - "J 10.0 6.0 9 9 91 8.50\n", - "K 8.0 7.0 6 8 87 7.25\n", - "L 3.0 8.0 5 7 71 5.75\n", - "M 9.0 9.0 8 9 94 8.75\n", - "N 8.0 10.0 9 9 90 9.00\n", - "O 10.0 10.0 10 9 99 9.75\n", - "P 8.0 9.0 8 10 94 8.75\n", - "Q 5.0 7.0 6 5 78 5.75" - ] - }, - "execution_count": 53, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "g2" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "For big dataframes, we can view just pieces" - ] - }, - { - "cell_type": "code", - "execution_count": 54, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
hw 1hw 2hw 3hw 4examhw average
student
A10.09.0107979.00
B8.07.099828.25
C0.09.065755.00
D8.09.099908.75
E0.010.01010957.50
\n", - "
" - ], - "text/plain": [ - " hw 1 hw 2 hw 3 hw 4 exam hw average\n", - "student \n", - "A 10.0 9.0 10 7 97 9.00\n", - "B 8.0 7.0 9 9 82 8.25\n", - "C 0.0 9.0 6 5 75 5.00\n", - "D 8.0 9.0 9 9 90 8.75\n", - "E 0.0 10.0 10 10 95 7.50" - ] - }, - "execution_count": 54, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "g2.head()" - ] - }, - { - "cell_type": "code", - "execution_count": 55, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
hw 1hw 2hw 3hw 4examhw average
student
P8.09.0810948.75
Q5.07.065785.75
\n", - "
" - ], - "text/plain": [ - " hw 1 hw 2 hw 3 hw 4 exam hw average\n", - "student \n", - "P 8.0 9.0 8 10 94 8.75\n", - "Q 5.0 7.0 6 5 78 5.75" - ] - }, - "execution_count": 55, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "g2.tail(2)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### statistics" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "we can get lots of statistics" - ] - }, - { - "cell_type": "code", - "execution_count": 56, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
hw 1hw 2hw 3hw 4examhw average
count17.00000017.00000017.00000017.00000017.00000017.000000
mean7.0000007.4705887.8823538.00000085.0000007.588235
std3.2210252.7412961.9647631.73205111.4072351.747635
min0.0000000.0000004.0000005.00000060.0000003.750000
25%6.0000007.0000006.0000007.00000078.0000005.750000
50%8.0000008.0000009.0000009.00000090.0000008.250000
75%9.0000009.0000009.0000009.00000094.0000008.750000
max10.00000010.00000010.00000010.00000099.0000009.750000
\n", - "
" - ], - "text/plain": [ - " hw 1 hw 2 hw 3 hw 4 exam hw average\n", - "count 17.000000 17.000000 17.000000 17.000000 17.000000 17.000000\n", - "mean 7.000000 7.470588 7.882353 8.000000 85.000000 7.588235\n", - "std 3.221025 2.741296 1.964763 1.732051 11.407235 1.747635\n", - "min 0.000000 0.000000 4.000000 5.000000 60.000000 3.750000\n", - "25% 6.000000 7.000000 6.000000 7.000000 78.000000 5.750000\n", - "50% 8.000000 8.000000 9.000000 9.000000 90.000000 8.250000\n", - "75% 9.000000 9.000000 9.000000 9.000000 94.000000 8.750000\n", - "max 10.000000 10.000000 10.000000 10.000000 99.000000 9.750000" - ] - }, - "execution_count": 56, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "g2.describe()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "want to sort by values?" - ] - }, - { - "cell_type": "code", - "execution_count": 57, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
hw 1hw 2hw 3hw 4examhw average
student
G6.00.045603.75
F8.02.067665.75
L3.08.057715.75
C0.09.065755.00
Q5.07.065785.75
B8.07.099828.25
H8.08.098848.25
K8.07.068877.25
D8.09.099908.75
N8.010.099909.00
J10.06.099918.50
I10.07.01010929.25
M9.09.089948.75
P8.09.0810948.75
E0.010.01010957.50
A10.09.0107979.00
O10.010.0109999.75
\n", - "
" - ], - "text/plain": [ - " hw 1 hw 2 hw 3 hw 4 exam hw average\n", - "student \n", - "G 6.0 0.0 4 5 60 3.75\n", - "F 8.0 2.0 6 7 66 5.75\n", - "L 3.0 8.0 5 7 71 5.75\n", - "C 0.0 9.0 6 5 75 5.00\n", - "Q 5.0 7.0 6 5 78 5.75\n", - "B 8.0 7.0 9 9 82 8.25\n", - "H 8.0 8.0 9 8 84 8.25\n", - "K 8.0 7.0 6 8 87 7.25\n", - "D 8.0 9.0 9 9 90 8.75\n", - "N 8.0 10.0 9 9 90 9.00\n", - "J 10.0 6.0 9 9 91 8.50\n", - "I 10.0 7.0 10 10 92 9.25\n", - "M 9.0 9.0 8 9 94 8.75\n", - "P 8.0 9.0 8 10 94 8.75\n", - "E 0.0 10.0 10 10 95 7.50\n", - "A 10.0 9.0 10 7 97 9.00\n", - "O 10.0 10.0 10 9 99 9.75" - ] - }, - "execution_count": 57, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "g2.sort_values(by=\"exam\")" - ] - }, - { - "cell_type": "code", - "execution_count": 58, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "hw 1 7.000000\n", - "hw 2 7.470588\n", - "hw 3 7.882353\n", - "hw 4 8.000000\n", - "exam 85.000000\n", - "hw average 7.588235\n", - "dtype: float64" - ] - }, - "execution_count": 58, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "g2.mean()" - ] - }, - { - "cell_type": "code", - "execution_count": 59, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "hw 1 8.00\n", - "hw 2 8.00\n", - "hw 3 9.00\n", - "hw 4 9.00\n", - "exam 90.00\n", - "hw average 8.25\n", - "dtype: float64" - ] - }, - "execution_count": 59, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "g2.median()" - ] - }, - { - "cell_type": "code", - "execution_count": 60, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "hw 1 10.00\n", - "hw 2 10.00\n", - "hw 3 10.00\n", - "hw 4 10.00\n", - "exam 99.00\n", - "hw average 9.75\n", - "dtype: float64" - ] - }, - "execution_count": 60, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "g2.max()" - ] - }, - { - "cell_type": "code", - "execution_count": 61, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
hw 1hw 2hw 3hw 4examhw average
student
A10.09.0107979.00
B8.07.099828.25
C0.09.065755.00
D8.09.099908.75
E0.010.01010957.50
F8.02.067665.75
G6.00.045603.75
H8.08.098848.25
I10.07.01010929.25
J10.06.099918.50
K8.07.068877.25
L3.08.057715.75
M9.09.089948.75
N8.010.099909.00
O10.010.0109999.75
P8.09.0810948.75
Q5.07.065785.75
\n", - "
" - ], - "text/plain": [ - " hw 1 hw 2 hw 3 hw 4 exam hw average\n", - "student \n", - "A 10.0 9.0 10 7 97 9.00\n", - "B 8.0 7.0 9 9 82 8.25\n", - "C 0.0 9.0 6 5 75 5.00\n", - "D 8.0 9.0 9 9 90 8.75\n", - "E 0.0 10.0 10 10 95 7.50\n", - "F 8.0 2.0 6 7 66 5.75\n", - "G 6.0 0.0 4 5 60 3.75\n", - "H 8.0 8.0 9 8 84 8.25\n", - "I 10.0 7.0 10 10 92 9.25\n", - "J 10.0 6.0 9 9 91 8.50\n", - "K 8.0 7.0 6 8 87 7.25\n", - "L 3.0 8.0 5 7 71 5.75\n", - "M 9.0 9.0 8 9 94 8.75\n", - "N 8.0 10.0 9 9 90 9.00\n", - "O 10.0 10.0 10 9 99 9.75\n", - "P 8.0 9.0 8 10 94 8.75\n", - "Q 5.0 7.0 6 5 78 5.75" - ] - }, - "execution_count": 61, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "g2" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "`.apply()` let's you apply a function to the `DataFrame`. By default, it will work over indices (e.g., applying your function on a column), treating the inputs as a `Series`. " - ] - }, - { - "cell_type": "code", - "execution_count": 62, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "hw 1 10.0\n", - "hw 2 10.0\n", - "hw 3 6.0\n", - "hw 4 5.0\n", - "exam 39.0\n", - "hw average 6.0\n", - "dtype: float64" - ] - }, - "execution_count": 62, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "g2.apply(lambda x: x.max() - x.min())" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### access" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Pandas provides optimizes methods for accessing data: .at, .iat, .loc, .iloc, and .ix" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The standard slice notation works for rows, but note *when using labels, both endpoints are included*" - ] - }, - { - "cell_type": "code", - "execution_count": 63, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
hw 1hw 2hw 3hw 4examhw average
student
E0.010.01010957.50
F8.02.067665.75
G6.00.045603.75
H8.08.098848.25
I10.07.01010929.25
\n", - "
" - ], - "text/plain": [ - " hw 1 hw 2 hw 3 hw 4 exam hw average\n", - "student \n", - "E 0.0 10.0 10 10 95 7.50\n", - "F 8.0 2.0 6 7 66 5.75\n", - "G 6.0 0.0 4 5 60 3.75\n", - "H 8.0 8.0 9 8 84 8.25\n", - "I 10.0 7.0 10 10 92 9.25" - ] - }, - "execution_count": 63, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "g2[\"E\":\"I\"]" - ] - }, - { - "cell_type": "code", - "execution_count": 64, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
hw 1exam
student
A10.097
B8.082
C0.075
D8.090
E0.095
F8.066
G6.060
H8.084
I10.092
J10.091
K8.087
L3.071
M9.094
N8.090
O10.099
P8.094
Q5.078
\n", - "
" - ], - "text/plain": [ - " hw 1 exam\n", - "student \n", - "A 10.0 97\n", - "B 8.0 82\n", - "C 0.0 75\n", - "D 8.0 90\n", - "E 0.0 95\n", - "F 8.0 66\n", - "G 6.0 60\n", - "H 8.0 84\n", - "I 10.0 92\n", - "J 10.0 91\n", - "K 8.0 87\n", - "L 3.0 71\n", - "M 9.0 94\n", - "N 8.0 90\n", - "O 10.0 99\n", - "P 8.0 94\n", - "Q 5.0 78" - ] - }, - "execution_count": 64, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "g2.loc[:,[\"hw 1\", \"exam\"]]" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "`at` is a faster access method" - ] - }, - { - "cell_type": "code", - "execution_count": 65, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "97" - ] - }, - "execution_count": 65, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "g2.at[\"A\",\"exam\"]" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The `i` routines work in index space, similar to how numpy does" - ] - }, - { - "cell_type": "code", - "execution_count": 66, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
hw 1hw 2
student
D8.09.0
E0.010.0
\n", - "
" - ], - "text/plain": [ - " hw 1 hw 2\n", - "student \n", - "D 8.0 9.0\n", - "E 0.0 10.0" - ] - }, - "execution_count": 66, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "g2.iloc[3:5,0:2]" - ] - }, - { - "cell_type": "code", - "execution_count": 67, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
hw 2hw 3hw 4exam
student
B7.09982
D9.09990
F2.06766
\n", - "
" - ], - "text/plain": [ - " hw 2 hw 3 hw 4 exam\n", - "student \n", - "B 7.0 9 9 82\n", - "D 9.0 9 9 90\n", - "F 2.0 6 7 66" - ] - }, - "execution_count": 67, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "g2.iloc[[1,3,5], [1,2,3,4]]" - ] - }, - { - "cell_type": "code", - "execution_count": 68, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "6" - ] - }, - "execution_count": 68, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "g2.iat[2,2]" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### boolean indexing" - ] - }, - { - "cell_type": "code", - "execution_count": 69, - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
hw 1hw 2hw 3hw 4examhw average
student
A10.09.0107979.00
E0.010.01010957.50
I10.07.01010929.25
J10.06.099918.50
M9.09.089948.75
O10.010.0109999.75
P8.09.0810948.75
\n", - "
" - ], - "text/plain": [ - " hw 1 hw 2 hw 3 hw 4 exam hw average\n", - "student \n", - "A 10.0 9.0 10 7 97 9.00\n", - "E 0.0 10.0 10 10 95 7.50\n", - "I 10.0 7.0 10 10 92 9.25\n", - "J 10.0 6.0 9 9 91 8.50\n", - "M 9.0 9.0 8 9 94 8.75\n", - "O 10.0 10.0 10 9 99 9.75\n", - "P 8.0 9.0 8 10 94 8.75" - ] - }, - "execution_count": 69, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "g2[g2.exam > 90]" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### np arrays" - ] - }, - { - "cell_type": "code", - "execution_count": 70, - "metadata": {}, - "outputs": [], - "source": [ - "g2.loc[:, \"new\"] = np.random.random(len(g2))" - ] - }, - { - "cell_type": "code", - "execution_count": 71, - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
hw 1hw 2hw 3hw 4examhw averagenew
student
A10.09.0107979.000.848599
B8.07.099828.250.394722
C0.09.065755.000.957668
D8.09.099908.750.953680
E0.010.01010957.500.000388
F8.02.067665.750.898409
G6.00.045603.750.346747
H8.08.098848.250.716042
I10.07.01010929.250.965628
J10.06.099918.500.124690
K8.07.068877.250.694847
L3.08.057715.750.930668
M9.09.089948.750.606070
N8.010.099909.000.212891
O10.010.0109999.750.905785
P8.09.0810948.750.415708
Q5.07.065785.750.145941
\n", - "
" - ], - "text/plain": [ - " hw 1 hw 2 hw 3 hw 4 exam hw average new\n", - "student \n", - "A 10.0 9.0 10 7 97 9.00 0.848599\n", - "B 8.0 7.0 9 9 82 8.25 0.394722\n", - "C 0.0 9.0 6 5 75 5.00 0.957668\n", - "D 8.0 9.0 9 9 90 8.75 0.953680\n", - "E 0.0 10.0 10 10 95 7.50 0.000388\n", - "F 8.0 2.0 6 7 66 5.75 0.898409\n", - "G 6.0 0.0 4 5 60 3.75 0.346747\n", - "H 8.0 8.0 9 8 84 8.25 0.716042\n", - "I 10.0 7.0 10 10 92 9.25 0.965628\n", - "J 10.0 6.0 9 9 91 8.50 0.124690\n", - "K 8.0 7.0 6 8 87 7.25 0.694847\n", - "L 3.0 8.0 5 7 71 5.75 0.930668\n", - "M 9.0 9.0 8 9 94 8.75 0.606070\n", - "N 8.0 10.0 9 9 90 9.00 0.212891\n", - "O 10.0 10.0 10 9 99 9.75 0.905785\n", - "P 8.0 9.0 8 10 94 8.75 0.415708\n", - "Q 5.0 7.0 6 5 78 5.75 0.145941" - ] - }, - "execution_count": 71, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "g2" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "resetting values" - ] - }, - { - "cell_type": "code", - "execution_count": 72, - "metadata": {}, - "outputs": [], - "source": [ - "a = g2[g2.exam < 80].index" - ] - }, - { - "cell_type": "code", - "execution_count": 73, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Index(['C', 'F', 'G', 'L', 'Q'], dtype='object', name='student')" - ] - }, - "execution_count": 73, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "a" - ] - }, - { - "cell_type": "code", - "execution_count": 74, - "metadata": {}, - "outputs": [], - "source": [ - "g2.loc[a, \"exam\"] = 80" - ] - }, - { - "cell_type": "code", - "execution_count": 75, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
hw 1hw 2hw 3hw 4examhw averagenew
student
A10.09.0107979.000.848599
B8.07.099828.250.394722
C0.09.065805.000.957668
D8.09.099908.750.953680
E0.010.01010957.500.000388
F8.02.067805.750.898409
G6.00.045803.750.346747
H8.08.098848.250.716042
I10.07.01010929.250.965628
J10.06.099918.500.124690
K8.07.068877.250.694847
L3.08.057805.750.930668
M9.09.089948.750.606070
N8.010.099909.000.212891
O10.010.0109999.750.905785
P8.09.0810948.750.415708
Q5.07.065805.750.145941
\n", - "
" - ], - "text/plain": [ - " hw 1 hw 2 hw 3 hw 4 exam hw average new\n", - "student \n", - "A 10.0 9.0 10 7 97 9.00 0.848599\n", - "B 8.0 7.0 9 9 82 8.25 0.394722\n", - "C 0.0 9.0 6 5 80 5.00 0.957668\n", - "D 8.0 9.0 9 9 90 8.75 0.953680\n", - "E 0.0 10.0 10 10 95 7.50 0.000388\n", - "F 8.0 2.0 6 7 80 5.75 0.898409\n", - "G 6.0 0.0 4 5 80 3.75 0.346747\n", - "H 8.0 8.0 9 8 84 8.25 0.716042\n", - "I 10.0 7.0 10 10 92 9.25 0.965628\n", - "J 10.0 6.0 9 9 91 8.50 0.124690\n", - "K 8.0 7.0 6 8 87 7.25 0.694847\n", - "L 3.0 8.0 5 7 80 5.75 0.930668\n", - "M 9.0 9.0 8 9 94 8.75 0.606070\n", - "N 8.0 10.0 9 9 90 9.00 0.212891\n", - "O 10.0 10.0 10 9 99 9.75 0.905785\n", - "P 8.0 9.0 8 10 94 8.75 0.415708\n", - "Q 5.0 7.0 6 5 80 5.75 0.145941" - ] - }, - "execution_count": 75, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "g2" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## histogramming" - ] - }, - { - "cell_type": "code", - "execution_count": 76, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "80 5\n", - "94 2\n", - "90 2\n", - "95 1\n", - "92 1\n", - "91 1\n", - "87 1\n", - "84 1\n", - "82 1\n", - "99 1\n", - "97 1\n", - "Name: exam, dtype: int64" - ] - }, - "execution_count": 76, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "g2[\"exam\"].value_counts()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## plotting" - ] - }, - { - "cell_type": "code", - "execution_count": 77, - "metadata": {}, - "outputs": [], - "source": [ - "%matplotlib inline" - ] - }, - { - "cell_type": "code", - "execution_count": 78, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 78, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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uk5WVhaFhYUAFBUVDZYzXrhwIdu2bWPz5s088MADvP7662itWbJkyXltdHd3c88993D06FGUUni9XgDuvPNOVq5cyb/927/x4osvcvvttwOwceNGXn311cFRucvlGjyCuOGGG4iJiQEGBtIPPPAAmzdvxmAwUF9fT3NzM9u2bWPNmjVYrVasVisf//jHgYHKntu3b+eOO+4Y7Jvb7b7cj++iJOALIcal06WMAYxGI06nE4ClS5eyZcsWqqurWbNmDT/96U9RSnHLLbec18ZDDz3Eddddx/r16zl58iTLli0DIDU1ldjYWEpLS3nhhRf49a9/DQwE8nXr1pGdnX1OO++//z7h4eGDPz/33HO0trayZ88ezGYzmZmZgyWZLyQQCBAVFXVODf8rQQK+EGJYPmokPtKWLFnCgw8+yNKlSzEYDMTExLBhw4bzaufDwAg/NXWgzNfTTz99znOf+tSn+M///E+6u7spKCgA4MYbb+TRRx/l0UcfRSnFvn37mD179gXbTUhIwGw28+6771JdXQ3AokWL+NKXvsT999+Pz+fjtddeY+3atdjtdrKysnjppZe444470FpTWlrKrFmzgvrZyElbIcRVJTMzE601S5cuBWDx4sVERUURHR193rrf/va3uf/++5k9e/Z5s2tuv/12nn/+ee68887BZQ899BBer5eCggLy8/N56KGHLtiHu+++m5KSEmbOnMnvf/97cnJyAJg7dy6rV6+moKCAm266iZkzZxIZGQkMHBU88cQTzJo1i/z8/HNO9AbLsMsjB5OURxZifJDyyJevr68Pm82Gw+Fg6dKlPPbYY8yZM+eSXjvc8siS0hFCiBG0du1aysvLcblc3HPPPZcc7INBAr4QQoygP/zhD6O2bcnhCyHEBCEBXwghJggJ+EIIMUFIwBdCiAlCAr4QQkwQEvCFEGKCkIAvhBiXTp48SW5u7nklki9UZtjv95OVlYXWmq6uLoxGI5s3bwYGau8cPXp0lN/NyJCAL4QYt44ePcpXvvIVysrKiIqKYt26daxdu5ZHH32UPXv28PDDD3PfffdhNBrJzs6mvLycrVu3MmfOHLZs2YLb7aa2tpZp06aN9lsZEXLhlRBiWLr+cgxPQ39Q27SkhBP18Skfud6FSiRfrMzwkiVL2Lx5MydOnOD+++/n8ccf59prr2Xu3LlB7ftYJiN8IcS49cESyR0dHYNlhk8/KioqgDNlk3ft2sXNN99MV1cX77333gXr5F+tZIQvhBiWSxmJj5QPKzM8b948Pve5zzF58mSsViuFhYX85je/4bXXXhvtbo8YGeELIa4qFyszHBISQnp6OvPnzwcGUjy9vb3MnDlzNLs7oqQ8shBiyKQ88ugYbnlkGeELIcQEIQFfCCEmCAn4QggxQUjAF0JclrF0/m8iCMbnLQFfCDFkVquV9vZ2CfojRGtNe3s7Vqt1WO3IPHwhxJClpaVRV1dHa2vraHdlwrBaraSlpQ2rDQn4QoghM5vNZGVljXY3xBANK6WjlEpXSr2rlCpXSpUppb521nOrlFKHlVJVSqnvDr+rQgghhmO4I3wf8E2t9V6lVASwRyn1JnAY+CVwA1AH7FZKvaq1Lh/m9oQQQlymYQV8rXUj0Hjq+16lVAWQCkQCVVrr4wBKqeeBNYAEfCGEGCVBm6WjlMoEZgPvMxD0a896uu7Usgu9bq1SqkQpVSIngIQQ4soJSsBXStmAdcDXtdY9Q3mt1voxrXWx1ro4Pj4+GN0RQghxAcMO+EopMwPB/jmt9cunFtcD6WetlnZqmRBCiFEy3Fk6CngCqNBa/+Ksp3YD05RSWUopC3AX8OpwtiWEEGJ4hjvCXwR8DliulNp/6nGz1toHfBV4A6gAXtRalw1zW0IIIYZhuLN0tgLqIs9tADYMp30hhBDBI7V0hBBigpCAL4QQE4QEfCGEmCAk4AshxAQhAV8IISYICfhCCDFBSMAXQogJQgK+EEJMEBLwhRBigpCAL4QQE4QEfCGEmCAk4AshxAQhAV8IISaI4d7EPKgOt5/gznVfY1JUEtlxqaRFJhAfGk9caBzxofGEmcNGu4tjQsDvp7uhkvaqPXTVHaGvsQ53azO+zh50lwNTnxelFaELFlBw2/8hcuZsBm5dIC7EH/DT4eqgzdlGm7ONlt5mGsvLcZdVEXqigYSGLoz+AN3hofSE2egNs9MbHk1faCx9YYn0hybjtCaAGtq/U2KElfwUO3kpkeSn2EmLDpXf08V4ndDbBH0t0Hf6a/OZZf2toP1DatKBpk0FaDv1tTkQoNmtafNBrxfcfoXdbCLVaic3Pp25yXnEx2WBLREiEge+WsIH29NaE+h34G9rxdfaiq+tbeBra9vgz9rjIfK2W4m85RaU2RzsT+kjKa31iG/0YsIyI3XW92aiTL0oFTjveasxlPiwgeAfGxo7uDM4+xEfFk90SDRGg3EU3sHwePq6aDtWQsfJQ/TUH8PR3IinvZ1AVx+GHjfmXh9h/RpbP1gu8LftMUKvDZzhBpQvQGrLwHJnpBXzomvIuGENtkWLMNrtI/vGRonD66DN2Uars3UwmJ9+tDpbaXe209Hdgr22g0nNAbKaNZnNmoxWCPGC12igP8REfWwoXpPC3u8mqt+L3enHFNDn1AX3K+gON9ATbqLHZqU3PJw+WwSO8Ggc4bE4bYm4bEl4wtMJmG1ooLbDwbHWPgKn/gXtVhN5KXbyT+0A8lMimRIfjsl4lR6IBwLg7DgVtJvPDea9ZwX1vmZwX+DOqcoA4QlgS4DweDCa8WtNW8BHs8dHk8dPu8dPl8dPjzeAw6NxejQ+LwQ8YPQaCPEaCPEYCfEaMPs//HP2Gv1g8BGCjwi/F7vXh90TIMyjMbvA1OslxOXF5A+cWzPeZMIUF4cpPp5Afz+e48cxp6QQ88V/IOq22zBYrcP6GJVSe7TWxZe07lgK+FMSovXD/3ArLmsMzcZI6vzQ6HbS4nfitnjwhLjQ4W5MdieE9OHR3bgC/YOvD3dqMls0WS2K7FYzib1GXHPzSLv9bgrzlmM2XsYe1dEBjQegqRQaS6G9CvT5O6Oh6kdT0umitcyLudFIZJ+fmF4v5sD5v4/eUOgPV7htBnx2CyoyFFNMFKFxCdhSMojMyCVu8mwikqZiMA7s6HRbFQd+/2n2H+uEhhDyTwSwuUAbFOZZM4letgLb0iWE5ORcNaPKqs4qnip7iv0t+2l1tuL0Oc95PsylmdJkYFpzKCktRmK6NOHOAF6TEbfZhMNiot9qxWsxEyDAh/1vKIMBU4gFo9GAgQAGvw+D14PJ48HidBPm8BLh8BHiC2D2+7Gc+moMaJwh0B9hxhcTQWhCKubYyXRaYqkmlEqPhdJ+I81mGz2WMCxmEzlJEYNHAXkpdnKT7IRaxvCAxus8E8B7mwi01+E+cgRXVTXtVY00dXjxa0BpAgoCKALq7IeBgMFIQBnRBiMBZcBvMOBXCj8Kv2Lwa0BrAuiBZcqAXxkIGD4kcGuNMRDAGNAYAhpjQGPSEKINWJUi1GAi3GAg1KAw+gO4entxuhy4jQZcZhNukxGP2YjLZMJtNl5wWwYChBm8hBs92Mwewi0ebGYv4WEh2KIiiNRx9O5ow1nViDE2htjPf56ou+7CaLNd1sc9bgP+5Di7fuimYlx+Ey6/icCHnGLwKRN+jBj9Gqvfi93jItzpwuIf+MfSFiN+syarpguj1pRONdG8LJ+0VWtYnHkdSeFJ5zaoNXTXDgT108G9qRR6zroVb2Q6xE0Ho2XI701rTRVudjh66DjUTfwRA35stEWEoc8KuEYDhIRaCI+yE5WUSsLkPKJS0rHHJWCPTyA8Mgr1YX/QZ/M6YcO3cOx/ljczCtnVF0nYvqPMPgZZzQO/d2NCArYli7EtWUr4ooUYIyKG/N5G26G2Qzxe+jjv1L5DvMvGQvKxdxmwNDoxdjow9LvB78NnUPhMFw6UIeE27HHxhEdFn/uIjiEsMgqlFK6+Plx9vTj7enGdfvT24urvxdnXN/B9Xy9et+vinVVgVAwEHa+HULcHu9NHhNNHqNdHqMeL1evDqEEbjThtkXRZ7TQZw2g2R9AZEkFXaASWhARiM5JJnZLG1OxM8rPiiQob+t/lJQsEwNl5agTeDL3NFxyV+9pacDc7cXWacXWacXaZ6fSE0moLp9UeRke49cMD8mlaAwNHUQp91s8addZzBsCgFEZlwKwURq0waAV+AwGfwusB7TOiAgYMGmwWE3arhQirafBhulh/DAZMMTGY4gdG58a4OMzx8Rjj4mkNMfB2bTkl1fupba7E2VeH2dNJmMdAqNtIqMuM3W3F7jFhdQOeM4NEA5qUsG7S6MFe48VYD0arkZjrC4j+9J2YsheBLf6SfzXjNuAXFxfrkvf+Bk2l6MYDeGsP4Kgtp7e2md6eEPr6Quh3hdLvtuDWCq/RgNdkxBlixWk241EKVAADZ96TMhiJCg0hvqaBtKYuPGY/W2YoquanMH3yZJZ4FYUddZibDoGr6/SLIHYaJBdAUsGZr2ExQ3o//d5+djbuZGvtFpq3vk3+bgdRvTZaI8LxGw2EWCyE5MyjNCSL2/OjCfX00NveSk9rC71trfS0teJ29J/TptFkIiI2noi4eOxxCQNf4+OxxyZgj48nIjYek+UD//j7noW/fhOsUVTf/BNecdXx7v6XSStrZd4JM7NOBjA7vGAyEVZYSPi1S7EtXUrI9OkopQgENL/efIytR9uYnhhxKu1gZ1pCBBbT6KQbtNaUNJfwWOnj7GzYwazaKGZXxYLLN7iOIRDA6vVj0hqD2YI5IpKwtAySZxSQPG3qYFAPi4waPDIKBp/Xi7u/D2dvz6kdQx/Ovp7BHYartxdnXw99HR10tDTg7j4/XaGMEGa2EGUIIdwXwOpwYe7qxtrZTajbg/kDaYM+k5XesEiM8XGkTk4jIiUJU3wcxlOpBFNcPKaEeIyRkecOGLyuDwTus4P52UG9GQJnPlutwecw4uqx4eq34+qy4Gr14+v24FeKdlsobQnRtESE4jgVY3rNobgm2+lM76WJDjq8XfiUD78BAgZNQGn8Bo3JGEqIMQpjwI72R+D12HA5w+h3hqN9EWce/jCUMhATZsEeaqau04HXP7CtcIuR3GT74FFRfkok0xJthFxkhx8MvW4n7x0/yPbaUsrbK2h0HsOh6lAGNyoAVpeF2L4EpvfEkN7mQ3UM/G/bLJDQ10NUfT/xzn7iJ/cTMycM89QPxJ/oTLjA0fj4DfhFRXrL736Pq6Icd0UFrvIKXEeOoB2OgRWMBkISw7FGe7GGtmGNdBES5cUYFgqJ+eikAtpt2ZT5UijpiGDbwWrszRXM9tfg6xv4p4oKuIlv6SOpq5+WaC/vFhjYl2egwB7P4rgCFk++maSMxWAZ+glirTXHuo6xtX4rW+u3Un2khCX7FJMbw+kKteE2D4wmphXMYfrNa3j8iOKFPfUYDQqrycBPPlnA6lkp57TpdvTT09Y6sANobaHnnB1CC32dHadGP2eERUYRmZBIbFoGsWkZxKVlEBPiJGLjP6K6TsKK7+Of/xV2NL/P+qPr2VT9Dlm1Xm5oiKH4hJHQE00AmBITMS9YxLOk8gdvIqmpcdR3OXF4Bk4gmI2KaQkRp/LNdvJTI8lNtmMLuTJzAdw+P4cbe3n16Fu8U/scyceOMutoFKFuGx6ziRCvj6yeTpLCfMTGeImJ7Cbc1o3R/MG/cQXhcQMn3U4/IhLP/fn0Movtgv9kweT3eeltb6ex8QQHju3kaHUZrU21mPp92JwmIlxmDB84Z2O2hGCz2bCareAD7fCiexyozh7i+vpIdvdg9rjP35hRYQozYArVmEI8mMxuTKEBTFb/4FejVWOKjcEQnQjhCeiwBDyOMFytAVxN/bhq2nAfr8ff0wuANhjwTs6iPTWRZqOmuasdv98PJjO1NhvVsS7a0uvpCuvFoAwUxBWQFZl1/vm3U+fmLjY5w+3z097noaXXTeupR0uvi9ZeN10OL+kxYYN/i5mx4RgMo5+q9Pn97Kg5zJaa/ZS2lHOy7yh9gRqUqY8wp5HUtlCy2qJJajNh8A7sxGP6nMT3OZgc72HypBpCIjwDjYXYIWnmuTuB+GyUyTI+A/6M0FD90qRMAAzh4YTk5mDNzcOam4s1L5eQyZNRp0evfi+0Hj43/dJ08MzJHWUkEJECPfUoHaDdE0aVI5VjziSaugdWCQ9oEtq6ie93cHIS/C3fzaFMxdSY6SxOXcyS1CUUJhRiNlw89+/wOgZG8aeCfFtXAwvLjBSfjMIVCKHfakEBGemZzFxzO1OuWUhtj5f7nttLRWMPX71uKnfNS+drz+9nT3Unf7dgEg/eknvJIxG/z0tfR/vAzuDUTqC3rZWupkba62txdHcNrmsJDSU21Eusv25gR7Dqa8ROyccXZmTDyQ2sP7qew52HSeg3cVdXNnmHFda9hwnzOtFGI2EFBYTk5tKXMYXjUansN8ZwqMVBeUMP7f2ewe1kxoaRnxI5eCSQnxJJfETIJf8dAPS4vFQ09FB26nGooZO+1jcp7nqHWbUOwpx2miIj8BsNRPo1s8x15GV0E/aFX6OyV51p6EIj2HNOCjZdcAQ7yBx21k4gASKSBr7aks7dUYTHQxAnCgR0gMqOSrbWb2VL7WaONJQR6jCQ4LWRp1JId4dh79O4uvvp6XXicp97XinE4CXK7CLS4CICNxF+D+H+AOEBM0ZfCD6XEZ8DfH1e/L1OuEAYMNjtmKKj8TY3o10DaSplsRCSnY0pO5vO2EiavC5qak/Q3dIMQFhiPG0JFnZY6miIq8FvhEhLDNemL2ZJ2hIWJC8gMiQyaJ/TeNTj9PC3iiO8UbWHA83l9FON2dJIUn8/qa2hTGoKxe4YiHNWj4/oMDOZczOZk2HA2lEGTYfg9PkpYwjq+63jM+AXpqfrzY8/jjU3F3N6+qXnqk8LBKCr+sxOoPMEOmYy73Qn8++7TQQi0/jVZ4uZFOrlWMkujpXspObgAQIBPxZ/gITuPmK0pjrPyovTWmi0B7CZbcxPns/i1MUsTl1MQlgCx7uPD/wj1m9hb/NevH4PBY2hrKiMRXf66QodCG4J9mjyV95M7k0fI9Q2kBv/28FGvvWnUkxGxX99qpDrshMA8PoD/OfrlTy+5QSz0iL538/MIT1m+NNQHT3ddNTV0lZXQ3tdNe21NbSfPIzDcSZAW0LDiE1LJzZtEr4YC6WBY2zo2U6XpQeTN5J/MCxgVUs4poNHcVdWEjh9xGU2EzJ1KtbcHDxZ06iNSeNgSAKlnT7KGrup7Thz0jQhIuScHUB+ip2MmDCUUrT0uE4F9u7BAF/T4cAU8JHXfowlvVuZ1XCUELeF6rhIWu1hGJRiytQciqe4San+HaTMgTuehuhJl/dBDeaomy8wU+TsaYDN4O4+//XKAGFxZx0pnN4xXODoIeSsk3Nan9ruB2eonJVS6W2mu7+ZHQYPW0KtbA0LpcNoRGlNnsfLYq9ioYokXSfRo6Pp8lhp6VecaHLQ1d2Pxes6J/1jDbcRlZRMVFIK0ckpRMYnYg8Lx2YwYe53nJlS2NKKr6MDc2Ii1rxcnAlx1Le3cvLgPurKDuLzejBaLFgnJ9GY4GGb5TDNli60Vpi8mayYdC1fmLOK3NhcDOoqnWk0TFprDjf38t7hVt4+fJIDzRVoSz0xpjryO1vIPebB7A3FbzSA1niiDRgLMsicnkmBLYQpPU1YVv1kfAb84uJiXVJSckXa3lvTyVef20tbv4d/+Xgen5mXgVIKt8PBif0lVL2/nRN7duHxejAEAsT3OomJtNE4O5o/pddR52sFICokii73wKi5UE3ihtIIONFFm9GAVgq7OYSceQsp+NTdRCaeOTHs8QX4j79V8uS2ExSmR/HLu+eQGhV6Xj9fP9TEt146gMGg+K9PzWJ5TuIV+TwclZtof/6faO9y0Z64nHaPjba6Gpw9Z4KZz2TCE62oC+mkK8JDdGoa6Vm5FJhTmdKsiK7pwlt5BFdFBf729sHXmSdlYM3Ng6nTaYzPoMKWxP5+I+UNPRxt6cN/aiZSRIiJELOBtr4zO59ZVjcre4+TX1dKTOV+8PqojY3gWFI0XoOJsAg7has+TsE1hYRv/DrU7oR5a2HlD8E0tKOIy3b2LJSz54J/cEfR33LhowaLbWBn4PcOvN7vOX8dk/XUzuKsHcepnUjAlkCFdrK15zhb2/ZT2naQgA4QFRLFlKgp56RHwo3R7D3qYefeVkzdHmbZjBRHa0KcHXQ1NdDT1npOStAabiMqOYXopBSikpKxxyXQcvI4J/aX0NXUCEBYQhzuSTYq7M28bzqM36ixqkj6u6ainDl8oehGvnJtAVbzGJ5JNEb1urxsq2rjvcOtvHu4hebePqL0CT5Tt43M5hY6Q630hQ6M/vusPhoS3Tz2s/ck4F9IR7+Hr7+wn81HWrl1dio/unUGYZYz+Wa/z0tt+SGObnqHqt07cLhdoDUxLi+JKcl0LcygPN3LrAN+9J6TNDr78RkNWLVi6rQcCj79OZLyZ543zbGhy8lX/7CXvTVd/P3CTB64OfdDT3ZWt/fz5Wf3Ut7Yw33LpvBPN0y/MnOxHR3w8r1Q9RbMvIOK4h/wtef24mxt4FNTzeRYHXTU1dJSexJ3b+/gy/qtPjrsHjrtPkJSYknMnEK+fTLZbRYS6x0EjhzDVVGBt7Z28DXG+DisubmYsnNoT87kSEQK+7yheDw+rumvY8qJg4Tvfx9fVRUA9bEWStPsBAyRqAAkT8tm9k2rmX7NQozVW2DdF8HnhtWPwIxPBv+zCYbT88zP2SmcNXI3Ws5KD51OF51KHYXYL/ncQbe7m+0N29lWv43a3lraXe20Odvo9/afv7I2EPDZsBqimBqTTHZ0EnGecCL6TYT0BjB0ufG2d+Ns7aC3vW1gGqPFgjUriaZEDzusR2gwdWJQBmbGFRDFTLYfjKOjM57bizL49o3ZJNiHN69cDNBaU9nUOxj8y6saWXl8Bx+v3oLHoqlLiqErxMQ/P/+aBPyLCQQ0v3y3il+8dYSp8TZ+9dk5TE04fyqi1prmY0ep/Mt6qvbsots7cALM5A/gMxowBTQZcUnMWH0rU268CcNF8rebjrTy9ef34fEF+M/bZ3FLQfIl9dPl9fNvfynjj7tquSYrhkc/M5uEiCvwjxQIwNafE3jnxxzXyXzP8i2+efca/n97Zx4lRXXv8c+vqrtnYRgYQRbZQWQRRjYNStRojCLBuIQQCGZ55sQTNXkmL8+jvrwsZjPGJCcYURN9iVlAY0KeSQhHeUaMRo1BdhjWAYRhnxm2Wbqnu+r3/qjqmZ6hp5mV6mHu55w6detWVfd3qqu+99ade3/30uGNeyTVnDxB+d49HN69kz07NnF4dymxo5X1bb+xkENlYZzKwjroX0DfYSMYM3AM44/lM+hAjFBpGdEtW4iVlkLCq/VaBQWgiltdDaEQ5WP681qfKmrIp++JfMS2GXfFVUyeeRMDLrwIXAdefxRe+z6cPxbm/hrOv6jjr8k5Qk28horaivqBZ0drj3K4+iiry/ZScmQ/MT1OOFKFWlUop48tKbQK6O/0Yrd7kITtcl7uefVNm5G6sfzopTJKDp5k2rAivnHTxUwc3L3b5jubk9E4b+4o541N+0m8tIyZG/+PfrWVTNy61Rj+mXhzZzn3Pr+WmjqHh2+byM2TBmU8vnJ3KSXP/ZYju0oZeel0xi/4JJGC5vusO66y8G87+OmrOxjTvydPLJjCyPNbP7Bi6eoyvvriRnrmhnls3mQuH9Wn1Z+Rido6h6/9aRP7177MU7mLKLTqkI8shOK5Zzw3HotSvvc9juwpZe/OEvbv2kb1gcOQ8MwjYbkc6+kVArE+YYqGDmHk0HFMiJ7HsIMO+bsPUROv4e/9j/NaeQnD9+XTqzpMTmFPpt7wEYqvm0mP3kXel1WXe7X6XSuheB7M/oSVWcIAABB1SURBVHGjYe2G1pFwXJZtOMgTr+1k++GTDO7r8tFLC5k0wuZ4rIKKaAVHa45SGa1kVO9RXDnoSsb1GUdZZZTvLd/CS5sPMah3Hg/OGsuHJw48ZwbvdRVUlS1lx9iyZClzHrjTGH5LOHwyyheWrGHVnmPcPn0oX5s9vkP66ZZXxfjS8+v4x85y5kwdzLdvntCukZHbDp3irsWr2VNezVeuH8NdV4/qkC5nu45WcffiNWw7fIovXnMh976vJ/bSz8Let2DaHXDDwxBu3VuF6zhUHijjyJ5dlJVuYd/OEk7sO4BGvXZqF+VkQZyKwjhVRRCpVkaV5RNJWJw3YjjTZ8/houkzsEMpPaP2vgO//wzUVMCsH8CUT3d6V8nugusqr2w5zKKVO1lfdoL+hTl87sqRfOJ9Qxs1d56KxnnitVL+543d2JZw9wdG8bmrRpp2+iyg6/bDP8uGD17vmB++vI2fvb6L4sG9WNTO3jGr9lTyhSVrOF4T59s3T2DupUM6RGdVLMEDSzewbMNBrh3bjx/PvaRdIyv/uuEg9y/dQNgWfjJvMldf5I/scxLw6rfgzYUw8BKv2aRoeLu0qyqnyo9yeE8pB3dtZ8+OTVS+9x7OyRqwhOGXXcYVs+cycPSYpifC24vglW94o5zn/srTZOhwVJW3SitYtHInb5VWUJQf5t9mjOCT04exouQQj768nfKqGLdNGcT9M8fS37TTZw3G8NvAis2H+Mrv1yPAj+dO4rrxresdo6o8/cYuHnlpG0OK8nhiwVTGX9CxQcpUld/88z2+vayEfj1zeWLBFC4Z0rtVn1GXcPne8i08+9YepgztzeOfmMIFaXoLsXU5vPh5L33LUzB2Vgf8BY2pOXkCsaz6LquNiJ6AF++Grctg7Gy4eRHkte5vNbSNNXuP8cTKUl7ZchhLwFWYOqyIr88e3+r7zdD5GMNvI3srarh7yWo27T/J568exX9e37LeMSdq49z3+/WsKDnMjRMG8MicYgpzOy/06bp9x7ln8RqOnIrytdnj+eT0YS1qQ91/vJZ7Fq9h3b7j3DFjBA/cODZzaIRje+CFT3nB42bcC9d+HeyzEFH74Abve0/sg+segsvvMU04AbD10EleWFXGpKG9uanYtNNnK8bw20E07vCtZSUseWcvl404j8fnT87YzWzT/hPcvXgNB47X8uCscdwxY/hZeTCOVdfxHy+sY+W2o9x0yQU8fNvEjCENVm47wpd/t46Eozw6p5gbJ7astxDxKLz8ILz7C69nzLAr/OHdl0D/8RBO83bQVlRhza9h+X2Q3wc+9ksYOr3jPt9gOAcxht8BvLh2Pw/+cSM9ckI8Nn8SV4zq22i/qvLcv/bxzb9spk+PCI9/YjJTh7UuuFp7cV3lyb+X8qMV2xjetwdPLpjKmAGNm0ccV/nJK9v56as7GTugJ0/ePpURfdvQu2XjH+DdX/rhK/zBWWJ70UMbBZmbCHlFrf/8uhovwNv6JTDyGvjoM168G4PBkJGsMHwRmQksBGzgGVX9/pnOmTymWF9/ZjkSsZGIjRW2/LTVkJdMh23EbntNWl1F6xzcmINGE9465uBGHTSWwI06lFfWsGLtARK1CaYOKGRUrzyIuziusqu8mvKqGL3ywozuV0C4PQOjbMEuiGAVhLF7+uuCCFbPCHZBGKtHGMnQK+ft0gq++NxaqmJxvnfrRG6bMhiAo6di3Pv8Wt4qreDj04bw0M0XZ+xVoapozMGpiuNW1eFWxXGq4966qg6Nu1g5NqJVWNFDSG0ZVtVu5MR2rOh+hBosapFeRVgDR8PAi5EL/MKg8ILmm2XKd3hNOEe2wAcegKvuyxiXRl0Fx0XjKUsimXbQhHrbjn+co6jjgqPePseFRDI/5ZiEf4zjoonG50rIwu7h/RbJxe4RxsoPYxWEsfJDWPmZf6eORlW9vznq4MYSaNTx/+7k36Hp04nU/DMc6yhiCxKywBYkbCGhlCVlm7CFhKTxPttbU39O8jPa9/y2+7rVObi1CdyaBG5tAq311qmLxhxPa8RGcmysiI3kWL4PeXkSsb1nItWnwtZZbf4K3PBFxAa2Ax8CyoBVwHxVLcl0XvHAsbr800+3/ItC4l34cGqhYHl5ERsJWbh1vpGnGnvUQetaOB1aSKgGKhMJrJwQ5xflsbuimtq4w6DeeV54hHS/bSsuqzqKW1WHcype34e9EYJnMAURrJ5N1n4hcVyUr67Yysq9x/j4ZUOYNXEgX3lhPTU1cb5zw1hmjezrG3kct7quPu0ZeoO546QXLrkhJGKhMf/atejvcxoKATvm/S55EayCAqSwN1ZhERwrRXe+gUoeOngGmtvPM+1GJp5q7A4kOuietUBs38hsyzOgkLduSFtgCSRc71pVx9FYM/eOgJUXOr1QSCkY7PyG/YBfyWi4L91YIqXi4e1Ld/96FZREq+6z5jQ3+vubpi3LqxwlvN+DRMPv0u7vThYgYct7hpukreR25PR9p6VDlndNGpl2vLGBRx0/z4E0Ew2lXhMrL4REbK/wj7kt9wv//PoKak6DN9UXDKn3WchKuee8AhHbLxzr9yf3+fdq6j5biPTrEbjhXw58U1Vv8LcfBFDVhzOdN23aNP3XP/7plb513kX2Fi/txv0833Tqt1OOdev8Wl6dZxoSsbFyQ14JneOX1KnbuTZWTshf20hOCCvHxsr1S3DbQlVZ/M5evvWXEuoclz49IiycN5n3j+7YJoemNWznlG/EadZOVfrCwQWO4RIDikTI02ZqGiHLe3tIvk30CNdvWwURz6gK/Lz8sHdzJXW6fs0ydroB1b8pxRy0uhb3+FH0eCVudRVaE/V+H81DNQ+XfMBCLBfp0ROJhL3aYNhuqCGmPNDpHvJGxyTPCyUfBj+damChZNpqc21cEy5udby+AHBr/MKzJuFt+0vq/jQDWc+IROyG+zLXvy9T0qffu3Z9rTqjiSevgWV5hV4ba6PJt6L6wiDuNtrWRtvaeH/ybSxZkPvPqxtPsy8l3VyF5DQs8QrfvBDir5tbJC+Eletv53tG3/TeqC/0kt4Ta/CmhnRKfszfl+pXST9LaMMbZsqbaFsL0CGPXNViw++sLheDgH0p22XA+9IdKCJ3AncCDB06FCs3BLkhsmk4h4hw+/RhFA/uxdLVZdz1gQsZ0Kvj+yGLiPcw54agb+Z/hjYqHE7V4VQ1FAanyk5y4liUXqOKyO2Vg90j4hu5X+MsiHi1jjY+6GIJkmNDjt2C36lJ6INEHZRv80Na/9OLG3PFv0Nbpp8MCAlZ2L1ysHu1LFibuopGE14BUJPw37LiXk2wqWknzTyN6WQbXq3Uuw/OFp5J+pW81MIg4XqVtaSJt+P+TodYgkRs6KSpJVUVXL+JMbUwSDYzpuQ1bLve2+4jLf+es9DHLjOq+nPg5+DV8AOWk5Hiwb0pHpwd/ZAzFQ5ZHdEkFPF7+UwEFgSt5qwgliD53puSoX14hUwIzlJg1LOFSPJNjE4rVIAMk8a2j/1A6hDTwX6ewWAwGAKiswx/FTBaREaISASYB/y5k77LYDAYDC2gU5p0VDUhIl8AXsbrlvkLVd3cGd9lMBgMhpbRaW34qrocWN5Zn28wGAyG1mEmmjQYDIZugjF8g8Fg6CYYwzcYDIZugjF8g8Fg6CZkVbRMETkFbAtaxxnoC5QHLaIFGJ0di9HZsXQFnV1BI8AYVW1+gu0UAh9p24RtLY0JERQi8m62awSjs6MxOjuWrqCzK2gET2dLjzVNOgaDwdBNMIZvMBgM3YRsM/yfBy2gBXQFjWB0djRGZ8fSFXR2BY3QCp1Z9U9bg8FgMHQe2VbDNxgMBkMnkRWGLyK3iIiKyNigtTSHiAwQkedFpFREVovIchG56Mxnnl1ExBGRdSnLA0FrSoeI9BeRJSKyy7+eb4vIrUHrag4RqQpaQyZS9YnILBHZLiLDgtSUiv98/zZlOyQiR0VkWZC60iEig0XkTyKyw3/eF/pRf7OKJjp3icjjIpJxpoCsMHxgPvAPf511iDd1zv8Cr6nqKFWdCjwI9A9WWVpqVXVSynLGyePPNv71fBF4XVVH+tdzHt68CYZ2ICIfBB4DblTV94LWk0I1MEFEkrP1fIgsnCPDvzf/CLyoqqPxpmwrAL4bqLAmpNE5GsgDfpDpvMANX0QKgPcDn8V76LORa4C4qj6VzFDV9ar6RoCaujLXAnVNrud7qvrTADV1eUTkKuBpYLaqlgatJw3LgQ/76fnAcwFqaY5rgaiq/hJAVR3gy8AdIpIfqLLGNKfzU76npiVwwwduBl5S1e1AhYhMDVpQGiYAq4MW0ULymjTpfDxoQWm4GFgTtIhzjBy8t6ZbVHVr0GKa4XlgnojkAsXAOwHrScfFNHnWVfUksBe4MBBF6WlO5x4y6MwGw5+PdyPgr7OyWacL0bRJ53dBCzoTIrJIRNaLyKqgtXRh4sBbeG/KWYmqbgCG4z3jZq6MAAjU8EXkPLxXk2dEZA9wHzBXOnK6+Y5hM5CNbx5dlc3AlOSGqt4DfBA4PzBFXR8XmAtcJiL/FbSYDPwZ+CHZ2ZwDUEKTZ11ECoGhwM5AFKWnOZ0DyBCPLOga/hzgN6o6TFWHq+oQYDdwZcC6mvIqkCMidyYzRKRYRLJNZ1fhVSBXRO5Kycum9tEuiarW4LWRLxCRbK3p/wJ4SFU3Bi2kGf4G5IvIpwBExAZ+BDzrX99soTmdj6tqbXMnBW348/F6v6SylCxr1lFvdNqtwHV+N63NwMPAoWCVpaVpG37W9dLxr+ctwNUisltE/gX8Crg/WGVdH1WtBGYC/y0iHwlaT1NUtUxVHwtaR3OkPOsfE5EdwHYgCmTVW1OKzjm+zgrAVdWMvYnMSFuDwWDo4ojIFXjNZLeqarMdIozhGwwGQzch6CYdg8FgMJwljOEbDAZDN8EYvsFgMHQTjOEbDAZDN8EYvqFbISJfaktMlPZEyxSRz4jIBW0932DoKIzhG7obX+LsD/L6DGAM3xA4xvAN5ywi0kNE/urH6dkkIt/AM96VIrLSPyY1jvwcEXnWT4/wY/RvFJHvNPnc+0RklYhsEJGH/LzhIrJFRJ4Wkc0iskJE8kRkDjANWOwPhMvDYAgIY/iGc5mZwAFVvURVJwA/AQ4A16jqNWc4dyHwpKpOBA4mM0XkerzY45cBk4Cpflhi/PxFqnoxcBz4qKr+AXgXWOAHs2t22LvB0NkYwzecy2wEPiQij4jIlap6ohXnzqAhwNdvUvKv95e1eCGex+IZPcBuVV3np1fjRYY0GLKGUNACDIbOQlW3i8gUYBbwHRH5W7rDUtK5GfYlEeBhVf1Zo0yR4UAsJcvBm4HIYMgaTA3fcM7i94ypUdXfAo/ihWQ+BfRMOeywiIwTEQsvGFWSN2mYgW1BSv7LeLMfFfjfMUhE+p1BStPvNBgCwdTwDecyE4FHRcTFmyDkLuBy4CUROeC34z8ALAOO4rW1J6eHuxdYIiL3A39KfqCqrhCRccDb/rQNVcDteDX65ngWeEpEaoHLTTu+IShM8DSDwWDoJpgmHYPBYOgmGMM3GAyGboIxfIPBYOgmGMM3GAyGboIxfIPBYOgmGMM3GAyGboIxfIPBYOgmGMM3GAyGbsL/AxAycpNjtyW1AAAAAElFTkSuQmCC\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "g2.plot()" - ] - }, - { - "cell_type": "code", - "execution_count": 79, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 79, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "g2.plot.scatter(x=\"hw average\", y=\"exam\", marker=\"o\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "A lot more examples at: http://pandas.pydata.org/pandas-docs/stable/visualization.html" - ] - }, - { - "cell_type": "code", - "execution_count": 80, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
hw 1hw 2hw 3hw 4examhw averagenew
student
A10.09.0107979.000.848599
B8.07.099828.250.394722
C0.09.065805.000.957668
D8.09.099908.750.953680
E0.010.01010957.500.000388
F8.02.067805.750.898409
G6.00.045803.750.346747
H8.08.098848.250.716042
I10.07.01010929.250.965628
J10.06.099918.500.124690
K8.07.068877.250.694847
L3.08.057805.750.930668
M9.09.089948.750.606070
N8.010.099909.000.212891
O10.010.0109999.750.905785
P8.09.0810948.750.415708
Q5.07.065805.750.145941
\n", - "
" - ], - "text/plain": [ - " hw 1 hw 2 hw 3 hw 4 exam hw average new\n", - "student \n", - "A 10.0 9.0 10 7 97 9.00 0.848599\n", - "B 8.0 7.0 9 9 82 8.25 0.394722\n", - "C 0.0 9.0 6 5 80 5.00 0.957668\n", - "D 8.0 9.0 9 9 90 8.75 0.953680\n", - "E 0.0 10.0 10 10 95 7.50 0.000388\n", - "F 8.0 2.0 6 7 80 5.75 0.898409\n", - "G 6.0 0.0 4 5 80 3.75 0.346747\n", - "H 8.0 8.0 9 8 84 8.25 0.716042\n", - "I 10.0 7.0 10 10 92 9.25 0.965628\n", - "J 10.0 6.0 9 9 91 8.50 0.124690\n", - "K 8.0 7.0 6 8 87 7.25 0.694847\n", - "L 3.0 8.0 5 7 80 5.75 0.930668\n", - "M 9.0 9.0 8 9 94 8.75 0.606070\n", - "N 8.0 10.0 9 9 90 9.00 0.212891\n", - "O 10.0 10.0 10 9 99 9.75 0.905785\n", - "P 8.0 9.0 8 10 94 8.75 0.415708\n", - "Q 5.0 7.0 6 5 80 5.75 0.145941" - ] - }, - "execution_count": 80, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "g2" - ] - }, - { - "cell_type": "code", - "execution_count": 81, - "metadata": {}, - "outputs": [], - "source": [ - "g2.loc[\"R\", :] = 1" - ] - }, - { - "cell_type": "code", - "execution_count": 82, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
hw 1hw 2hw 3hw 4examhw averagenew
student
A10.09.010.07.097.09.000.848599
B8.07.09.09.082.08.250.394722
C0.09.06.05.080.05.000.957668
D8.09.09.09.090.08.750.953680
E0.010.010.010.095.07.500.000388
F8.02.06.07.080.05.750.898409
G6.00.04.05.080.03.750.346747
H8.08.09.08.084.08.250.716042
I10.07.010.010.092.09.250.965628
J10.06.09.09.091.08.500.124690
K8.07.06.08.087.07.250.694847
L3.08.05.07.080.05.750.930668
M9.09.08.09.094.08.750.606070
N8.010.09.09.090.09.000.212891
O10.010.010.09.099.09.750.905785
P8.09.08.010.094.08.750.415708
Q5.07.06.05.080.05.750.145941
R1.01.01.01.01.01.001.000000
\n", - "
" - ], - "text/plain": [ - " hw 1 hw 2 hw 3 hw 4 exam hw average new\n", - "student \n", - "A 10.0 9.0 10.0 7.0 97.0 9.00 0.848599\n", - "B 8.0 7.0 9.0 9.0 82.0 8.25 0.394722\n", - "C 0.0 9.0 6.0 5.0 80.0 5.00 0.957668\n", - "D 8.0 9.0 9.0 9.0 90.0 8.75 0.953680\n", - "E 0.0 10.0 10.0 10.0 95.0 7.50 0.000388\n", - "F 8.0 2.0 6.0 7.0 80.0 5.75 0.898409\n", - "G 6.0 0.0 4.0 5.0 80.0 3.75 0.346747\n", - "H 8.0 8.0 9.0 8.0 84.0 8.25 0.716042\n", - "I 10.0 7.0 10.0 10.0 92.0 9.25 0.965628\n", - "J 10.0 6.0 9.0 9.0 91.0 8.50 0.124690\n", - "K 8.0 7.0 6.0 8.0 87.0 7.25 0.694847\n", - "L 3.0 8.0 5.0 7.0 80.0 5.75 0.930668\n", - "M 9.0 9.0 8.0 9.0 94.0 8.75 0.606070\n", - "N 8.0 10.0 9.0 9.0 90.0 9.00 0.212891\n", - "O 10.0 10.0 10.0 9.0 99.0 9.75 0.905785\n", - "P 8.0 9.0 8.0 10.0 94.0 8.75 0.415708\n", - "Q 5.0 7.0 6.0 5.0 80.0 5.75 0.145941\n", - "R 1.0 1.0 1.0 1.0 1.0 1.00 1.000000" - ] - }, - "execution_count": 82, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "g2" - ] - }, - { - "cell_type": "code", - "execution_count": 83, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "'\\\\begin{tabular}{lrrrrrrr}\\n\\\\toprule\\n{} & hw 1 & hw 2 & hw 3 & hw 4 & exam & hw average & new \\\\\\\\\\nstudent & & & & & & & \\\\\\\\\\n\\\\midrule\\nA & 10.0 & 9.0 & 10.0 & 7.0 & 97.0 & 9.00 & 0.848599 \\\\\\\\\\nB & 8.0 & 7.0 & 9.0 & 9.0 & 82.0 & 8.25 & 0.394722 \\\\\\\\\\nC & 0.0 & 9.0 & 6.0 & 5.0 & 80.0 & 5.00 & 0.957668 \\\\\\\\\\nD & 8.0 & 9.0 & 9.0 & 9.0 & 90.0 & 8.75 & 0.953680 \\\\\\\\\\nE & 0.0 & 10.0 & 10.0 & 10.0 & 95.0 & 7.50 & 0.000388 \\\\\\\\\\nF & 8.0 & 2.0 & 6.0 & 7.0 & 80.0 & 5.75 & 0.898409 \\\\\\\\\\nG & 6.0 & 0.0 & 4.0 & 5.0 & 80.0 & 3.75 & 0.346747 \\\\\\\\\\nH & 8.0 & 8.0 & 9.0 & 8.0 & 84.0 & 8.25 & 0.716042 \\\\\\\\\\nI & 10.0 & 7.0 & 10.0 & 10.0 & 92.0 & 9.25 & 0.965628 \\\\\\\\\\nJ & 10.0 & 6.0 & 9.0 & 9.0 & 91.0 & 8.50 & 0.124690 \\\\\\\\\\nK & 8.0 & 7.0 & 6.0 & 8.0 & 87.0 & 7.25 & 0.694847 \\\\\\\\\\nL & 3.0 & 8.0 & 5.0 & 7.0 & 80.0 & 5.75 & 0.930668 \\\\\\\\\\nM & 9.0 & 9.0 & 8.0 & 9.0 & 94.0 & 8.75 & 0.606070 \\\\\\\\\\nN & 8.0 & 10.0 & 9.0 & 9.0 & 90.0 & 9.00 & 0.212891 \\\\\\\\\\nO & 10.0 & 10.0 & 10.0 & 9.0 & 99.0 & 9.75 & 0.905785 \\\\\\\\\\nP & 8.0 & 9.0 & 8.0 & 10.0 & 94.0 & 8.75 & 0.415708 \\\\\\\\\\nQ & 5.0 & 7.0 & 6.0 & 5.0 & 80.0 & 5.75 & 0.145941 \\\\\\\\\\nR & 1.0 & 1.0 & 1.0 & 1.0 & 1.0 & 1.00 & 1.000000 \\\\\\\\\\n\\\\bottomrule\\n\\\\end{tabular}\\n'" - ] - }, - "execution_count": 83, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "g2.to_latex()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.6.5" - } - }, - "nbformat": 4, - "nbformat_minor": 1 -} diff --git a/content/07-pandas/pandas-worldbank.ipynb b/content/07-pandas/pandas-worldbank.ipynb deleted file mode 100644 index be238897..00000000 --- a/content/07-pandas/pandas-worldbank.ipynb +++ /dev/null @@ -1,4013 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Dataset from: http://data.worldbank.org/" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "import pandas as pd\n", - "import numpy as np\n", - "import matplotlib.pyplot as plt" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "wb = pd.read_csv(\"WDI_Data.csv\", index_col=\"Country Name\")" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": { - "collapsed": false - }, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Country CodeIndicator NameIndicator Code1960196119621963196419651966...200820092010201120122013201420152016Unnamed: 61
Country Name
Arab WorldARB2005 PPP conversion factor, GDP (LCU per inter...PA.NUS.PPP.05NaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
Arab WorldARB2005 PPP conversion factor, private consumptio...PA.NUS.PRVT.PP.05NaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
Arab WorldARBAccess to electricity (% of population)EG.ELC.ACCS.ZSNaNNaNNaNNaNNaNNaNNaN...NaNNaN8.436235e+01NaN8.628035e+01NaNNaNNaNNaNNaN
Arab WorldARBAccess to electricity, rural (% of rural popul...EG.ELC.ACCS.RU.ZSNaNNaNNaNNaNNaNNaNNaN...NaNNaN7.198423e+01NaN7.391781e+01NaNNaNNaNNaNNaN
Arab WorldARBAccess to electricity, urban (% of urban popul...EG.ELC.ACCS.UR.ZSNaNNaNNaNNaNNaNNaNNaN...NaNNaN9.383966e+01NaN9.515673e+01NaNNaNNaNNaNNaN
Arab WorldARBAccess to non-solid fuel (% of population)EG.NSF.ACCS.ZSNaNNaNNaNNaNNaNNaNNaN...NaNNaN8.602252e+01NaN8.658057e+01NaNNaNNaNNaNNaN
Arab WorldARBAccess to non-solid fuel, rural (% of rural po...EG.NSF.ACCS.RU.ZSNaNNaNNaNNaNNaNNaNNaN...NaNNaN7.456626e+01NaN7.494069e+01NaNNaNNaNNaNNaN
Arab WorldARBAccess to non-solid fuel, urban (% of urban po...EG.NSF.ACCS.UR.ZSNaNNaNNaNNaNNaNNaNNaN...NaNNaN9.455237e+01NaN9.497705e+01NaNNaNNaNNaNNaN
Arab WorldARBAccount at a financial institution (% age 15+)...WP_time_01.1NaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
Arab WorldARBAccount at a financial institution, female (% ...WP_time_01.3NaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
Arab WorldARBAccount at a financial institution, income, po...WP_time_01.8NaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
Arab WorldARBAccount at a financial institution, income, ri...WP_time_01.9NaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
Arab WorldARBAccount at a financial institution, male (% ag...WP_time_01.2NaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
Arab WorldARBAdequacy of social insurance programs (% of to...per_si_allsi.adq_pop_totNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
Arab WorldARBAdequacy of social protection and labor progra...per_allsp.adq_pop_totNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
Arab WorldARBAdequacy of social safety net programs (% of t...per_sa_allsa.adq_pop_totNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
Arab WorldARBAdequacy of unemployment benefits and ALMP (% ...per_lm_alllm.adq_pop_totNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
Arab WorldARBAdjusted net enrollment rate, primary, female ...SE.PRM.TENR.FENaNNaNNaNNaNNaNNaNNaN...8.147380e+018.169569e+018.287165e+018.286139e+018.440141e+018.391403e+018.382083e+01NaNNaNNaN
Arab WorldARBAdjusted net enrollment rate, primary, male (%...SE.PRM.TENR.MANaNNaNNaNNaNNaNNaNNaN...8.644414e+018.659069e+018.745258e+018.752652e+018.772817e+018.703988e+018.675339e+01NaNNaNNaN
Arab WorldARBAdjusted net enrolment rate, primary, both sex...SE.PRM.TENRNaNNaNNaNNaNNaNNaNNaN...8.401187e+018.419596e+018.521200e+018.524514e+018.610167e+018.551194e+018.532015e+01NaNNaNNaN
Arab WorldARBAdjusted net national income (annual % growth)NY.ADJ.NNTY.KD.ZGNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaN9.524779e+006.706404e+002.499334e+00NaNNaNNaNNaN
Arab WorldARBAdjusted net national income (constant 2010 US$)NY.ADJ.NNTY.KDNaNNaNNaNNaNNaNNaNNaN...NaNNaN1.529192e+121.674845e+121.787166e+121.831834e+12NaNNaNNaNNaN
Arab WorldARBAdjusted net national income (current US$)NY.ADJ.NNTY.CDNaNNaNNaNNaNNaNNaNNaN...1.424482e+121.354331e+121.529192e+121.773875e+122.012007e+122.088333e+122.156246e+12NaNNaNNaN
Arab WorldARBAdjusted net national income per capita (annua...NY.ADJ.NNTY.PC.KD.ZGNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaN7.122247e+004.458066e+004.026424e-01NaNNaNNaNNaN
Arab WorldARBAdjusted net national income per capita (const...NY.ADJ.NNTY.PC.KDNaNNaNNaNNaNNaNNaNNaN...NaNNaN4.330613e+034.639050e+034.845862e+034.865373e+03NaNNaNNaNNaN
Arab WorldARBAdjusted net national income per capita (curre...NY.ADJ.NNTY.PC.CDNaNNaNNaNNaNNaNNaNNaN...4.228375e+033.924980e+034.330613e+034.913349e+035.455513e+035.546640e+035.611972e+03NaNNaNNaN
Arab WorldARBAdjusted net savings, excluding particulate em...NY.ADJ.SVNX.GN.ZSNaNNaNNaNNaNNaNNaNNaN...1.725361e+019.157418e+001.220151e+011.690138e+011.645197e+011.592986e+01NaNNaNNaNNaN
Arab WorldARBAdjusted net savings, excluding particulate em...NY.ADJ.SVNX.CDNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
Arab WorldARBAdjusted net savings, including particulate em...NY.ADJ.SVNG.GN.ZSNaNNaNNaNNaNNaNNaNNaN...1.704717e+018.936666e+001.198311e+011.668852e+011.624965e+011.573042e+01NaNNaNNaNNaN
Arab WorldARBAdjusted net savings, including particulate em...NY.ADJ.SVNG.CDNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
..................................................................
ZimbabweZWEUrban land area where elevation is below 5 met...AG.LND.EL5M.UR.K2NaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
ZimbabweZWEUrban populationSP.URB.TOTL473101.000000497024.000000524099.000000562238.000000603076.000000646516.000000692786.00000...4.529077e+064.579794e+064.638775e+064.706484e+064.782430e+064.864823e+064.955055e+065.051547e+06NaNNaN
ZimbabweZWEUrban population (% of total)SP.URB.TOTL.IN.ZS12.60800012.82100013.08200013.57800014.09200014.62000015.16500...3.356000e+013.337800e+013.319600e+013.301500e+013.283400e+013.265400e+013.250100e+013.237600e+01NaNNaN
ZimbabweZWEUrban population growth (annual %)SP.URB.GROW4.8977464.9329425.3042287.0244657.0117986.9554726.91232...9.316901e-011.113585e+001.279630e+001.449081e+001.600765e+001.708155e+001.837793e+001.928627e+00NaNNaN
ZimbabweZWEUrban population living in areas where elevati...EN.POP.EL5M.UR.ZSNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
ZimbabweZWEUrban poverty gap at national poverty lines (%)SI.POV.URGPNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaN1.550000e+01NaNNaNNaNNaNNaNNaN
ZimbabweZWEUrban poverty headcount ratio at national pove...SI.POV.URHCNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaN4.650000e+01NaNNaNNaNNaNNaNNaN
ZimbabweZWEUse of IMF credit (DOD, current US$)DT.DOD.DIMF.CDNaNNaNNaNNaNNaNNaNNaN...1.294260e+085.423170e+085.287290e+085.270950e+085.201240e+085.193420e+084.867300e+084.637530e+08NaNNaN
ZimbabweZWEUse of insecticide-treated bed nets (% of unde...SH.MLR.NETS.ZSNaNNaNNaNNaNNaNNaNNaN...NaN1.730000e+01NaN9.700000e+00NaNNaN2.680000e+01NaNNaNNaN
ZimbabweZWEValue lost due to electrical outages (% of sales)IC.FRM.OUTG.ZSNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaN8.800000e+00NaNNaNNaNNaNNaNNaN
ZimbabweZWEVitamin A supplementation coverage rate (% of ...SN.ITK.VITA.ZSNaNNaNNaNNaNNaNNaNNaN...0.000000e+007.700000e+014.900000e+014.700000e+016.100000e+013.400000e+013.200000e+01NaNNaNNaN
ZimbabweZWEVulnerable employment, female (% of female emp...SL.EMP.VULN.FE.ZSNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaN8.310000e+017.560000e+01NaNNaNNaNNaNNaN
ZimbabweZWEVulnerable employment, male (% of male employm...SL.EMP.VULN.MA.ZSNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaN6.590000e+015.660000e+01NaNNaNNaNNaNNaN
ZimbabweZWEVulnerable employment, total (% of total emplo...SL.EMP.VULN.ZSNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaN7.450000e+016.550000e+01NaNNaNNaNNaNNaN
ZimbabweZWEWage and salaried workers, female (% of female...SL.EMP.WORK.FE.ZSNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaN1.650000e+012.410000e+01NaNNaNNaNNaNNaN
ZimbabweZWEWage and salaried workers, male (% of male emp...SL.EMP.WORK.MA.ZSNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaN3.340000e+014.270000e+01NaNNaNNaNNaNNaN
ZimbabweZWEWage and salaried workers, total (% of total e...SL.EMP.WORK.ZSNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaN2.490000e+013.400000e+01NaNNaNNaNNaNNaN
ZimbabweZWEWanted fertility rate (births per woman)SP.DYN.WFRTNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaN3.500000e+00NaNNaNNaNNaNNaNNaN
ZimbabweZWEWater productivity, total (constant 2010 US$ G...ER.GDP.FWTL.M3.KDNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaN3.543247e+00NaNNaNNaN
ZimbabweZWEWholesale price index (2010 = 100)FP.WPI.TOTLNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
ZimbabweZWEWomen participating in the three decisions (ow...SG.DMK.ALLD.FN.ZSNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaN7.450000e+01NaNNaNNaNNaNNaNNaN
ZimbabweZWEWomen who believe a husband is justified in be...SG.VAW.REAS.ZSNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaN3.960000e+01NaNNaN3.740000e+01NaNNaNNaN
ZimbabweZWEWomen who believe a husband is justified in be...SG.VAW.ARGU.ZSNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaN1.560000e+01NaNNaNNaNNaNNaNNaN
ZimbabweZWEWomen who believe a husband is justified in be...SG.VAW.BURN.ZSNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaN7.500000e+00NaNNaNNaNNaNNaNNaN
ZimbabweZWEWomen who believe a husband is justified in be...SG.VAW.GOES.ZSNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaN2.230000e+01NaNNaNNaNNaNNaNNaN
ZimbabweZWEWomen who believe a husband is justified in be...SG.VAW.NEGL.ZSNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaN2.140000e+01NaNNaNNaNNaNNaNNaN
ZimbabweZWEWomen who believe a husband is justified in be...SG.VAW.REFU.ZSNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaN1.690000e+01NaNNaNNaNNaNNaNNaN
ZimbabweZWEWomen who were first married by age 18 (% of w...SP.M18.2024.FE.ZSNaNNaNNaNNaNNaNNaNNaN...NaN3.010000e+01NaN3.050000e+01NaNNaN3.350000e+01NaNNaNNaN
ZimbabweZWEWomen's share of population ages 15+ living wi...SH.DYN.AIDS.FE.ZSNaNNaNNaNNaNNaNNaNNaN...5.876080e+015.881242e+015.882594e+015.889931e+015.893908e+015.890013e+015.882233e+015.885555e+01NaNNaN
ZimbabweZWEYouth literacy rate, population 15-24 years, b...SE.ADT.1524.LT.ZSNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaN9.093070e+01NaNNaNNaN9.175005e+01NaNNaN
\n", - "

383328 rows × 61 columns

\n", - "
" - ], - "text/plain": [ - " Country Code Indicator Name \\\n", - "Country Name \n", - "Arab World ARB 2005 PPP conversion factor, GDP (LCU per inter... \n", - "Arab World ARB 2005 PPP conversion factor, private consumptio... \n", - "Arab World ARB Access to electricity (% of population) \n", - "Arab World ARB Access to electricity, rural (% of rural popul... \n", - "Arab World ARB Access to electricity, urban (% of urban popul... \n", - "Arab World ARB Access to non-solid fuel (% of population) \n", - "Arab World ARB Access to non-solid fuel, rural (% of rural po... \n", - "Arab World ARB Access to non-solid fuel, urban (% of urban po... \n", - "Arab World ARB Account at a financial institution (% age 15+)... \n", - "Arab World ARB Account at a financial institution, female (% ... \n", - "Arab World ARB Account at a financial institution, income, po... \n", - "Arab World ARB Account at a financial institution, income, ri... \n", - "Arab World ARB Account at a financial institution, male (% ag... \n", - "Arab World ARB Adequacy of social insurance programs (% of to... \n", - "Arab World ARB Adequacy of social protection and labor progra... \n", - "Arab World ARB Adequacy of social safety net programs (% of t... \n", - "Arab World ARB Adequacy of unemployment benefits and ALMP (% ... \n", - "Arab World ARB Adjusted net enrollment rate, primary, female ... \n", - "Arab World ARB Adjusted net enrollment rate, primary, male (%... \n", - "Arab World ARB Adjusted net enrolment rate, primary, both sex... \n", - "Arab World ARB Adjusted net national income (annual % growth) \n", - "Arab World ARB Adjusted net national income (constant 2010 US$) \n", - "Arab World ARB Adjusted net national income (current US$) \n", - "Arab World ARB Adjusted net national income per capita (annua... \n", - "Arab World ARB Adjusted net national income per capita (const... \n", - "Arab World ARB Adjusted net national income per capita (curre... \n", - "Arab World ARB Adjusted net savings, excluding particulate em... \n", - "Arab World ARB Adjusted net savings, excluding particulate em... \n", - "Arab World ARB Adjusted net savings, including particulate em... \n", - "Arab World ARB Adjusted net savings, including particulate em... \n", - "... ... ... \n", - "Zimbabwe ZWE Urban land area where elevation is below 5 met... \n", - "Zimbabwe ZWE Urban population \n", - "Zimbabwe ZWE Urban population (% of total) \n", - "Zimbabwe ZWE Urban population growth (annual %) \n", - "Zimbabwe ZWE Urban population living in areas where elevati... \n", - "Zimbabwe ZWE Urban poverty gap at national poverty lines (%) \n", - "Zimbabwe ZWE Urban poverty headcount ratio at national pove... \n", - "Zimbabwe ZWE Use of IMF credit (DOD, current US$) \n", - "Zimbabwe ZWE Use of insecticide-treated bed nets (% of unde... \n", - "Zimbabwe ZWE Value lost due to electrical outages (% of sales) \n", - "Zimbabwe ZWE Vitamin A supplementation coverage rate (% of ... \n", - "Zimbabwe ZWE Vulnerable employment, female (% of female emp... \n", - "Zimbabwe ZWE Vulnerable employment, male (% of male employm... \n", - "Zimbabwe ZWE Vulnerable employment, total (% of total emplo... \n", - "Zimbabwe ZWE Wage and salaried workers, female (% of female... \n", - "Zimbabwe ZWE Wage and salaried workers, male (% of male emp... \n", - "Zimbabwe ZWE Wage and salaried workers, total (% of total e... \n", - "Zimbabwe ZWE Wanted fertility rate (births per woman) \n", - "Zimbabwe ZWE Water productivity, total (constant 2010 US$ G... \n", - "Zimbabwe ZWE Wholesale price index (2010 = 100) \n", - "Zimbabwe ZWE Women participating in the three decisions (ow... \n", - "Zimbabwe ZWE Women who believe a husband is justified in be... \n", - "Zimbabwe ZWE Women who believe a husband is justified in be... \n", - "Zimbabwe ZWE Women who believe a husband is justified in be... \n", - "Zimbabwe ZWE Women who believe a husband is justified in be... \n", - "Zimbabwe ZWE Women who believe a husband is justified in be... \n", - "Zimbabwe ZWE Women who believe a husband is justified in be... \n", - "Zimbabwe ZWE Women who were first married by age 18 (% of w... \n", - "Zimbabwe ZWE Women's share of population ages 15+ living wi... \n", - "Zimbabwe ZWE Youth literacy rate, population 15-24 years, b... \n", - "\n", - " Indicator Code 1960 1961 \\\n", - "Country Name \n", - "Arab World PA.NUS.PPP.05 NaN NaN \n", - "Arab World PA.NUS.PRVT.PP.05 NaN NaN \n", - "Arab World EG.ELC.ACCS.ZS NaN NaN \n", - "Arab World EG.ELC.ACCS.RU.ZS NaN NaN \n", - "Arab World EG.ELC.ACCS.UR.ZS NaN NaN \n", - "Arab World EG.NSF.ACCS.ZS NaN NaN \n", - "Arab World EG.NSF.ACCS.RU.ZS NaN NaN \n", - "Arab World EG.NSF.ACCS.UR.ZS NaN NaN \n", - "Arab World WP_time_01.1 NaN NaN \n", - "Arab World WP_time_01.3 NaN NaN \n", - "Arab World WP_time_01.8 NaN NaN \n", - "Arab World WP_time_01.9 NaN NaN \n", - "Arab World WP_time_01.2 NaN NaN \n", - "Arab World per_si_allsi.adq_pop_tot NaN NaN \n", - "Arab World per_allsp.adq_pop_tot NaN NaN \n", - "Arab World per_sa_allsa.adq_pop_tot NaN NaN \n", - "Arab World per_lm_alllm.adq_pop_tot NaN NaN \n", - "Arab World SE.PRM.TENR.FE NaN NaN \n", - "Arab World SE.PRM.TENR.MA NaN NaN \n", - "Arab World SE.PRM.TENR NaN NaN \n", - "Arab World NY.ADJ.NNTY.KD.ZG NaN NaN \n", - "Arab World NY.ADJ.NNTY.KD NaN NaN \n", - "Arab World NY.ADJ.NNTY.CD NaN NaN \n", - "Arab World NY.ADJ.NNTY.PC.KD.ZG NaN NaN \n", - "Arab World NY.ADJ.NNTY.PC.KD NaN NaN \n", - "Arab World NY.ADJ.NNTY.PC.CD NaN NaN \n", - "Arab World NY.ADJ.SVNX.GN.ZS NaN NaN \n", - "Arab World NY.ADJ.SVNX.CD NaN NaN \n", - "Arab World NY.ADJ.SVNG.GN.ZS NaN NaN \n", - "Arab World NY.ADJ.SVNG.CD NaN NaN \n", - "... ... ... ... \n", - "Zimbabwe AG.LND.EL5M.UR.K2 NaN NaN \n", - "Zimbabwe SP.URB.TOTL 473101.000000 497024.000000 \n", - "Zimbabwe SP.URB.TOTL.IN.ZS 12.608000 12.821000 \n", - "Zimbabwe SP.URB.GROW 4.897746 4.932942 \n", - "Zimbabwe EN.POP.EL5M.UR.ZS NaN NaN \n", - "Zimbabwe SI.POV.URGP NaN NaN \n", - "Zimbabwe SI.POV.URHC NaN NaN \n", - "Zimbabwe DT.DOD.DIMF.CD NaN NaN \n", - "Zimbabwe SH.MLR.NETS.ZS NaN NaN \n", - "Zimbabwe IC.FRM.OUTG.ZS NaN NaN \n", - "Zimbabwe SN.ITK.VITA.ZS NaN NaN \n", - "Zimbabwe SL.EMP.VULN.FE.ZS NaN NaN \n", - "Zimbabwe SL.EMP.VULN.MA.ZS NaN NaN \n", - "Zimbabwe SL.EMP.VULN.ZS NaN NaN \n", - "Zimbabwe SL.EMP.WORK.FE.ZS NaN NaN \n", - "Zimbabwe SL.EMP.WORK.MA.ZS NaN NaN \n", - "Zimbabwe SL.EMP.WORK.ZS NaN NaN \n", - "Zimbabwe SP.DYN.WFRT NaN NaN \n", - "Zimbabwe ER.GDP.FWTL.M3.KD NaN NaN \n", - "Zimbabwe FP.WPI.TOTL NaN NaN \n", - "Zimbabwe SG.DMK.ALLD.FN.ZS NaN NaN \n", - "Zimbabwe SG.VAW.REAS.ZS NaN NaN \n", - "Zimbabwe SG.VAW.ARGU.ZS NaN NaN \n", - "Zimbabwe SG.VAW.BURN.ZS NaN NaN \n", - "Zimbabwe SG.VAW.GOES.ZS NaN NaN \n", - "Zimbabwe SG.VAW.NEGL.ZS NaN NaN \n", - "Zimbabwe SG.VAW.REFU.ZS NaN NaN \n", - "Zimbabwe SP.M18.2024.FE.ZS NaN NaN \n", - "Zimbabwe SH.DYN.AIDS.FE.ZS NaN NaN \n", - "Zimbabwe SE.ADT.1524.LT.ZS NaN NaN \n", - "\n", - " 1962 1963 1964 1965 \\\n", - "Country Name \n", - "Arab World NaN NaN NaN NaN \n", - "Arab World NaN NaN NaN NaN \n", - "Arab World NaN NaN NaN NaN \n", - "Arab World NaN NaN NaN NaN \n", - "Arab World NaN NaN NaN NaN \n", - "Arab World NaN NaN NaN NaN \n", - "Arab World NaN NaN NaN NaN \n", - "Arab World NaN NaN NaN NaN \n", - "Arab World NaN NaN NaN NaN \n", - "Arab World NaN NaN NaN NaN \n", - "Arab World NaN NaN NaN NaN \n", - "Arab World NaN NaN NaN NaN \n", - "Arab World NaN NaN NaN NaN \n", - "Arab World NaN NaN NaN NaN \n", - "Arab World NaN NaN NaN NaN \n", - "Arab World NaN NaN NaN NaN \n", - "Arab World NaN NaN NaN NaN \n", - "Arab World NaN NaN NaN NaN \n", - "Arab World NaN NaN NaN NaN \n", - "Arab World NaN NaN NaN NaN \n", - "Arab World NaN NaN NaN NaN \n", - "Arab World NaN NaN NaN NaN \n", - "Arab World NaN NaN NaN NaN \n", - "Arab World NaN NaN NaN NaN \n", - "Arab World NaN NaN NaN NaN \n", - "Arab World NaN NaN NaN NaN \n", - "Arab World NaN NaN NaN NaN \n", - "Arab World NaN NaN NaN NaN \n", - "Arab World NaN NaN NaN NaN \n", - "Arab World NaN NaN NaN NaN \n", - "... ... ... ... ... \n", - "Zimbabwe NaN NaN NaN NaN \n", - "Zimbabwe 524099.000000 562238.000000 603076.000000 646516.000000 \n", - "Zimbabwe 13.082000 13.578000 14.092000 14.620000 \n", - "Zimbabwe 5.304228 7.024465 7.011798 6.955472 \n", - "Zimbabwe NaN NaN NaN NaN \n", - "Zimbabwe NaN NaN NaN NaN \n", - "Zimbabwe NaN NaN NaN NaN \n", - "Zimbabwe NaN NaN NaN NaN \n", - "Zimbabwe NaN NaN NaN NaN \n", - "Zimbabwe NaN NaN NaN NaN \n", - "Zimbabwe NaN NaN NaN NaN \n", - "Zimbabwe NaN NaN NaN NaN \n", - "Zimbabwe NaN NaN NaN NaN \n", - "Zimbabwe NaN NaN NaN NaN \n", - "Zimbabwe NaN NaN NaN NaN \n", - "Zimbabwe NaN NaN NaN NaN \n", - "Zimbabwe NaN NaN NaN NaN \n", - "Zimbabwe NaN NaN NaN NaN \n", - "Zimbabwe NaN NaN NaN NaN \n", - "Zimbabwe NaN NaN NaN NaN \n", - "Zimbabwe NaN NaN NaN NaN \n", - "Zimbabwe NaN NaN NaN NaN \n", - "Zimbabwe NaN NaN NaN NaN \n", - "Zimbabwe NaN NaN NaN NaN \n", - "Zimbabwe NaN NaN NaN NaN \n", - "Zimbabwe NaN NaN NaN NaN \n", - "Zimbabwe NaN NaN NaN NaN \n", - "Zimbabwe NaN NaN NaN NaN \n", - "Zimbabwe NaN NaN NaN NaN \n", - "Zimbabwe NaN NaN NaN NaN \n", - "\n", - " 1966 ... 2008 2009 \\\n", - "Country Name ... \n", - "Arab World NaN ... NaN NaN \n", - "Arab World NaN ... NaN NaN \n", - "Arab World NaN ... NaN NaN \n", - "Arab World NaN ... NaN NaN \n", - "Arab World NaN ... NaN NaN \n", - "Arab World NaN ... NaN NaN \n", - "Arab World NaN ... NaN NaN \n", - "Arab World NaN ... NaN NaN \n", - "Arab World NaN ... NaN NaN \n", - "Arab World NaN ... NaN NaN \n", - "Arab World NaN ... NaN NaN \n", - "Arab World NaN ... NaN NaN \n", - "Arab World NaN ... NaN NaN \n", - "Arab World NaN ... NaN NaN \n", - "Arab World NaN ... NaN NaN \n", - "Arab World NaN ... NaN NaN \n", - "Arab World NaN ... NaN NaN \n", - "Arab World NaN ... 8.147380e+01 8.169569e+01 \n", - "Arab World NaN ... 8.644414e+01 8.659069e+01 \n", - "Arab World NaN ... 8.401187e+01 8.419596e+01 \n", - "Arab World NaN ... NaN NaN \n", - "Arab World NaN ... NaN NaN \n", - "Arab World NaN ... 1.424482e+12 1.354331e+12 \n", - "Arab World NaN ... NaN NaN \n", - "Arab World NaN ... NaN NaN \n", - "Arab World NaN ... 4.228375e+03 3.924980e+03 \n", - "Arab World NaN ... 1.725361e+01 9.157418e+00 \n", - "Arab World NaN ... NaN NaN \n", - "Arab World NaN ... 1.704717e+01 8.936666e+00 \n", - "Arab World NaN ... NaN NaN \n", - "... ... ... ... ... \n", - "Zimbabwe NaN ... NaN NaN \n", - "Zimbabwe 692786.00000 ... 4.529077e+06 4.579794e+06 \n", - "Zimbabwe 15.16500 ... 3.356000e+01 3.337800e+01 \n", - "Zimbabwe 6.91232 ... 9.316901e-01 1.113585e+00 \n", - "Zimbabwe NaN ... NaN NaN \n", - "Zimbabwe NaN ... NaN NaN \n", - "Zimbabwe NaN ... NaN NaN \n", - "Zimbabwe NaN ... 1.294260e+08 5.423170e+08 \n", - "Zimbabwe NaN ... NaN 1.730000e+01 \n", - "Zimbabwe NaN ... NaN NaN \n", - "Zimbabwe NaN ... 0.000000e+00 7.700000e+01 \n", - "Zimbabwe NaN ... NaN NaN \n", - "Zimbabwe NaN ... NaN NaN \n", - "Zimbabwe NaN ... NaN NaN \n", - "Zimbabwe NaN ... NaN NaN \n", - "Zimbabwe NaN ... NaN NaN \n", - "Zimbabwe NaN ... NaN NaN \n", - "Zimbabwe NaN ... NaN NaN \n", - "Zimbabwe NaN ... NaN NaN \n", - "Zimbabwe NaN ... NaN NaN \n", - "Zimbabwe NaN ... NaN NaN \n", - "Zimbabwe NaN ... NaN NaN \n", - "Zimbabwe NaN ... NaN NaN \n", - "Zimbabwe NaN ... NaN NaN \n", - "Zimbabwe NaN ... NaN NaN \n", - "Zimbabwe NaN ... NaN NaN \n", - "Zimbabwe NaN ... NaN NaN \n", - "Zimbabwe NaN ... NaN 3.010000e+01 \n", - "Zimbabwe NaN ... 5.876080e+01 5.881242e+01 \n", - "Zimbabwe NaN ... NaN NaN \n", - "\n", - " 2010 2011 2012 2013 \\\n", - "Country Name \n", - "Arab World NaN NaN NaN NaN \n", - "Arab World NaN NaN NaN NaN \n", - "Arab World 8.436235e+01 NaN 8.628035e+01 NaN \n", - "Arab World 7.198423e+01 NaN 7.391781e+01 NaN \n", - "Arab World 9.383966e+01 NaN 9.515673e+01 NaN \n", - "Arab World 8.602252e+01 NaN 8.658057e+01 NaN \n", - "Arab World 7.456626e+01 NaN 7.494069e+01 NaN \n", - "Arab World 9.455237e+01 NaN 9.497705e+01 NaN \n", - "Arab World NaN NaN NaN NaN \n", - "Arab World NaN NaN NaN NaN \n", - "Arab World NaN NaN NaN NaN \n", - "Arab World NaN NaN NaN NaN \n", - "Arab World NaN NaN NaN NaN \n", - "Arab World NaN NaN NaN NaN \n", - "Arab World NaN NaN NaN NaN \n", - "Arab World NaN NaN NaN NaN \n", - "Arab World NaN NaN NaN NaN \n", - "Arab World 8.287165e+01 8.286139e+01 8.440141e+01 8.391403e+01 \n", - "Arab World 8.745258e+01 8.752652e+01 8.772817e+01 8.703988e+01 \n", - "Arab World 8.521200e+01 8.524514e+01 8.610167e+01 8.551194e+01 \n", - "Arab World NaN 9.524779e+00 6.706404e+00 2.499334e+00 \n", - "Arab World 1.529192e+12 1.674845e+12 1.787166e+12 1.831834e+12 \n", - "Arab World 1.529192e+12 1.773875e+12 2.012007e+12 2.088333e+12 \n", - "Arab World NaN 7.122247e+00 4.458066e+00 4.026424e-01 \n", - "Arab World 4.330613e+03 4.639050e+03 4.845862e+03 4.865373e+03 \n", - "Arab World 4.330613e+03 4.913349e+03 5.455513e+03 5.546640e+03 \n", - "Arab World 1.220151e+01 1.690138e+01 1.645197e+01 1.592986e+01 \n", - "Arab World NaN NaN NaN NaN \n", - "Arab World 1.198311e+01 1.668852e+01 1.624965e+01 1.573042e+01 \n", - "Arab World NaN NaN NaN NaN \n", - "... ... ... ... ... \n", - "Zimbabwe NaN NaN NaN NaN \n", - "Zimbabwe 4.638775e+06 4.706484e+06 4.782430e+06 4.864823e+06 \n", - "Zimbabwe 3.319600e+01 3.301500e+01 3.283400e+01 3.265400e+01 \n", - "Zimbabwe 1.279630e+00 1.449081e+00 1.600765e+00 1.708155e+00 \n", - "Zimbabwe NaN NaN NaN NaN \n", - "Zimbabwe NaN 1.550000e+01 NaN NaN \n", - "Zimbabwe NaN 4.650000e+01 NaN NaN \n", - "Zimbabwe 5.287290e+08 5.270950e+08 5.201240e+08 5.193420e+08 \n", - "Zimbabwe NaN 9.700000e+00 NaN NaN \n", - "Zimbabwe NaN 8.800000e+00 NaN NaN \n", - "Zimbabwe 4.900000e+01 4.700000e+01 6.100000e+01 3.400000e+01 \n", - "Zimbabwe NaN 8.310000e+01 7.560000e+01 NaN \n", - "Zimbabwe NaN 6.590000e+01 5.660000e+01 NaN \n", - "Zimbabwe NaN 7.450000e+01 6.550000e+01 NaN \n", - "Zimbabwe NaN 1.650000e+01 2.410000e+01 NaN \n", - "Zimbabwe NaN 3.340000e+01 4.270000e+01 NaN \n", - "Zimbabwe NaN 2.490000e+01 3.400000e+01 NaN \n", - "Zimbabwe NaN 3.500000e+00 NaN NaN \n", - "Zimbabwe NaN NaN NaN NaN \n", - "Zimbabwe NaN NaN NaN NaN \n", - "Zimbabwe NaN 7.450000e+01 NaN NaN \n", - "Zimbabwe NaN 3.960000e+01 NaN NaN \n", - "Zimbabwe NaN 1.560000e+01 NaN NaN \n", - "Zimbabwe NaN 7.500000e+00 NaN NaN \n", - "Zimbabwe NaN 2.230000e+01 NaN NaN \n", - "Zimbabwe NaN 2.140000e+01 NaN NaN \n", - "Zimbabwe NaN 1.690000e+01 NaN NaN \n", - "Zimbabwe NaN 3.050000e+01 NaN NaN \n", - "Zimbabwe 5.882594e+01 5.889931e+01 5.893908e+01 5.890013e+01 \n", - "Zimbabwe NaN 9.093070e+01 NaN NaN \n", - "\n", - " 2014 2015 2016 Unnamed: 61 \n", - "Country Name \n", - "Arab World NaN NaN NaN NaN \n", - "Arab World NaN NaN NaN NaN \n", - "Arab World NaN NaN NaN NaN \n", - "Arab World NaN NaN NaN NaN \n", - "Arab World NaN NaN NaN NaN \n", - "Arab World NaN NaN NaN NaN \n", - "Arab World NaN NaN NaN NaN \n", - "Arab World NaN NaN NaN NaN \n", - "Arab World NaN NaN NaN NaN \n", - "Arab World NaN NaN NaN NaN \n", - "Arab World NaN NaN NaN NaN \n", - "Arab World NaN NaN NaN NaN \n", - "Arab World NaN NaN NaN NaN \n", - "Arab World NaN NaN NaN NaN \n", - "Arab World NaN NaN NaN NaN \n", - "Arab World NaN NaN NaN NaN \n", - "Arab World NaN NaN NaN NaN \n", - "Arab World 8.382083e+01 NaN NaN NaN \n", - "Arab World 8.675339e+01 NaN NaN NaN \n", - "Arab World 8.532015e+01 NaN NaN NaN \n", - "Arab World NaN NaN NaN NaN \n", - "Arab World NaN NaN NaN NaN \n", - "Arab World 2.156246e+12 NaN NaN NaN \n", - "Arab World NaN NaN NaN NaN \n", - "Arab World NaN NaN NaN NaN \n", - "Arab World 5.611972e+03 NaN NaN NaN \n", - "Arab World NaN NaN NaN NaN \n", - "Arab World NaN NaN NaN NaN \n", - "Arab World NaN NaN NaN NaN \n", - "Arab World NaN NaN NaN NaN \n", - "... ... ... ... ... \n", - "Zimbabwe NaN NaN NaN NaN \n", - "Zimbabwe 4.955055e+06 5.051547e+06 NaN NaN \n", - "Zimbabwe 3.250100e+01 3.237600e+01 NaN NaN \n", - "Zimbabwe 1.837793e+00 1.928627e+00 NaN NaN \n", - "Zimbabwe NaN NaN NaN NaN \n", - "Zimbabwe NaN NaN NaN NaN \n", - "Zimbabwe NaN NaN NaN NaN \n", - "Zimbabwe 4.867300e+08 4.637530e+08 NaN NaN \n", - "Zimbabwe 2.680000e+01 NaN NaN NaN \n", - "Zimbabwe NaN NaN NaN NaN \n", - "Zimbabwe 3.200000e+01 NaN NaN NaN \n", - "Zimbabwe NaN NaN NaN NaN \n", - "Zimbabwe NaN NaN NaN NaN \n", - "Zimbabwe NaN NaN NaN NaN \n", - "Zimbabwe NaN NaN NaN NaN \n", - "Zimbabwe NaN NaN NaN NaN \n", - "Zimbabwe NaN NaN NaN NaN \n", - "Zimbabwe NaN NaN NaN NaN \n", - "Zimbabwe 3.543247e+00 NaN NaN NaN \n", - "Zimbabwe NaN NaN NaN NaN \n", - "Zimbabwe NaN NaN NaN NaN \n", - "Zimbabwe 3.740000e+01 NaN NaN NaN \n", - "Zimbabwe NaN NaN NaN NaN \n", - "Zimbabwe NaN NaN NaN NaN \n", - "Zimbabwe NaN NaN NaN NaN \n", - "Zimbabwe NaN NaN NaN NaN \n", - "Zimbabwe NaN NaN NaN NaN \n", - "Zimbabwe 3.350000e+01 NaN NaN NaN \n", - "Zimbabwe 5.882233e+01 5.885555e+01 NaN NaN \n", - "Zimbabwe NaN 9.175005e+01 NaN NaN \n", - "\n", - "[383328 rows x 61 columns]" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "wb" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": { - "collapsed": false - }, - "outputs": [ - { - "data": { - "text/plain": [ - "Index(['Arab World', 'Arab World', 'Arab World', 'Arab World', 'Arab World',\n", - " 'Arab World', 'Arab World', 'Arab World', 'Arab World', 'Arab World',\n", - " ...\n", - " 'Zimbabwe', 'Zimbabwe', 'Zimbabwe', 'Zimbabwe', 'Zimbabwe', 'Zimbabwe',\n", - " 'Zimbabwe', 'Zimbabwe', 'Zimbabwe', 'Zimbabwe'],\n", - " dtype='object', name='Country Name', length=383328)" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "wb.index" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": { - "collapsed": false - }, - "outputs": [], - "source": [ - "us = set([n for n in wb.index if n.startswith(\"U\")])" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": { - "collapsed": false, - "scrolled": true - }, - "outputs": [ - { - "data": { - "text/plain": [ - "False" - ] - }, - "execution_count": 20, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "\"United States\" in wb" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "metadata": { - "collapsed": false - }, - "outputs": [ - { - "data": { - "text/plain": [ - "{'Uganda',\n", - " 'Ukraine',\n", - " 'United Arab Emirates',\n", - " 'United Kingdom',\n", - " 'United States',\n", - " 'Upper middle income',\n", - " 'Uruguay',\n", - " 'Uzbekistan'}" - ] - }, - "execution_count": 21, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "us" - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "metadata": { - "collapsed": false - }, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Country CodeIndicator NameIndicator Code1960196119621963196419651966...200820092010201120122013201420152016Unnamed: 61
Country Name
United StatesUSA2005 PPP conversion factor, GDP (LCU per inter...PA.NUS.PPP.05NaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
United StatesUSA2005 PPP conversion factor, private consumptio...PA.NUS.PRVT.PP.05NaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
United StatesUSAAccess to electricity (% of population)EG.ELC.ACCS.ZSNaNNaNNaNNaNNaNNaNNaN...NaNNaN1.000000e+02NaN1.000000e+02NaNNaNNaNNaNNaN
United StatesUSAAccess to electricity, rural (% of rural popul...EG.ELC.ACCS.RU.ZSNaNNaNNaNNaNNaNNaNNaN...NaNNaN1.000000e+02NaN1.000000e+02NaNNaNNaNNaNNaN
United StatesUSAAccess to electricity, urban (% of urban popul...EG.ELC.ACCS.UR.ZSNaNNaNNaNNaNNaNNaNNaN...NaNNaN1.000000e+02NaN1.000000e+02NaNNaNNaNNaNNaN
United StatesUSAAccess to non-solid fuel (% of population)EG.NSF.ACCS.ZSNaNNaNNaNNaNNaNNaNNaN...NaNNaN1.000000e+02NaN1.000000e+02NaNNaNNaNNaNNaN
United StatesUSAAccess to non-solid fuel, rural (% of rural po...EG.NSF.ACCS.RU.ZSNaNNaNNaNNaNNaNNaNNaN...NaNNaN1.000000e+02NaN1.000000e+02NaNNaNNaNNaNNaN
United StatesUSAAccess to non-solid fuel, urban (% of urban po...EG.NSF.ACCS.UR.ZSNaNNaNNaNNaNNaNNaNNaN...NaNNaN1.000000e+02NaN1.000000e+02NaNNaNNaNNaNNaN
United StatesUSAAccount at a financial institution (% age 15+)...WP_time_01.1NaNNaNNaNNaNNaNNaNNaN...NaNNaNNaN8.795786e+01NaNNaN9.358380e+01NaNNaNNaN
United StatesUSAAccount at a financial institution, female (% ...WP_time_01.3NaNNaNNaNNaNNaNNaNNaN...NaNNaNNaN8.406905e+01NaNNaN9.479771e+01NaNNaNNaN
United StatesUSAAccount at a financial institution, income, po...WP_time_01.8NaNNaNNaNNaNNaNNaNNaN...NaNNaNNaN8.099529e+01NaNNaN8.711619e+01NaNNaNNaN
United StatesUSAAccount at a financial institution, income, ri...WP_time_01.9NaNNaNNaNNaNNaNNaNNaN...NaNNaNNaN9.281008e+01NaNNaN9.790414e+01NaNNaNNaN
United StatesUSAAccount at a financial institution, male (% ag...WP_time_01.2NaNNaNNaNNaNNaNNaNNaN...NaNNaNNaN9.198194e+01NaNNaN9.236126e+01NaNNaNNaN
United StatesUSAAdequacy of social insurance programs (% of to...per_si_allsi.adq_pop_totNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
United StatesUSAAdequacy of social protection and labor progra...per_allsp.adq_pop_totNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
United StatesUSAAdequacy of social safety net programs (% of t...per_sa_allsa.adq_pop_totNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
United StatesUSAAdequacy of unemployment benefits and ALMP (% ...per_lm_alllm.adq_pop_totNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
United StatesUSAAdjusted net enrollment rate, primary, female ...SE.PRM.TENR.FENaNNaNNaNNaNNaNNaNNaN...9.794343e+019.709736e+019.513818e+019.467457e+019.410391e+019.262706e+019.443206e+01NaNNaNNaN
United StatesUSAAdjusted net enrollment rate, primary, male (%...SE.PRM.TENR.MANaNNaNNaNNaNNaNNaNNaN...9.704943e+019.501399e+019.446875e+019.324649e+019.411461e+019.292106e+019.365279e+01NaNNaNNaN
United StatesUSAAdjusted net enrolment rate, primary, both sex...SE.PRM.TENRNaNNaNNaNNaNNaNNaNNaN...9.748575e+019.603130e+019.479582e+019.394464e+019.410937e+019.277709e+019.403453e+01NaNNaNNaN
United StatesUSAAdjusted net national income (annual % growth)NY.ADJ.NNTY.KD.ZGNaNNaNNaNNaNNaNNaNNaN...-2.788922e+00-8.504354e-013.342398e+002.076668e+003.645016e+001.333261e+002.769931e+00NaNNaNNaN
United StatesUSAAdjusted net national income (constant 2010 US$)NY.ADJ.NNTY.KDNaNNaNNaNNaNNaNNaNNaN...1.231703e+131.221228e+131.262046e+131.288254e+131.335212e+131.353013e+131.390491e+13NaNNaNNaN
United StatesUSAAdjusted net national income (current US$)NY.ADJ.NNTY.CDNaNNaNNaNNaNNaNNaNNaN...1.216984e+131.203082e+131.262046e+131.319294e+131.391432e+131.429645e+131.494105e+13NaNNaNNaN
United StatesUSAAdjusted net national income per capita (annua...NY.ADJ.NNTY.PC.KD.ZGNaNNaNNaNNaNNaNNaNNaN...-3.704072e+00-1.715833e+002.482066e+001.299926e+002.858440e+005.887723e-011.970734e+00NaNNaNNaN
United StatesUSAAdjusted net national income per capita (const...NY.ADJ.NNTY.PC.KDNaNNaNNaNNaNNaNNaNNaN...4.050401e+043.980903e+044.079712e+044.132745e+044.250877e+044.275905e+044.360171e+04NaNNaNNaN
United StatesUSAAdjusted net national income per capita (curre...NY.ADJ.NNTY.PC.CDNaNNaNNaNNaNNaNNaNNaN...4.001999e+043.921754e+044.079712e+044.232319e+044.429865e+044.518081e+044.685075e+04NaNNaNNaN
United StatesUSAAdjusted net savings, excluding particulate em...NY.ADJ.SVNX.GN.ZSNaNNaNNaNNaNNaNNaNNaN...2.075956e+001.735874e+002.973072e+003.712649e+005.847932e+005.621072e+006.560417e+00NaNNaNNaN
United StatesUSAAdjusted net savings, excluding particulate em...NY.ADJ.SVNX.CDNaNNaNNaNNaNNaNNaNNaN...3.070588e+112.516063e+114.495612e+115.867062e+119.705286e+119.607086e+111.169276e+12NaNNaNNaN
United StatesUSAAdjusted net savings, including particulate em...NY.ADJ.SVNG.GN.ZSNaNNaNNaNNaNNaNNaNNaN...1.889611e+001.548930e+002.797694e+003.545417e+005.690151e+005.470228e+006.418385e+00NaNNaNNaN
United StatesUSAAdjusted net savings, including particulate em...NY.ADJ.SVNG.CDNaNNaNNaNNaNNaNNaNNaN...2.794962e+112.245096e+114.230421e+115.602786e+119.443431e+119.349277e+111.143962e+12NaNNaNNaN
..................................................................
United StatesUSAUrban land area where elevation is below 5 met...AG.LND.EL5M.UR.K2NaNNaNNaNNaNNaNNaNNaN...NaNNaN1.752022e+04NaNNaNNaNNaNNaNNaNNaN
United StatesUSAUrban populationSP.URB.TOTL1.264625e+081.292762e+081.319887e+081.346154e+081.372160e+081.396631e+081.420087e+08...2.446071e+082.472763e+082.498656e+082.523052e+082.547624e+082.571827e+082.597405e+082.623324e+08NaNNaN
United StatesUSAUrban population (% of total)SP.URB.TOTL.IN.ZS6.999600e+017.037700e+017.075700e+017.113400e+017.150800e+017.187900e+017.224700e+01...8.043800e+018.060600e+018.077200e+018.094000e+018.110800e+018.127700e+018.144700e+018.161700e+01NaNNaN
United StatesUSAUrban population growth (annual %)SP.URB.GROW2.449104e+002.200571e+002.076494e+001.970559e+001.913437e+001.767653e+001.665559e+00...1.156186e+001.085290e+001.041720e+009.716271e-019.691533e-019.455534e-019.896394e-019.929296e-01NaNNaN
United StatesUSAUrban population living in areas where elevati...EN.POP.EL5M.UR.ZSNaNNaNNaNNaNNaNNaNNaN...NaNNaN2.263942e+00NaNNaNNaNNaNNaNNaNNaN
United StatesUSAUrban poverty gap at national poverty lines (%)SI.POV.URGPNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
United StatesUSAUrban poverty headcount ratio at national pove...SI.POV.URHCNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
United StatesUSAUse of IMF credit (DOD, current US$)DT.DOD.DIMF.CDNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
United StatesUSAUse of insecticide-treated bed nets (% of unde...SH.MLR.NETS.ZSNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
United StatesUSAValue lost due to electrical outages (% of sales)IC.FRM.OUTG.ZSNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
United StatesUSAVitamin A supplementation coverage rate (% of ...SN.ITK.VITA.ZSNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
United StatesUSAVulnerable employment, female (% of female emp...SL.EMP.VULN.FE.ZSNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
United StatesUSAVulnerable employment, male (% of male employm...SL.EMP.VULN.MA.ZSNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
United StatesUSAVulnerable employment, total (% of total emplo...SL.EMP.VULN.ZSNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
United StatesUSAWage and salaried workers, female (% of female...SL.EMP.WORK.FE.ZSNaNNaNNaNNaNNaNNaNNaN...9.440000e+019.430000e+019.440000e+019.450000e+019.440000e+019.440000e+01NaNNaNNaNNaN
United StatesUSAWage and salaried workers, male (% of male emp...SL.EMP.WORK.MA.ZSNaNNaNNaNNaNNaNNaNNaN...9.170000e+019.160000e+019.170000e+019.200000e+019.220000e+019.250000e+01NaNNaNNaNNaN
United StatesUSAWage and salaried workers, total (% of total e...SL.EMP.WORK.ZSNaNNaNNaNNaNNaNNaNNaN...9.300000e+019.290000e+019.300000e+019.320000e+019.320000e+019.340000e+01NaNNaNNaNNaN
United StatesUSAWanted fertility rate (births per woman)SP.DYN.WFRTNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
United StatesUSAWater productivity, total (constant 2010 US$ G...ER.GDP.FWTL.M3.KDNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaN3.200610e+01NaN3.331436e+01NaNNaNNaN
United StatesUSAWholesale price index (2010 = 100)FP.WPI.TOTL1.715426e+011.709399e+011.713467e+011.708947e+011.712412e+011.746468e+011.803880e+01...1.026299e+029.359888e+011.000000e+021.088326e+021.094325e+021.101092e+021.111422e+021.030900e+02NaNNaN
United StatesUSAWomen participating in the three decisions (ow...SG.DMK.ALLD.FN.ZSNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
United StatesUSAWomen who believe a husband is justified in be...SG.VAW.REAS.ZSNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
United StatesUSAWomen who believe a husband is justified in be...SG.VAW.ARGU.ZSNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
United StatesUSAWomen who believe a husband is justified in be...SG.VAW.BURN.ZSNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
United StatesUSAWomen who believe a husband is justified in be...SG.VAW.GOES.ZSNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
United StatesUSAWomen who believe a husband is justified in be...SG.VAW.NEGL.ZSNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
United StatesUSAWomen who believe a husband is justified in be...SG.VAW.REFU.ZSNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
United StatesUSAWomen who were first married by age 18 (% of w...SP.M18.2024.FE.ZSNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
United StatesUSAWomen's share of population ages 15+ living wi...SH.DYN.AIDS.FE.ZSNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
United StatesUSAYouth literacy rate, population 15-24 years, b...SE.ADT.1524.LT.ZSNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
\n", - "

1452 rows × 61 columns

\n", - "
" - ], - "text/plain": [ - " Country Code Indicator Name \\\n", - "Country Name \n", - "United States USA 2005 PPP conversion factor, GDP (LCU per inter... \n", - "United States USA 2005 PPP conversion factor, private consumptio... \n", - "United States USA Access to electricity (% of population) \n", - "United States USA Access to electricity, rural (% of rural popul... \n", - "United States USA Access to electricity, urban (% of urban popul... \n", - "United States USA Access to non-solid fuel (% of population) \n", - "United States USA Access to non-solid fuel, rural (% of rural po... \n", - "United States USA Access to non-solid fuel, urban (% of urban po... \n", - "United States USA Account at a financial institution (% age 15+)... \n", - "United States USA Account at a financial institution, female (% ... \n", - "United States USA Account at a financial institution, income, po... \n", - "United States USA Account at a financial institution, income, ri... \n", - "United States USA Account at a financial institution, male (% ag... \n", - "United States USA Adequacy of social insurance programs (% of to... \n", - "United States USA Adequacy of social protection and labor progra... \n", - "United States USA Adequacy of social safety net programs (% of t... \n", - "United States USA Adequacy of unemployment benefits and ALMP (% ... \n", - "United States USA Adjusted net enrollment rate, primary, female ... \n", - "United States USA Adjusted net enrollment rate, primary, male (%... \n", - "United States USA Adjusted net enrolment rate, primary, both sex... \n", - "United States USA Adjusted net national income (annual % growth) \n", - "United States USA Adjusted net national income (constant 2010 US$) \n", - "United States USA Adjusted net national income (current US$) \n", - "United States USA Adjusted net national income per capita (annua... \n", - "United States USA Adjusted net national income per capita (const... \n", - "United States USA Adjusted net national income per capita (curre... \n", - "United States USA Adjusted net savings, excluding particulate em... \n", - "United States USA Adjusted net savings, excluding particulate em... \n", - "United States USA Adjusted net savings, including particulate em... \n", - "United States USA Adjusted net savings, including particulate em... \n", - "... ... ... \n", - "United States USA Urban land area where elevation is below 5 met... \n", - "United States USA Urban population \n", - "United States USA Urban population (% of total) \n", - "United States USA Urban population growth (annual %) \n", - "United States USA Urban population living in areas where elevati... \n", - "United States USA Urban poverty gap at national poverty lines (%) \n", - "United States USA Urban poverty headcount ratio at national pove... \n", - "United States USA Use of IMF credit (DOD, current US$) \n", - "United States USA Use of insecticide-treated bed nets (% of unde... \n", - "United States USA Value lost due to electrical outages (% of sales) \n", - "United States USA Vitamin A supplementation coverage rate (% of ... \n", - "United States USA Vulnerable employment, female (% of female emp... \n", - "United States USA Vulnerable employment, male (% of male employm... \n", - "United States USA Vulnerable employment, total (% of total emplo... \n", - "United States USA Wage and salaried workers, female (% of female... \n", - "United States USA Wage and salaried workers, male (% of male emp... \n", - "United States USA Wage and salaried workers, total (% of total e... \n", - "United States USA Wanted fertility rate (births per woman) \n", - "United States USA Water productivity, total (constant 2010 US$ G... \n", - "United States USA Wholesale price index (2010 = 100) \n", - "United States USA Women participating in the three decisions (ow... \n", - "United States USA Women who believe a husband is justified in be... \n", - "United States USA Women who believe a husband is justified in be... \n", - "United States USA Women who believe a husband is justified in be... \n", - "United States USA Women who believe a husband is justified in be... \n", - "United States USA Women who believe a husband is justified in be... \n", - "United States USA Women who believe a husband is justified in be... \n", - "United States USA Women who were first married by age 18 (% of w... \n", - "United States USA Women's share of population ages 15+ living wi... \n", - "United States USA Youth literacy rate, population 15-24 years, b... \n", - "\n", - " Indicator Code 1960 1961 \\\n", - "Country Name \n", - "United States PA.NUS.PPP.05 NaN NaN \n", - "United States PA.NUS.PRVT.PP.05 NaN NaN \n", - "United States EG.ELC.ACCS.ZS NaN NaN \n", - "United States EG.ELC.ACCS.RU.ZS NaN NaN \n", - "United States EG.ELC.ACCS.UR.ZS NaN NaN \n", - "United States EG.NSF.ACCS.ZS NaN NaN \n", - "United States EG.NSF.ACCS.RU.ZS NaN NaN \n", - "United States EG.NSF.ACCS.UR.ZS NaN NaN \n", - "United States WP_time_01.1 NaN NaN \n", - "United States WP_time_01.3 NaN NaN \n", - "United States WP_time_01.8 NaN NaN \n", - "United States WP_time_01.9 NaN NaN \n", - "United States WP_time_01.2 NaN NaN \n", - "United States per_si_allsi.adq_pop_tot NaN NaN \n", - "United States per_allsp.adq_pop_tot NaN NaN \n", - "United States per_sa_allsa.adq_pop_tot NaN NaN \n", - "United States per_lm_alllm.adq_pop_tot NaN NaN \n", - "United States SE.PRM.TENR.FE NaN NaN \n", - "United States SE.PRM.TENR.MA NaN NaN \n", - "United States SE.PRM.TENR NaN NaN \n", - "United States NY.ADJ.NNTY.KD.ZG NaN NaN \n", - "United States NY.ADJ.NNTY.KD NaN NaN \n", - "United States NY.ADJ.NNTY.CD NaN NaN \n", - "United States NY.ADJ.NNTY.PC.KD.ZG NaN NaN \n", - "United States NY.ADJ.NNTY.PC.KD NaN NaN \n", - "United States NY.ADJ.NNTY.PC.CD NaN NaN \n", - "United States NY.ADJ.SVNX.GN.ZS NaN NaN \n", - "United States NY.ADJ.SVNX.CD NaN NaN \n", - "United States NY.ADJ.SVNG.GN.ZS NaN NaN \n", - "United States NY.ADJ.SVNG.CD NaN NaN \n", - "... ... ... ... \n", - "United States AG.LND.EL5M.UR.K2 NaN NaN \n", - "United States SP.URB.TOTL 1.264625e+08 1.292762e+08 \n", - "United States SP.URB.TOTL.IN.ZS 6.999600e+01 7.037700e+01 \n", - "United States SP.URB.GROW 2.449104e+00 2.200571e+00 \n", - "United States EN.POP.EL5M.UR.ZS NaN NaN \n", - "United States SI.POV.URGP NaN NaN \n", - "United States SI.POV.URHC NaN NaN \n", - "United States DT.DOD.DIMF.CD NaN NaN \n", - "United States SH.MLR.NETS.ZS NaN NaN \n", - "United States IC.FRM.OUTG.ZS NaN NaN \n", - "United States SN.ITK.VITA.ZS NaN NaN \n", - "United States SL.EMP.VULN.FE.ZS NaN NaN \n", - "United States SL.EMP.VULN.MA.ZS NaN NaN \n", - "United States SL.EMP.VULN.ZS NaN NaN \n", - "United States SL.EMP.WORK.FE.ZS NaN NaN \n", - "United States SL.EMP.WORK.MA.ZS NaN NaN \n", - "United States SL.EMP.WORK.ZS NaN NaN \n", - "United States SP.DYN.WFRT NaN NaN \n", - "United States ER.GDP.FWTL.M3.KD NaN NaN \n", - "United States FP.WPI.TOTL 1.715426e+01 1.709399e+01 \n", - "United States SG.DMK.ALLD.FN.ZS NaN NaN \n", - "United States SG.VAW.REAS.ZS NaN NaN \n", - "United States SG.VAW.ARGU.ZS NaN NaN \n", - "United States SG.VAW.BURN.ZS NaN NaN \n", - "United States SG.VAW.GOES.ZS NaN NaN \n", - "United States SG.VAW.NEGL.ZS NaN NaN \n", - "United States SG.VAW.REFU.ZS NaN NaN \n", - "United States SP.M18.2024.FE.ZS NaN NaN \n", - "United States SH.DYN.AIDS.FE.ZS NaN NaN \n", - "United States SE.ADT.1524.LT.ZS NaN NaN \n", - "\n", - " 1962 1963 1964 1965 \\\n", - "Country Name \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "... ... ... ... ... \n", - "United States NaN NaN NaN NaN \n", - "United States 1.319887e+08 1.346154e+08 1.372160e+08 1.396631e+08 \n", - "United States 7.075700e+01 7.113400e+01 7.150800e+01 7.187900e+01 \n", - "United States 2.076494e+00 1.970559e+00 1.913437e+00 1.767653e+00 \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States 1.713467e+01 1.708947e+01 1.712412e+01 1.746468e+01 \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "\n", - " 1966 ... 2008 2009 \\\n", - "Country Name ... \n", - "United States NaN ... NaN NaN \n", - "United States NaN ... NaN NaN \n", - "United States NaN ... NaN NaN \n", - "United States NaN ... NaN NaN \n", - "United States NaN ... NaN NaN \n", - "United States NaN ... NaN NaN \n", - "United States NaN ... NaN NaN \n", - "United States NaN ... NaN NaN \n", - "United States NaN ... NaN NaN \n", - "United States NaN ... NaN NaN \n", - "United States NaN ... NaN NaN \n", - "United States NaN ... NaN NaN \n", - "United States NaN ... NaN NaN \n", - "United States NaN ... NaN NaN \n", - "United States NaN ... NaN NaN \n", - "United States NaN ... NaN NaN \n", - "United States NaN ... NaN NaN \n", - "United States NaN ... 9.794343e+01 9.709736e+01 \n", - "United States NaN ... 9.704943e+01 9.501399e+01 \n", - "United States NaN ... 9.748575e+01 9.603130e+01 \n", - "United States NaN ... -2.788922e+00 -8.504354e-01 \n", - "United States NaN ... 1.231703e+13 1.221228e+13 \n", - "United States NaN ... 1.216984e+13 1.203082e+13 \n", - "United States NaN ... -3.704072e+00 -1.715833e+00 \n", - "United States NaN ... 4.050401e+04 3.980903e+04 \n", - "United States NaN ... 4.001999e+04 3.921754e+04 \n", - "United States NaN ... 2.075956e+00 1.735874e+00 \n", - "United States NaN ... 3.070588e+11 2.516063e+11 \n", - "United States NaN ... 1.889611e+00 1.548930e+00 \n", - "United States NaN ... 2.794962e+11 2.245096e+11 \n", - "... ... ... ... ... \n", - "United States NaN ... NaN NaN \n", - "United States 1.420087e+08 ... 2.446071e+08 2.472763e+08 \n", - "United States 7.224700e+01 ... 8.043800e+01 8.060600e+01 \n", - "United States 1.665559e+00 ... 1.156186e+00 1.085290e+00 \n", - "United States NaN ... NaN NaN \n", - "United States NaN ... NaN NaN \n", - "United States NaN ... NaN NaN \n", - "United States NaN ... NaN NaN \n", - "United States NaN ... NaN NaN \n", - "United States NaN ... NaN NaN \n", - "United States NaN ... NaN NaN \n", - "United States NaN ... NaN NaN \n", - "United States NaN ... NaN NaN \n", - "United States NaN ... NaN NaN \n", - "United States NaN ... 9.440000e+01 9.430000e+01 \n", - "United States NaN ... 9.170000e+01 9.160000e+01 \n", - "United States NaN ... 9.300000e+01 9.290000e+01 \n", - "United States NaN ... NaN NaN \n", - "United States NaN ... NaN NaN \n", - "United States 1.803880e+01 ... 1.026299e+02 9.359888e+01 \n", - "United States NaN ... NaN NaN \n", - "United States NaN ... NaN NaN \n", - "United States NaN ... NaN NaN \n", - "United States NaN ... NaN NaN \n", - "United States NaN ... NaN NaN \n", - "United States NaN ... NaN NaN \n", - "United States NaN ... NaN NaN \n", - "United States NaN ... NaN NaN \n", - "United States NaN ... NaN NaN \n", - "United States NaN ... NaN NaN \n", - "\n", - " 2010 2011 2012 2013 \\\n", - "Country Name \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States 1.000000e+02 NaN 1.000000e+02 NaN \n", - "United States 1.000000e+02 NaN 1.000000e+02 NaN \n", - "United States 1.000000e+02 NaN 1.000000e+02 NaN \n", - "United States 1.000000e+02 NaN 1.000000e+02 NaN \n", - "United States 1.000000e+02 NaN 1.000000e+02 NaN \n", - "United States 1.000000e+02 NaN 1.000000e+02 NaN \n", - "United States NaN 8.795786e+01 NaN NaN \n", - "United States NaN 8.406905e+01 NaN NaN \n", - "United States NaN 8.099529e+01 NaN NaN \n", - "United States NaN 9.281008e+01 NaN NaN \n", - "United States NaN 9.198194e+01 NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States 9.513818e+01 9.467457e+01 9.410391e+01 9.262706e+01 \n", - "United States 9.446875e+01 9.324649e+01 9.411461e+01 9.292106e+01 \n", - "United States 9.479582e+01 9.394464e+01 9.410937e+01 9.277709e+01 \n", - "United States 3.342398e+00 2.076668e+00 3.645016e+00 1.333261e+00 \n", - "United States 1.262046e+13 1.288254e+13 1.335212e+13 1.353013e+13 \n", - "United States 1.262046e+13 1.319294e+13 1.391432e+13 1.429645e+13 \n", - "United States 2.482066e+00 1.299926e+00 2.858440e+00 5.887723e-01 \n", - "United States 4.079712e+04 4.132745e+04 4.250877e+04 4.275905e+04 \n", - "United States 4.079712e+04 4.232319e+04 4.429865e+04 4.518081e+04 \n", - "United States 2.973072e+00 3.712649e+00 5.847932e+00 5.621072e+00 \n", - "United States 4.495612e+11 5.867062e+11 9.705286e+11 9.607086e+11 \n", - "United States 2.797694e+00 3.545417e+00 5.690151e+00 5.470228e+00 \n", - "United States 4.230421e+11 5.602786e+11 9.443431e+11 9.349277e+11 \n", - "... ... ... ... ... \n", - "United States 1.752022e+04 NaN NaN NaN \n", - "United States 2.498656e+08 2.523052e+08 2.547624e+08 2.571827e+08 \n", - "United States 8.077200e+01 8.094000e+01 8.110800e+01 8.127700e+01 \n", - "United States 1.041720e+00 9.716271e-01 9.691533e-01 9.455534e-01 \n", - "United States 2.263942e+00 NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States 9.440000e+01 9.450000e+01 9.440000e+01 9.440000e+01 \n", - "United States 9.170000e+01 9.200000e+01 9.220000e+01 9.250000e+01 \n", - "United States 9.300000e+01 9.320000e+01 9.320000e+01 9.340000e+01 \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN 3.200610e+01 NaN \n", - "United States 1.000000e+02 1.088326e+02 1.094325e+02 1.101092e+02 \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "\n", - " 2014 2015 2016 Unnamed: 61 \n", - "Country Name \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States 9.358380e+01 NaN NaN NaN \n", - "United States 9.479771e+01 NaN NaN NaN \n", - "United States 8.711619e+01 NaN NaN NaN \n", - "United States 9.790414e+01 NaN NaN NaN \n", - "United States 9.236126e+01 NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States 9.443206e+01 NaN NaN NaN \n", - "United States 9.365279e+01 NaN NaN NaN \n", - "United States 9.403453e+01 NaN NaN NaN \n", - "United States 2.769931e+00 NaN NaN NaN \n", - "United States 1.390491e+13 NaN NaN NaN \n", - "United States 1.494105e+13 NaN NaN NaN \n", - "United States 1.970734e+00 NaN NaN NaN \n", - "United States 4.360171e+04 NaN NaN NaN \n", - "United States 4.685075e+04 NaN NaN NaN \n", - "United States 6.560417e+00 NaN NaN NaN \n", - "United States 1.169276e+12 NaN NaN NaN \n", - "United States 6.418385e+00 NaN NaN NaN \n", - "United States 1.143962e+12 NaN NaN NaN \n", - "... ... ... ... ... \n", - "United States NaN NaN NaN NaN \n", - "United States 2.597405e+08 2.623324e+08 NaN NaN \n", - "United States 8.144700e+01 8.161700e+01 NaN NaN \n", - "United States 9.896394e-01 9.929296e-01 NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States 3.331436e+01 NaN NaN NaN \n", - "United States 1.111422e+02 1.030900e+02 NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "United States NaN NaN NaN NaN \n", - "\n", - "[1452 rows x 61 columns]" - ] - }, - "execution_count": 22, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "wb.loc[\"United States\"]" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.5.3" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/content/07-pandas/pandas_solutions.txt b/content/07-pandas/pandas_solutions.txt deleted file mode 100644 index 1db8c26b..00000000 --- a/content/07-pandas/pandas_solutions.txt +++ /dev/null @@ -1,37 +0,0 @@ -Q1: - -np.allclose(names.groupby(["year", "sex"]).prop.sum(), 1.0) - - -Q2: - -boys = top[top.sex == "M"] -girls = top[top.sex == "F"] - -Q3: - -all_names = top["name"].unique() -all_names.dtype - -len(all_names) - - -Q4: - -what are all the names that appear for both boys and girls? - -boy_names = top[top["sex"] == "M"]["name"].unique() -girl_names = top[top["sex"] == "F"]["name"].unique() -joint = np.intersect1d(boy_names, girl_names) - - -Q5: - -def get_count(group, q=0.5): - group = group.sort_values(by="prop", ascending=False) - return group["prop"].cumsum().searchsorted(0.5)[0] + 1 - -diversity = top.groupby(["year", "sex"]).apply(get_count) -diversity = diversity.unstack("sex") -diversity.plot() - diff --git a/content/07-pandas/sample.csv b/content/07-pandas/sample.csv deleted file mode 100644 index 65ee2acc..00000000 --- a/content/07-pandas/sample.csv +++ /dev/null @@ -1,20 +0,0 @@ -"student", "hw 1", "hw 2", "hw 3", "hw 4", "exam" -"A", 10 , 9 , 10 , 7 , 97 -"B", 8 , 7 , 9 , 9 , 82 -"C", , 9 , 6 , 5 , 75 -"D", 8 , 9 , 9 , 9 , 90 -"E", , 10 , 10 , 10 , 95 -"F", 8 , 2 , 6 , 7 , 66 -"G", 6 , , 4 , 5 , 60 -"H", 8 , 8 , 9 , 8 , 84 -"I", 10 , 7 , 10 , 10 , 92 -"J", 10 , 6 , 9 , 9 , 91 -"K", 8 , 7 , 6 , 8 , 87 -"L", 3 , 8 , 5 , 7 , 71 -"M", 9 , 9 , 8 , 9 , 94 -"N", 8 , 10 , 9 , 9 , 90 -"O", 10 , 10 , 10 , 9 , 99 -"P", 8 , 9 , 8 , 10 , 94 -"Q", 5 , 7 , 6 , 5 , 78 - -