数据分析告诉你,历年的诺贝尔奖都被哪些人拿走了?

菜鸟学Python

共 6466字,需浏览 13分钟

 ·

2021-10-10 09:16

最近,诺贝奖得主引起了大家的热议,我用数据分析了一下历年的诺贝尔奖得主情况,分享给大家~

注:图片取自B站

诺贝尔奖(瑞典语:Nobel priset,英语:Nobel Prize):是指根据诺贝尔1895年的遗嘱而设立的五个奖项,包括:物理学奖化学奖和平奖生理学医学奖文学奖旨在表彰在物理学、化学、和平、生理学或医学以及文学上对社会做出卓越贡献,或做出杰出研究、发明以及实验的人士。以及瑞典中央银行1968年设立的诺贝尔经济学奖,用于表彰在经济学领域杰出贡献的人。 诺贝尔奖历经百年,时至今日,诺贝尔奖一直都被视为各领域最重要的荣誉之一。

历年诺贝尔奖得主统计分析


    一、导入数据

    二、获奖人性别分布统计

    三、各国获奖人数统计

    四、各领域获奖人数比例统计

    五、各领域获奖人数统计-国家排名

        1. 生理学奖获奖人数top10国家

        2. 物理学奖获奖人数top10国家

        3. 化学奖获奖人数top10国家

        4. 文学奖获奖人数top10国家

        5. 经济学奖获奖人数top10国家

        6. 和平奖获奖人数top10国家

    六、获奖者平均年龄统计

一、导入数据

#获取获奖信息数据
import pandas as pd

data_date   = pd.read_csv('nobel_prizes_by_date.csv',encoding = 'ISO-8859-1')
data_winner = pd.read_csv('nobel_prize_by_winner.csv',encoding = 'ISO-8859-1')
data_winner.head()

二、获奖人性别分布统计

#去重后获奖者总人数

data.id.nunique()

输出:901

def make_autopct(values):
    def my_autopct(pct):
        total = sum(values)
        val = int(round(pct*total/100.0))
        # 同时显示数值和占比的饼图
        return '{p:.2f}%  ({v:d}人)'.format(p=pct,v=val)
    return my_autopct

# 长8英寸 宽6英寸,该窗口的分辨率为80
plt.figure(figsize=(8,6), dpi= 80)

