このサイトを参考にしながら、自然科学分野の日本人ノーベル賞受賞者について考察してみる。
自然科学系日本人ノーベル賞受賞者¶
# Loading in required libraries
import pandas as pd
import seaborn as sns
import numpy as np
# Reading in the Nobel Prize data
nobel = pd.read_csv('datasets/nobel.csv')
cd A Visual History of Nobel Prize Winners
df=nobel[~nobel['category'].isin(['Literature','Peace','Economics'])]
df1=df[(df['birth_country']=='Japan') | \
(df['birth_city']=='Changchun')]
df1
len(df1.index)
1901年〜2016年までのデータでは、自然科学部門の日本人ノーベル賞受賞者は22人となっている。
受賞者の所属組織と出身大学¶
df1["organization_name"].value_counts().to_frame()
ax=df1["organization_name"].value_counts().head(10).\
plot(kind='barh',xticks=[0,1,2],figsize=(15,10),fontsize=20);
ax.set_xlabel("Number of Laureates", fontsize=25);
for i in ax.patches:
ax.text(i.get_width()+.01,i.get_y()+.31,\
str(round((i.get_width()), 2)), fontsize=15, color='dimgrey')
ax.invert_yaxis()
自然科学分野の日本人ノーベル賞受賞者の出身大学についてはこのデータには載ってないので、このサイトを参考にすると、以下のようになる。
d={'出身大学': ['京都大学','東京大学','名古屋大学',\
'北海道大学','東北大学','埼玉大学','東京工業大学',\
'山梨大学','神戸大学','徳島大学','長崎大学'],\
'人数': [7,5,3,1,1,1,1,1,1,1,1]}
d1 = pd.DataFrame(d)
d1
#d2 = d1.set_index('出身大学')
#d2
京都大学、東京大学、名古屋大学だけで15人のノーベル賞受賞者を輩出している。他の8名も全て国立大学出身者である。日本の私大の糞っぷりを見事に露呈してくれている。私学助成金などは、糠に釘、豚に真珠としか言いようがないだろう。ゴミカス私大に貴重な血税を投入するくらいなら、国立大学に投資しろ!と言いたくなるのは私だけではないはずだ。
受賞者の年齢¶
nobel['birth_date']=pd.to_datetime(nobel["birth_date"])
df2=df1.assign(age=nobel['year']-nobel['birth_date'].dt.year)
sns.lmplot(x='year',y='age',data=df2,lowess=True,aspect=2,line_kws={'color':'black'})
21世紀になって突出して多くなっていることに気付かされるのと、受賞者が高齢化していることも見て取れる。
pd.set_option('precision', 0)
df2[['full_name','category','year','age']]
年齢の若い順にソートする。
df2.set_index('full_name',inplace=True)
df3=df2[['category','year','age']]
df3.sort_values(by=['age'])
2018年の医学生理学賞受賞者の本庶佑氏を付け足す。
df4=pd.DataFrame({'category':['Medicine'],'year':[2018],'age':[76]},index=['Tasuku Honjo'])
df5=pd.concat([df3,df4])
df5
23人の受賞者の平均年齢を割り出す。
df5['age'].mean()
平均年齢は65歳となっている。今度は受賞者のうち最高齢者を割り出す。
# The oldest winner of a Nobel Prize as of 2016
df6=df5.nlargest(1,'age')
df6[['category','year','age']]
2008年の南部陽一郎氏の87歳が最年長のようである。次に最年少受賞者を割り出す。
# The youngest winner of a Nobel Prize as of 2016
df6=df5.nsmallest(1,'age')
df6[['category','year','age']]
1949年の湯川秀樹氏の42歳が最年少のようだ。ついでに部門別の受賞者数を割り出す。
df5['category'].value_counts().to_frame()
最後に、2000年以降の自然科学部門の国別ノーベル賞受賞者数を割り出してみる。
df7=nobel[~nobel['category'].isin(['Literature','Peace','Economics'])]
df8=df7[df.year.between(2000, 2016)]
ax=df8["birth_country"].value_counts().head(10).\
plot(kind='barh',figsize=(15,10),fontsize=20);
ax.set_xlabel("Number of Laureates", fontsize=25);
for i in ax.patches:
ax.text(i.get_width()+.1,i.get_y()+.31,\
str(round((i.get_width()), 2)), fontsize=15, color='dimgrey')
ax.invert_yaxis()
2000年〜2016年だと、自然科学部門に限れば、日本はアメリカに次いで単独2位の受賞者数を誇る。しかしながら、2017年と2018年を入れると、獲得数17でイギリスに並ばれてしまう。今年は再び単独2位に返り咲いて欲しいものであると思ったが、よくよく考えてみると、2000年以降の実際の日本人受賞者数は18人なので、現時点で日本は単独2位であることに気が付いた。なので、今年は英国に並ばれないようにしてもらいたいものだが正解である。
結論¶
自然科学分野のノーベル賞受賞者数を見た場合、2000年代は、米日英の時代というのが分かった。資源に乏しく、食料自給率も著しく低い我が国は、輸出競争力が無くなれば、毎年大量の餓死・凍死者が出る最貧国に転落してしまう。この国が科学技術で食っていくしか術がない以上、その科学技術分野にリソースを投入する必要があることは馬鹿でも分かるはずだ。円が暴落しないのは、一重に輸出競争力が高いおかげであるということを、全ての日本人は決して忘れてはならない。技術力が無くなればこの国は完全に終るということだ。
sns.lmplot(x='year',y='age',data=df5,lowess=True,aspect=2,line_kws={'color':'black'})