11.5 受賞者の年齢と没年齢
df['award_age'].hist(bins=20)
<matplotlib.axes._subplots.AxesSubplot at 0x7f1459757978>
[f:id:bitop:20171009090400p:plain]
sns.distplot(df['award_age'])
<matplotlib.axes._subplots.AxesSubplot at 0x7f1458f80fd0>
箱ひげ図
sns.boxplot(df.gender,df.award_age) plt.show() sns.violinplot(df.gender,df.award_age) plt.show()
11.5.2 受賞者の没年齢
df['age_at_death'] = (df.date_of_death - df.date_of_birth).dt.days/365 age_at_death = df[df.age_at_death.notnull()].age_at_death sns.distplot(age_at_death,bins=40)
<matplotlib.axes._subplots.AxesSubplot at 0x7f14596b5668>
100歳以上の受賞者
df[df.age_at_death > 100][['name','category','year']]
name | category | year | |
---|---|---|---|
101 | Ronald Coase | Economics | 1991 |
329 | Rita Levi-Montalcini | Physiology or Medicine | 1986 |
男性と女性の寿命の差
df2 = df[df.age_at_death.notnull()] sns.kdeplot(df2[df2.gender == 'male'].age_at_death,shade=True,label='male') sns.kdeplot(df2[df2.gender == 'female'].age_at_death,shade=True,label='female')
<matplotlib.axes._subplots.AxesSubplot at 0x7f1457f58400>
sns.violinplot(df.gender,age_at_death)
<matplotlib.axes._subplots.AxesSubplot at 0x7f1457f40828>
11.5.3 時代に伴う寿命の延長
df_temp = df[df.age_at_death.notnull()] data = pd.DataFrame({'age_at_death':df_temp.age_at_death, 'date_of_birth':df_temp.date_of_birth.dt.year}) sns.lmplot('date_of_birth','age_at_death',data,size=6,aspect=1.5)
<seaborn.axisgrid.FacetGrid at 0x7f1457da0d30>
11.6 受賞者の移住
#birth_inフィールド付のjsonファイルを読み込み、今までのdfにはbirth_in列はないので11.6章は実行できなかった df = pd.read_json('nobel_winners_plus_bornin.json', orient='records')
by_bornin_nat = df[df.born_in.notnull()].groupby(['born_in','country']).size().unstack() by_bornin_nat.index.name = 'Born_in' by_bornin_nat.columns.name = 'Move_to' plt.figure(figsize= (8,8)) ax=sns.heatmap(by_bornin_nat,vmin=0,vmax=8) ax.set_title('The Nobel Diaspora')
<matplotlib.text.Text at 0x7f1417def080>