labels = '男','女','组织'
explode = (0,0,0)                              #将某一块分割出来,值越大分割出的间隙越大
colors = ['yellowgreen','lightskyblue','yellow'

patches,text1,text2 = plt.pie([male,female,org],
                      explode=explode,
                      labels=labels,
                      colors=colors,
                      labeldistance = 1.1,                       #标签距圆心半径倍距离
                      autopct = make_autopct([male,female,org]), 
                      shadow = True,                             #阴影设置
                      startangle =30,                            #逆时针起始角度设置
                      pctdistance = 0.7)  

plt.title('获奖者男女比例',fontsize=19)
plt.legend()
plt.show()

三、各国获奖人数统计

#实例化Pie类
pie = Pie(init_opts=opts.InitOpts(width='800px',height='550px'))

#添加数据,设置饼图半径
pie.add('',[list(z) for z in zip(data_cou.head(15).index.tolist(), data_cou.head(15).values.tolist())],
    radius=['40%','65%'],
    rosetype='radius'
    )
#设置全局配置项
pie.set_global_opts(title_opts=opts.TitleOpts(title=''),
                   legend_opts=opts.LegendOpts(is_show=True))

#玫瑰图展示
pie.render_notebook()

四、各领域获奖人数比例统计

# 长16英寸 宽8英寸,该窗口的分辨率为80
plt.figure(figsize=(16,8), dpi= 80)

def make_autopct(values):
    def my_autopct(pct):
        total = sum(values)
        val = int(round(pct*total/100.0))
        # 同时显示数值和占比的饼图
        return '{p:.2f}%  ({v:d}人)'.format(p=pct,v=val)
    return my_autopct

patches,l_text,p_text = plt.pie(data_cate.values,
                                labeldistance = 1.1,
                                labels=data_cate.index,
                                startangle = 60,
                                pctdistance = 0.7,
                                autopct=make_autopct(data_cate.values))

for t in l_text:
    t.set_size(12)
for t in p_text:
    t.set_size(12)
    
plt.title('各领域获奖人数',fontsize=15)
plt.legend(loc=2)
plt.show()

五、各领域获奖人数统计-国家排名

1. 生理学奖获奖人数top10国家

#实例化Pie类
pie = Pie(init_opts=opts.InitOpts(width='800px',height='550px'))

#添加数据,设置饼图半径
pie.add('',[list(z) for z in zip(data_med.head(10).index.tolist(), data_med.head(10).values.tolist())],
    radius=['30%','60%'],
    rosetype='radius'
    )
#设置全局配置项
pie.set_global_opts(title_opts=opts.TitleOpts(title=''),
                   legend_opts=opts.LegendOpts(is_show=True))

#玫瑰图展示
pie.render_notebook()  

2. 物理学奖获奖人数top10国家

#实例化Pie类
pie = Pie(init_opts=opts.InitOpts(width='800px',height='550px'))

#添加数据,设置饼图半径
pie.add('',[list(z) for z in zip(data_phy.head(10).index.tolist(), data_phy.head(10).values.tolist())],
    radius=['30%','60%'],
    rosetype='radius'
    )
#设置全局配置项
pie.set_global_opts(title_opts=opts.TitleOpts(title=''),
                   legend_opts=opts.LegendOpts(is_show=True))

#玫瑰图展示
pie.render_notebook()  

3. 化学奖获奖人数top10国家

#实例化Pie类
pie = Pie(init_opts=opts.InitOpts(width='800px',height='550px'))

#添加数据,设置饼图半径
pie.add('',[list(z) for z in zip(data_che.head(10).index.tolist(), data_che.head(10).values.tolist())],
    radius=['30%','60%'],
    rosetype='radius'
    )
#设置全局配置项
pie.set_global_opts(title_opts=opts.TitleOpts(title=''),
                   legend_opts=opts.LegendOpts(is_show=True))

#玫瑰图展示
pie.render_notebook()  

4. 文学奖获奖人数top10国家

#实例化Pie类
pie = Pie(init_opts=opts.InitOpts(width='800px',height='550px'))

#添加数据,设置饼图半径
pie.add('',[list(z) for z in zip(data_lit.head(10).index.tolist(), data_lit.head(10).values.tolist())],
    radius=['30%','60%'],
    rosetype='radius'
    )
#设置全局配置项
pie.set_global_opts(title_opts=opts.TitleOpts(title=''),
                   legend_opts=opts.LegendOpts(is_show=True))

#玫瑰图展示
pie.render_notebook()  

5. 经济学奖获奖人数top10国家

#实例化Pie类
pie = Pie(init_opts=opts.InitOpts(width='800px',height='550px'))

#添加数据,设置饼图半径
pie.add('',[list(z) for z in zip(data_eco.head(10).index.tolist(), data_eco.head(10).values.tolist())],
    radius=['45%','75%'],
    rosetype='radius'
    )
#设置全局配置项
pie.set_global_opts(title_opts=opts.TitleOpts(title=''),
                   legend_opts=opts.LegendOpts(is_show=True))

#玫瑰图展示
pie.render_notebook()  

6. 和平奖获奖人数top10国家

#实例化Pie类
pie = Pie(init_opts=opts.InitOpts(width='800px',height='550px'))

#添加数据,设置饼图半径
pie.add('',[list(z) for z in zip(data_pea.head(10).index.tolist(), data_pea.head(10).values.tolist())],
    radius=['30%','60%'],
    rosetype='radius'
    )
#设置全局配置项
pie.set_global_opts(title_opts=opts.TitleOpts(title=''),
                   legend_opts=opts.LegendOpts(is_show=True))

#玫瑰图展示
pie.render_notebook()  

六、获奖者平均年龄统计

df.plot(kind='bar',figsize=(10,6))

plt.title('各领域获奖者获奖年龄分布',fontsize=17)
plt.ylabel('获奖年龄',fontsize=14)
plt.xlabel('获奖领域',fontsize=14)
plt.xticks(rotation=45,fontsize=14)

plt.legend(loc=9,bbox_to_anchor=(0.86,0.96))




推荐阅读:

入门: 最全的零基础学Python的问题  | 零基础学了8个月的Python  | 实战项目 |学Python就是这条捷径


量化定投基金到底能赚多少钱?  | 我用Python对去年800只基金的数据分析  


干货:爬取豆瓣短评,电影《后来的我们》 | 38年NBA最佳球员分析 |   从万众期待到口碑扑街!唐探3令人失望  | 笑看新倚天屠龙记 | 灯谜答题王 |用Python做个海量小姐姐素描图 |碟中谍这么火,我用机器学习做个迷你推荐系统电影


趣味:弹球游戏  | 九宫格  | 漂亮的花 | 两百行Python《天天酷跑》游戏!


AI: 会做诗的机器人 | 给图片上色 | 预测收入 | 碟中谍这么火,我用机器学习做个迷你推荐系统电影


小工具: Pdf转Word,轻松搞定表格和水印! | 一键把html网页保存为pdf!|  再见PDF提取收费! | 用90行代码打造最强PDF转换器,word、PPT、excel、markdown、html一键转换 | 制作一款钉钉低价机票提示器! |60行代码做了一个语音壁纸切换器天天看小姐姐!


年度爆款文案


点阅读原文,领AI全套资料!

浏览 17
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报