# 1880-2010年全美婴儿姓名
import pandas as pd
names1880 = pd.read_csv('D:\\pytest\\pydata-book-master\\ch02\\names\\yob1880.txt',names = ['name', 'sex', 'births'])
names1880
.dataframe thead tr:only-child th { text-align: right; } .dataframe thead th { text-align: left; } .dataframe tbody tr th { vertical-align: top; }
name | sex | births | |
---|---|---|---|
0 | Mary | F | 7065 |
1 | Anna | F | 2604 |
2 | Emma | F | 2003 |
3 | Elizabeth | F | 1939 |
4 | Minnie | F | 1746 |
5 | Margaret | F | 1578 |
6 | Ida | F | 1472 |
7 | Alice | F | 1414 |
8 | Bertha | F | 1320 |
9 | Sarah | F | 1288 |
10 | Annie | F | 1258 |
11 | Clara | F | 1226 |
12 | Ella | F | 1156 |
13 | Florence | F | 1063 |
14 | Cora | F | 1045 |
15 | Martha | F | 1040 |
16 | Laura | F | 1012 |
17 | Nellie | F | 995 |
18 | Grace | F | 982 |
19 | Carrie | F | 949 |
20 | Maude | F | 858 |
21 | Mabel | F | 808 |
22 | Bessie | F | 794 |
23 | Jennie | F | 793 |
24 | Gertrude | F | 787 |
25 | Julia | F | 783 |
26 | Hattie | F | 769 |
27 | Edith | F | 768 |
28 | Mattie | F | 704 |
29 | Rose | F | 700 |
… | … | … | … |
1970 | Philo | M | 5 |
1971 | Phineas | M | 5 |
1972 | Presley | M | 5 |
1973 | Ransom | M | 5 |
1974 | Reece | M | 5 |
1975 | Rene | M | 5 |
1976 | Roswell | M | 5 |
1977 | Rowland | M | 5 |
1978 | Sampson | M | 5 |
1979 | Samual | M | 5 |
1980 | Santos | M | 5 |
1981 | Schuyler | M | 5 |
1982 | Sheppard | M | 5 |
1983 | Spurgeon | M | 5 |
1984 | Starling | M | 5 |
1985 | Sylvanus | M | 5 |
1986 | Theadore | M | 5 |
1987 | Theophile | M | 5 |
1988 | Tilmon | M | 5 |
1989 | Tommy | M | 5 |
1990 | Unknown | M | 5 |
1991 | Vann | M | 5 |
1992 | Wes | M | 5 |
1993 | Winston | M | 5 |
1994 | Wood | M | 5 |
1995 | Woodie | M | 5 |
1996 | Worthy | M | 5 |
1997 | Wright | M | 5 |
1998 | York | M | 5 |
1999 | Zachariah | M | 5 |
2000 rows × 3 columns
names1880.groupby('sex').births.sum()
sex F 90993 M 110493 Name: births, dtype: int64
years=range(1880,2011)
pieces=[]
columns=['name','sex','births']
for year in years:
path = 'D:\\pytest\\pydata-book-master\\ch02\\names\\yob%d.txt' % year
frame = pd.read_csv(path,names=columns)
frame['year']=year
pieces.append(frame)
names = pd.concat(pieces,ignore_index=True)
names
.dataframe thead tr:only-child th { text-align: right; } .dataframe thead th { text-align: left; } .dataframe tbody tr th { vertical-align: top; }
name | sex | births | year | |
---|---|---|---|---|
0 | Mary | F | 7065 | 1880 |
1 | Anna | F | 2604 | 1880 |
2 | Emma | F | 2003 | 1880 |
3 | Elizabeth | F | 1939 | 1880 |
4 | Minnie | F | 1746 | 1880 |
5 | Margaret | F | 1578 | 1880 |
6 | Ida | F | 1472 | 1880 |
7 | Alice | F | 1414 | 1880 |
8 | Bertha | F | 1320 | 1880 |
9 | Sarah | F | 1288 | 1880 |
10 | Annie | F | 1258 | 1880 |
11 | Clara | F | 1226 | 1880 |
12 | Ella | F | 1156 | 1880 |
13 | Florence | F | 1063 | 1880 |
14 | Cora | F | 1045 | 1880 |
15 | Martha | F | 1040 | 1880 |
16 | Laura | F | 1012 | 1880 |
17 | Nellie | F | 995 | 1880 |
18 | Grace | F | 982 | 1880 |
19 | Carrie | F | 949 | 1880 |
20 | Maude | F | 858 | 1880 |
21 | Mabel | F | 808 | 1880 |
22 | Bessie | F | 794 | 1880 |
23 | Jennie | F | 793 | 1880 |
24 | Gertrude | F | 787 | 1880 |
25 | Julia | F | 783 | 1880 |
26 | Hattie | F | 769 | 1880 |
27 | Edith | F | 768 | 1880 |
28 | Mattie | F | 704 | 1880 |
29 | Rose | F | 700 | 1880 |
… | … | … | … | … |
1690754 | Zaviyon | M | 5 | 2010 |
1690755 | Zaybrien | M | 5 | 2010 |
1690756 | Zayshawn | M | 5 | 2010 |
1690757 | Zayyan | M | 5 | 2010 |
1690758 | Zeal | M | 5 | 2010 |
1690759 | Zealan | M | 5 | 2010 |
1690760 | Zecharia | M | 5 | 2010 |
1690761 | Zeferino | M | 5 | 2010 |
1690762 | Zekariah | M | 5 | 2010 |
1690763 | Zeki | M | 5 | 2010 |
1690764 | Zeriah | M | 5 | 2010 |
1690765 | Zeshan | M | 5 | 2010 |
1690766 | Zhyier | M | 5 | 2010 |
1690767 | Zildjian | M | 5 | 2010 |
1690768 | Zinn | M | 5 | 2010 |
1690769 | Zishan | M | 5 | 2010 |
1690770 | Ziven | M | 5 | 2010 |
1690771 | Zmari | M | 5 | 2010 |
1690772 | Zoren | M | 5 | 2010 |
1690773 | Zuhaib | M | 5 | 2010 |
1690774 | Zyeire | M | 5 | 2010 |
1690775 | Zygmunt | M | 5 | 2010 |
1690776 | Zykerion | M | 5 | 2010 |
1690777 | Zylar | M | 5 | 2010 |
1690778 | Zylin | M | 5 | 2010 |
1690779 | Zymaire | M | 5 | 2010 |
1690780 | Zyonne | M | 5 | 2010 |
1690781 | Zyquarius | M | 5 | 2010 |
1690782 | Zyran | M | 5 | 2010 |
1690783 | Zzyzx | M | 5 | 2010 |
1690784 rows × 4 columns
total_births = names.pivot_table('births',index = 'year',columns = 'sex', aggfunc = sum)
total_births.tail()
.dataframe thead tr:only-child th { text-align: right; } .dataframe thead th { text-align: left; } .dataframe tbody tr th { vertical-align: top; }
sex | F | M |
---|---|---|
year | ||
2006 | 1896468 | 2050234 |
2007 | 1916888 | 2069242 |
2008 | 1883645 | 2032310 |
2009 | 1827643 | 1973359 |
2010 | 1759010 | 1898382 |
#import matplotlib.pyplot as plot
total_births.plot(title='Total births by sex and year')
plot.show()
![png](output_9_0.png) ![png](output_9_1.png)
def add_prop(group):
births = group.births.astype(float)
group['prop'] = births / births.sum()
return group
names = names.groupby(['year','sex']).apply(add_prop)
names
.dataframe thead tr:only-child th { text-align: right; } .dataframe thead th { text-align: left; } .dataframe tbody tr th { vertical-align: top; }
name | sex | births | year | prop | |
---|---|---|---|---|---|
0 | Mary | F | 7065 | 1880 | 0.077643 |
1 | Anna | F | 2604 | 1880 | 0.028618 |
2 | Emma | F | 2003 | 1880 | 0.022013 |
3 | Elizabeth | F | 1939 | 1880 | 0.021309 |
4 | Minnie | F | 1746 | 1880 | 0.019188 |
5 | Margaret | F | 1578 | 1880 | 0.017342 |
6 | Ida | F | 1472 | 1880 | 0.016177 |
7 | Alice | F | 1414 | 1880 | 0.015540 |
8 | Bertha | F | 1320 | 1880 | 0.014507 |
9 | Sarah | F | 1288 | 1880 | 0.014155 |
10 | Annie | F | 1258 | 1880 | 0.013825 |
11 | Clara | F | 1226 | 1880 | 0.013474 |
12 | Ella | F | 1156 | 1880 | 0.012704 |
13 | Florence | F | 1063 | 1880 | 0.011682 |
14 | Cora | F | 1045 | 1880 | 0.011484 |
15 | Martha | F | 1040 | 1880 | 0.011429 |
16 | Laura | F | 1012 | 1880 | 0.011122 |
17 | Nellie | F | 995 | 1880 | 0.010935 |
18 | Grace | F | 982 | 1880 | 0.010792 |
19 | Carrie | F | 949 | 1880 | 0.010429 |
20 | Maude | F | 858 | 1880 | 0.009429 |
21 | Mabel | F | 808 | 1880 | 0.008880 |
22 | Bessie | F | 794 | 1880 | 0.008726 |
23 | Jennie | F | 793 | 1880 | 0.008715 |
24 | Gertrude | F | 787 | 1880 | 0.008649 |
25 | Julia | F | 783 | 1880 | 0.008605 |
26 | Hattie | F | 769 | 1880 | 0.008451 |
27 | Edith | F | 768 | 1880 | 0.008440 |
28 | Mattie | F | 704 | 1880 | 0.007737 |
29 | Rose | F | 700 | 1880 | 0.007693 |
… | … | … | … | … | … |
1690754 | Zaviyon | M | 5 | 2010 | 0.000003 |
1690755 | Zaybrien | M | 5 | 2010 | 0.000003 |
1690756 | Zayshawn | M | 5 | 2010 | 0.000003 |
1690757 | Zayyan | M | 5 | 2010 | 0.000003 |
1690758 | Zeal | M | 5 | 2010 | 0.000003 |
1690759 | Zealan | M | 5 | 2010 | 0.000003 |
1690760 | Zecharia | M | 5 | 2010 | 0.000003 |
1690761 | Zeferino | M | 5 | 2010 | 0.000003 |
1690762 | Zekariah | M | 5 | 2010 | 0.000003 |
1690763 | Zeki | M | 5 | 2010 | 0.000003 |
1690764 | Zeriah | M | 5 | 2010 | 0.000003 |
1690765 | Zeshan | M | 5 | 2010 | 0.000003 |
1690766 | Zhyier | M | 5 | 2010 | 0.000003 |
1690767 | Zildjian | M | 5 | 2010 | 0.000003 |
1690768 | Zinn | M | 5 | 2010 | 0.000003 |
1690769 | Zishan | M | 5 | 2010 | 0.000003 |
1690770 | Ziven | M | 5 | 2010 | 0.000003 |
1690771 | Zmari | M | 5 | 2010 | 0.000003 |
1690772 | Zoren | M | 5 | 2010 | 0.000003 |
1690773 | Zuhaib | M | 5 | 2010 | 0.000003 |
1690774 | Zyeire | M | 5 | 2010 | 0.000003 |
1690775 | Zygmunt | M | 5 | 2010 | 0.000003 |
1690776 | Zykerion | M | 5 | 2010 | 0.000003 |
1690777 | Zylar | M | 5 | 2010 | 0.000003 |
1690778 | Zylin | M | 5 | 2010 | 0.000003 |
1690779 | Zymaire | M | 5 | 2010 | 0.000003 |
1690780 | Zyonne | M | 5 | 2010 | 0.000003 |
1690781 | Zyquarius | M | 5 | 2010 | 0.000003 |
1690782 | Zyran | M | 5 | 2010 | 0.000003 |
1690783 | Zzyzx | M | 5 | 2010 | 0.000003 |
1690784 rows × 5 columns
import numpy as np
np.allclose(names.groupby(['year','sex']).prop.sum(),1)
True
def get_top1000(group):
return group.sort_index(by = 'births', ascending = False)[:1000]
grouped = names.groupby(['year','sex'])
top1000 = grouped.apply(get_top1000)
C:\software\Anaconda3\lib\site-packages\ipykernel_launcher.py:2: FutureWarning: by argument to sort_index is deprecated, pls use .sort_values(by=…)
pieces = []
for year, group in names.groupby(['year', 'sex']):
pieces.append(group.sort_index(by='births', ascending=False)[:1000])
top1000 = pd.concat(pieces, ignore_index=True)
C:\software\Anaconda3\lib\site-packages\ipykernel_launcher.py:3: FutureWarning: by argument to sort_index is deprecated, pls use .sort_values(by=…) This is separate from the ipykernel package so we can avoid doing imports until
top1000.index = np.arange(len(top1000))
top1000
.dataframe thead tr:only-child th { text-align: right; } .dataframe thead th { text-align: left; } .dataframe tbody tr th { vertical-align: top; }
name | sex | births | year | prop | |
---|---|---|---|---|---|
0 | Mary | F | 7065 | 1880 | 0.077643 |
1 | Anna | F | 2604 | 1880 | 0.028618 |
2 | Emma | F | 2003 | 1880 | 0.022013 |
3 | Elizabeth | F | 1939 | 1880 | 0.021309 |
4 | Minnie | F | 1746 | 1880 | 0.019188 |
5 | Margaret | F | 1578 | 1880 | 0.017342 |
6 | Ida | F | 1472 | 1880 | 0.016177 |
7 | Alice | F | 1414 | 1880 | 0.015540 |
8 | Bertha | F | 1320 | 1880 | 0.014507 |
9 | Sarah | F | 1288 | 1880 | 0.014155 |
10 | Annie | F | 1258 | 1880 | 0.013825 |
11 | Clara | F | 1226 | 1880 | 0.013474 |
12 | Ella | F | 1156 | 1880 | 0.012704 |
13 | Florence | F | 1063 | 1880 | 0.011682 |
14 | Cora | F | 1045 | 1880 | 0.011484 |
15 | Martha | F | 1040 | 1880 | 0.011429 |
16 | Laura | F | 1012 | 1880 | 0.011122 |
17 | Nellie | F | 995 | 1880 | 0.010935 |
18 | Grace | F | 982 | 1880 | 0.010792 |
19 | Carrie | F | 949 | 1880 | 0.010429 |
20 | Maude | F | 858 | 1880 | 0.009429 |
21 | Mabel | F | 808 | 1880 | 0.008880 |
22 | Bessie | F | 794 | 1880 | 0.008726 |
23 | Jennie | F | 793 | 1880 | 0.008715 |
24 | Gertrude | F | 787 | 1880 | 0.008649 |
25 | Julia | F | 783 | 1880 | 0.008605 |
26 | Hattie | F | 769 | 1880 | 0.008451 |
27 | Edith | F | 768 | 1880 | 0.008440 |
28 | Mattie | F | 704 | 1880 | 0.007737 |
29 | Rose | F | 700 | 1880 | 0.007693 |
… | … | … | … | … | … |
261847 | Yair | M | 201 | 2010 | 0.000106 |
261848 | Talan | M | 201 | 2010 | 0.000106 |
261849 | Keyon | M | 201 | 2010 | 0.000106 |
261850 | Kael | M | 201 | 2010 | 0.000106 |
261851 | Demarion | M | 200 | 2010 | 0.000105 |
261852 | Gibson | M | 200 | 2010 | 0.000105 |
261853 | Reagan | M | 200 | 2010 | 0.000105 |
261854 | Cristofer | M | 199 | 2010 | 0.000105 |
261855 | Daylen | M | 199 | 2010 | 0.000105 |
261856 | Jordon | M | 199 | 2010 | 0.000105 |
261857 | Dashawn | M | 198 | 2010 | 0.000104 |
261858 | Masen | M | 198 | 2010 | 0.000104 |
261859 | Rowen | M | 197 | 2010 | 0.000104 |
261860 | Yousef | M | 197 | 2010 | 0.000104 |
261861 | Thaddeus | M | 197 | 2010 | 0.000104 |
261862 | Kadin | M | 197 | 2010 | 0.000104 |
261863 | Dillan | M | 197 | 2010 | 0.000104 |
261864 | Clarence | M | 197 | 2010 | 0.000104 |
261865 | Slade | M | 196 | 2010 | 0.000103 |
261866 | Clinton | M | 196 | 2010 | 0.000103 |
261867 | Sheldon | M | 196 | 2010 | 0.000103 |
261868 | Keshawn | M | 195 | 2010 | 0.000103 |
261869 | Menachem | M | 195 | 2010 | 0.000103 |
261870 | Joziah | M | 195 | 2010 | 0.000103 |
261871 | Bailey | M | 194 | 2010 | 0.000102 |
261872 | Camilo | M | 194 | 2010 | 0.000102 |
261873 | Destin | M | 194 | 2010 | 0.000102 |
261874 | Jaquan | M | 194 | 2010 | 0.000102 |
261875 | Jaydan | M | 194 | 2010 | 0.000102 |
261876 | Maxton | M | 193 | 2010 | 0.000102 |
261877 rows × 5 columns
boys = top1000[top1000.sex == 'M']
girls = top1000[top1000.sex == 'F']
total_births = top1000.pivot_table('births', index='year', columns='name',
aggfunc=sum)
total_births
.dataframe thead tr:only-child th { text-align: right; } .dataframe thead th { text-align: left; } .dataframe tbody tr th { vertical-align: top; }
name | Aaden | Aaliyah | Aarav | Aaron | Aarush | Ab | Abagail | Abb | Abbey | Abbie | … | Zoa | Zoe | Zoey | Zoie | Zola | Zollie | Zona | Zora | Zula | Zuri |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
year | |||||||||||||||||||||
1880 | NaN | NaN | NaN | 102.0 | NaN | NaN | NaN | NaN | NaN | 71.0 | … | 8.0 | 23.0 | NaN | NaN | 7.0 | NaN | 8.0 | 28.0 | 27.0 | NaN |
1881 | NaN | NaN | NaN | 94.0 | NaN | NaN | NaN | NaN | NaN | 81.0 | … | NaN | 22.0 | NaN | NaN | 10.0 | NaN | 9.0 | 21.0 | 27.0 | NaN |
1882 | NaN | NaN | NaN | 85.0 | NaN | NaN | NaN | NaN | NaN | 80.0 | … | 8.0 | 25.0 | NaN | NaN | 9.0 | NaN | 17.0 | 32.0 | 21.0 | NaN |
1883 | NaN | NaN | NaN | 105.0 | NaN | NaN | NaN | NaN | NaN | 79.0 | … | NaN | 23.0 | NaN | NaN | 10.0 | NaN | 11.0 | 35.0 | 25.0 | NaN |
1884 | NaN | NaN | NaN | 97.0 | NaN | NaN | NaN | NaN | NaN | 98.0 | … | 13.0 | 31.0 | NaN | NaN | 14.0 | 6.0 | 8.0 | 58.0 | 27.0 | NaN |
1885 | NaN | NaN | NaN | 88.0 | NaN | 6.0 | NaN | NaN | NaN | 88.0 | … | 6.0 | 27.0 | NaN | NaN | 12.0 | 6.0 | 14.0 | 48.0 | 38.0 | NaN |
1886 | NaN | NaN | NaN | 86.0 | NaN | NaN | NaN | NaN | NaN | 84.0 | … | 13.0 | 25.0 | NaN | NaN | 8.0 | NaN | 20.0 | 52.0 | 43.0 | NaN |
1887 | NaN | NaN | NaN | 78.0 | NaN | NaN | NaN | NaN | NaN | 104.0 | … | 9.0 | 34.0 | NaN | NaN | 23.0 | NaN | 28.0 | 46.0 | 33.0 | NaN |
1888 | NaN | NaN | NaN | 90.0 | NaN | NaN | NaN | NaN | NaN | 137.0 | … | 11.0 | 42.0 | NaN | NaN | 23.0 | 7.0 | 30.0 | 42.0 | 45.0 | NaN |
1889 | NaN | NaN | NaN | 85.0 | NaN | NaN | NaN | NaN | NaN | 107.0 | … | 14.0 | 29.0 | NaN | NaN | 22.0 | NaN | 29.0 | 53.0 | 55.0 | NaN |
1890 | NaN | NaN | NaN | 96.0 | NaN | NaN | NaN | 6.0 | NaN | 140.0 | … | NaN | 42.0 | NaN | NaN | 32.0 | 7.0 | 27.0 | 60.0 | 65.0 | NaN |
1891 | NaN | NaN | NaN | 69.0 | NaN | NaN | NaN | NaN | NaN | 124.0 | … | NaN | 34.0 | NaN | NaN | 29.0 | 6.0 | 14.0 | 52.0 | 45.0 | NaN |
1892 | NaN | NaN | NaN | 95.0 | NaN | NaN | NaN | NaN | NaN | 119.0 | … | NaN | 34.0 | NaN | NaN | 27.0 | NaN | 25.0 | 66.0 | 53.0 | NaN |
1893 | NaN | NaN | NaN | 81.0 | NaN | NaN | NaN | NaN | NaN | 115.0 | … | NaN | 23.0 | NaN | NaN | 34.0 | 6.0 | 15.0 | 67.0 | 70.0 | NaN |
1894 | NaN | NaN | NaN | 79.0 | NaN | NaN | NaN | NaN | NaN | 118.0 | … | NaN | 28.0 | NaN | NaN | 51.0 | NaN | 23.0 | 66.0 | 64.0 | NaN |
1895 | NaN | NaN | NaN | 94.0 | NaN | NaN | NaN | NaN | NaN | 92.0 | … | NaN | 34.0 | NaN | NaN | 60.0 | 11.0 | 38.0 | 55.0 | 55.0 | NaN |
1896 | NaN | NaN | NaN | 69.0 | NaN | NaN | NaN | NaN | NaN | 121.0 | … | NaN | 36.0 | NaN | NaN | 47.0 | NaN | 38.0 | 72.0 | 65.0 | NaN |
1897 | NaN | NaN | NaN | 87.0 | NaN | NaN | NaN | NaN | NaN | 97.0 | … | NaN | 35.0 | NaN | NaN | 51.0 | NaN | 28.0 | 67.0 | 79.0 | NaN |
1898 | NaN | NaN | NaN | 89.0 | NaN | NaN | NaN | NaN | NaN | 120.0 | … | NaN | 30.0 | NaN | NaN | 62.0 | NaN | 28.0 | 65.0 | 83.0 | NaN |
1899 | NaN | NaN | NaN | 71.0 | NaN | NaN | NaN | NaN | NaN | 87.0 | … | NaN | 27.0 | NaN | NaN | 49.0 | 6.0 | 31.0 | 56.0 | 60.0 | NaN |
1900 | NaN | NaN | NaN | 104.0 | NaN | NaN | NaN | NaN | NaN | 112.0 | … | NaN | 26.0 | NaN | NaN | 48.0 | 9.0 | 44.0 | 99.0 | 71.0 | NaN |
1901 | NaN | NaN | NaN | 80.0 | NaN | NaN | NaN | NaN | NaN | 87.0 | … | NaN | 26.0 | NaN | NaN | 56.0 | NaN | 31.0 | 58.0 | 57.0 | NaN |
1902 | NaN | NaN | NaN | 78.0 | NaN | NaN | NaN | NaN | NaN | 91.0 | … | NaN | 34.0 | NaN | NaN | 58.0 | NaN | 23.0 | 58.0 | 66.0 | NaN |
1903 | NaN | NaN | NaN | 93.0 | NaN | NaN | NaN | NaN | NaN | 91.0 | … | NaN | 19.0 | NaN | NaN | 64.0 | NaN | 41.0 | 83.0 | 74.0 | NaN |
1904 | NaN | NaN | NaN | 117.0 | NaN | NaN | NaN | NaN | NaN | 80.0 | … | NaN | 27.0 | NaN | NaN | 46.0 | NaN | 35.0 | 54.0 | 74.0 | NaN |
1905 | NaN | NaN | NaN | 96.0 | NaN | NaN | NaN | NaN | NaN | 73.0 | … | NaN | 24.0 | NaN | NaN | 66.0 | 8.0 | 24.0 | 55.0 | 61.0 | NaN |
1906 | NaN | NaN | NaN | 96.0 | NaN | NaN | NaN | NaN | NaN | 72.0 | … | NaN | 19.0 | NaN | NaN | 59.0 | NaN | 37.0 | 64.0 | 58.0 | NaN |
1907 | NaN | NaN | NaN | 130.0 | NaN | NaN | NaN | NaN | NaN | 79.0 | … | NaN | 19.0 | NaN | NaN | 53.0 | 11.0 | 39.0 | 92.0 | 72.0 | NaN |
1908 | NaN | NaN | NaN | 114.0 | NaN | NaN | NaN | NaN | NaN | 84.0 | … | NaN | 23.0 | NaN | NaN | 70.0 | NaN | 31.0 | 59.0 | 53.0 | NaN |
1909 | NaN | NaN | NaN | 142.0 | NaN | NaN | NaN | NaN | NaN | 57.0 | … | NaN | 22.0 | NaN | NaN | 59.0 | NaN | 39.0 | 57.0 | 76.0 | NaN |
… | … | … | … | … | … | … | … | … | … | … | … | … | … | … | … | … | … | … | … | … | … |
1981 | NaN | NaN | NaN | 14832.0 | NaN | NaN | NaN | NaN | 383.0 | 292.0 | … | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
1982 | NaN | NaN | NaN | 14538.0 | NaN | NaN | NaN | NaN | 372.0 | 275.0 | … | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
1983 | NaN | NaN | NaN | 14627.0 | NaN | NaN | NaN | NaN | 419.0 | 223.0 | … | NaN | 174.0 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
1984 | NaN | NaN | NaN | 13387.0 | NaN | NaN | NaN | NaN | 357.0 | 249.0 | … | NaN | 200.0 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
1985 | NaN | NaN | NaN | 13123.0 | NaN | NaN | NaN | NaN | 314.0 | 233.0 | … | NaN | 193.0 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
1986 | NaN | NaN | NaN | 12685.0 | NaN | NaN | NaN | NaN | 369.0 | 228.0 | … | NaN | 213.0 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
1987 | NaN | NaN | NaN | 12676.0 | NaN | NaN | NaN | NaN | 327.0 | 228.0 | … | NaN | 248.0 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
1988 | NaN | NaN | NaN | 14393.0 | NaN | NaN | NaN | NaN | 404.0 | 226.0 | … | NaN | 238.0 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
1989 | NaN | NaN | NaN | 15312.0 | NaN | NaN | NaN | NaN | 470.0 | 265.0 | … | NaN | 376.0 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
1990 | NaN | NaN | NaN | 14545.0 | NaN | NaN | NaN | NaN | 507.0 | 311.0 | … | NaN | 478.0 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
1991 | NaN | NaN | NaN | 14240.0 | NaN | NaN | NaN | NaN | 451.0 | 278.0 | … | NaN | 722.0 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
1992 | NaN | NaN | NaN | 14494.0 | NaN | NaN | NaN | NaN | 430.0 | 260.0 | … | NaN | 978.0 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
1993 | NaN | NaN | NaN | 13819.0 | NaN | NaN | NaN | NaN | 503.0 | 291.0 | … | NaN | 1194.0 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
1994 | NaN | 1451.0 | NaN | 14379.0 | NaN | NaN | NaN | NaN | 597.0 | 351.0 | … | NaN | 1332.0 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
1995 | NaN | 1254.0 | NaN | 13277.0 | NaN | NaN | NaN | NaN | 549.0 | 351.0 | … | NaN | 1726.0 | 219.0 | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
1996 | NaN | 831.0 | NaN | 11956.0 | NaN | NaN | NaN | NaN | 552.0 | 349.0 | … | NaN | 2063.0 | 339.0 | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
1997 | NaN | 1737.0 | NaN | 11156.0 | NaN | NaN | NaN | NaN | 645.0 | 386.0 | … | NaN | 2363.0 | 407.0 | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
1998 | NaN | 1399.0 | NaN | 10539.0 | NaN | NaN | NaN | NaN | 661.0 | 398.0 | … | NaN | 2690.0 | 478.0 | 225.0 | NaN | NaN | NaN | NaN | NaN | NaN |
1999 | NaN | 1088.0 | NaN | 9846.0 | NaN | NaN | 211.0 | NaN | 710.0 | 430.0 | … | NaN | 3238.0 | 561.0 | 257.0 | NaN | NaN | NaN | NaN | NaN | NaN |
2000 | NaN | 1494.0 | NaN | 9548.0 | NaN | NaN | 222.0 | NaN | 660.0 | 432.0 | … | NaN | 3783.0 | 691.0 | 320.0 | NaN | NaN | NaN | NaN | NaN | NaN |
2001 | NaN | 3351.0 | NaN | 9529.0 | NaN | NaN | 244.0 | NaN | 687.0 | 526.0 | … | NaN | 4642.0 | 822.0 | 439.0 | NaN | NaN | NaN | NaN | NaN | NaN |
2002 | NaN | 4775.0 | NaN | 8993.0 | NaN | NaN | 256.0 | NaN | 600.0 | 514.0 | … | NaN | 4883.0 | 1182.0 | 438.0 | NaN | NaN | NaN | NaN | NaN | NaN |
2003 | NaN | 3670.0 | NaN | 8851.0 | NaN | NaN | 276.0 | NaN | 625.0 | 536.0 | … | NaN | 5080.0 | 1465.0 | 448.0 | NaN | NaN | NaN | NaN | NaN | NaN |
2004 | NaN | 3482.0 | NaN | 8381.0 | NaN | NaN | 258.0 | NaN | 504.0 | 500.0 | … | NaN | 5359.0 | 1621.0 | 515.0 | NaN | NaN | NaN | NaN | NaN | NaN |
2005 | NaN | 3452.0 | NaN | 7796.0 | NaN | NaN | 287.0 | NaN | 451.0 | 445.0 | … | NaN | 4953.0 | 2266.0 | 502.0 | NaN | NaN | NaN | NaN | NaN | NaN |
2006 | NaN | 3737.0 | NaN | 8279.0 | NaN | NaN | 297.0 | NaN | 404.0 | 440.0 | … | NaN | 5145.0 | 2839.0 | 530.0 | NaN | NaN | NaN | NaN | NaN | NaN |
2007 | NaN | 3941.0 | NaN | 8914.0 | NaN | NaN | 313.0 | NaN | 349.0 | 468.0 | … | NaN | 4925.0 | 3028.0 | 526.0 | NaN | NaN | NaN | NaN | NaN | NaN |
2008 | 955.0 | 4028.0 | 219.0 | 8511.0 | NaN | NaN | 317.0 | NaN | 344.0 | 400.0 | … | NaN | 4764.0 | 3438.0 | 492.0 | NaN | NaN | NaN | NaN | NaN | NaN |
2009 | 1265.0 | 4352.0 | 270.0 | 7936.0 | NaN | NaN | 296.0 | NaN | 307.0 | 369.0 | … | NaN | 5120.0 | 3981.0 | 496.0 | NaN | NaN | NaN | NaN | NaN | NaN |
2010 | 448.0 | 4628.0 | 438.0 | 7374.0 | 226.0 | NaN | 277.0 | NaN | 295.0 | 324.0 | … | NaN | 6200.0 | 5164.0 | 504.0 | NaN | NaN | NaN | NaN | NaN | 258.0 |
131 rows × 6868 columns
subset = total_births[['John', 'Harry', 'Mary', 'Marilyn']]
subset.plot(subplots=True, figsize=(12, 10), grid=False,
title="Number of births per year")
plot.show()
plt.figure()
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-48-75657f11a66b> in <module>()
----> 1 plt.figure()
NameError: name 'plt' is not defined
expression
$$expression$$
File "<ipython-input-50-7bfe250c5c6c>", line 1
$$expression$$
^
SyntaxError: invalid syntax
import matplotlib.pyplot as plt
%matplotlib inline
img = plt.imread('D:\\pytest\\pydata-book-master\\ch03\\stinkbug.png')
plt.imshow(img)
<matplotlib.image.AxesImage at 0x832c080>