数据分析-60-历届奥运会奖牌榜变迁(1896到2022年)的探索(包含代码和数据)

算法学习4对1辅导论文辅导核心期刊
项目的代码和数据下载可以通过公众号滴滴我


数据下载

算法学习4对1辅导论文辅导核心期刊
项目的代码和数据下载可以通过公众号滴滴我

一、项目背景

历届奥运会奖牌数据(1896年-2024年)
奥运会,全称奥林匹克运动会(Olympic Games),是国际奥林匹克委员会主办的世界规模最大的综合性体育赛事,每四年一届,会期不超过16天。这项历史悠久的赛事起源于古希腊,现代奥运会则始于1896年的希腊雅典。奥运会分为夏季奥运会和冬季奥运会,旨在通过体育竞技促进世界各国之间的友谊与文化交流,体现“更快、更高、更强、更团结”的奥林匹克精神。奥运会不仅是全球顶尖运动员展示才华的舞台,也是展现举办城市文化和促进国际交流的重要平台。

奥运会奖牌是授予在奥运会比赛中获得前三名的运动员的荣誉标志,象征着运动员在体育竞技中的卓越成就。不仅是对运动员个人努力的认可,也是国家和地区在国际体坛地位的象征。

本次分享的数据为1896年-2024年间奥运会奖牌数据,包括届次、国家地区、名次、金牌、银牌、铜牌等数据

二、数据描述

该数据共1878行,共8个字段。分别是:奥运会年份名次国家金牌银牌铜牌总数年份

以下是表的部分数据:
在这里插入图片描述

三、数据处理

1、读取数据

import pandas as pd  
import plotly.express as px  
import plotly.graph_objects as go
file_path = '历届奥运会奖牌数据(1896-2024年).xlsx'
data = pd.read_excel(file_path)

data.head()

在这里插入图片描述

data.drop(columns=['Unnamed: 8'], inplace=True)
#由于原始数据没有“奥运会类型”列,我们需要根据“奥运年股份”列创建它
data['奥运会类型'] = data['奥运会年份'].apply(lambda x: '冬季奥运会' if '冬' in str(x) else '夏季奥运会')

#提取并添加年份的新列
data['年份'] = pd.to_numeric(data['奥运会年份'].str.extract(r'(\d{4})')[0])

data.head()

在这里插入图片描述

#根据“奥运会年份额”栏删除重复项
unique_editions = data.drop_duplicates(subset=['奥运会年份'])

unique_edition_counts = unique_editions['奥运会类型'].value_counts()
unique_edition_counts

在这里插入图片描述

unique_edition_counts_summary = unique_edition_counts.reset_index()
unique_edition_counts_summary.columns = ['奥运会类型', '届数']
unique_edition_counts_summary

在这里插入图片描述

2、冬季奥运会与夏季奥运会届数对比

# 使用Plotly Express创建条形图
fig = px.bar(x=unique_edition_counts.index, y=unique_edition_counts.values,
             labels={'x': '奥运会类型', 'y': '届数'},
             title='冬季奥运会与夏季奥运会届数对比(去重后)',
             color=unique_edition_counts.index,  # 可以根据类型自动着色
             color_discrete_map={'冬季奥运会': 'blue', '夏季奥运会': 'green'})  # 自定义颜色映射
fig.add_annotation(
    xref="paper", yref="paper",
    x=0.5, y=0.5,
    showarrow=False,
    font=dict(
        family="Arial",
        size=20,
        color="lightgrey"
    ),
    opacity=0.5,
    xanchor='center'
)
# 显示图表
fig.show()

在这里插入图片描述

unique_edition_counts_summary = unique_edition_counts.reset_index()
unique_edition_counts_summary.columns = ['奥运会类型', '届数']
unique_edition_counts_summary

在这里插入图片描述

  • 夏季奥运会共举办了31届。
  • 冬季奥运会共举办了24届。

从可视化图表中可以看出,夏季奥运会的举办次数略多于冬季奥运会。这个结果更符合实际情况,因为夏季奥运会自1896年开始举办,而冬季奥运会则是从1924年开始。

3、夏季奥运会累计获得奖牌分布

summer_olympics = data[data['奥运会类型'] == '夏季奥运会']

country_medal_counts = summer_olympics.groupby('国家')['金牌', '银牌', '铜牌'].sum().reset_index()
country_medal_counts['总奖牌数'] = country_medal_counts['金牌'] + country_medal_counts['银牌'] + country_medal_counts['铜牌']

top_10_countries = country_medal_counts.sort_values(by='总奖牌数', ascending=False).head(10).reset_index()
fig = px.bar(top_10_countries, x='国家', y='总奖牌数', color='总奖牌数', color_continuous_scale='peach', 
             title='夏季奥运会累计获得奖牌数前10名的国家', labels={'国家': '国家', '总奖牌数': '总奖牌数'})
fig.update_layout(xaxis={'categoryorder':'total descending'})
fig.add_annotation(
    xref="paper", yref="paper",
    x=0.5, y=0.5,
    showarrow=False,
    font=dict(
        family="Arial",
        size=20,
        color="lightgrey"
    ),
    opacity=0.5,
    xanchor='center'
)
fig.show()

在这里插入图片描述

top_10_countries_summary = top_10_countries[['国家', '总奖牌数']]
top_10_countries_summary

在这里插入图片描述
从可视化图表中可以看出,美国在夏季奥运会上的表现非常出色,其累计奖牌数远远超过其他国家。USSR(苏联)和英国分别位居第二和第三位,但与美国的差距较大。

这些数据反映了各国在夏季奥运会历史上的整体竞技水平。美国、USSR(苏联)和英国等国的传统体育实力较强,长期在国际赛事中占据领先地位。

4、冬季奥运会累计获得奖牌分布

winter_olympics = data[data['奥运会类型'] == '冬季奥运会']

winter_country_medal_counts = winter_olympics.groupby('国家')['金牌', '银牌', '铜牌'].sum().reset_index()
winter_country_medal_counts['总奖牌数'] = winter_country_medal_counts['金牌'] + winter_country_medal_counts['银牌'] + winter_country_medal_counts['铜牌']

winter_top_10_countries = winter_country_medal_counts.sort_values(by='总奖牌数', ascending=False).head(10).reset_index()
fig = px.bar(winter_top_10_countries, x='国家', y='总奖牌数', color='总奖牌数', color_continuous_scale='peach', 
             title='冬季奥运会累计获得奖牌数前10名的国家', labels={'国家': '国家', '总奖牌数': '总奖牌数'})
fig.update_layout(xaxis={'categoryorder':'total descending'})
fig.add_annotation(
    xref="paper", yref="paper",
    x=0.5, y=0.5,
    showarrow=False,
    font=dict(
        family="Arial",
        size=20,
        color="lightgrey"
    ),
    opacity=0.5,
    xanchor='center'
)
fig.show()

在这里插入图片描述

winter_top_10_countries_summary = winter_top_10_countries[['国家', '总奖牌数']]
winter_top_10_countries_summary

在这里插入图片描述

从可视化图表中可以看出,挪威在冬季奥运会上的表现最为出色,其累计奖牌数位居第一。美国和德国紧随其后,分别位居第二和第三位。这些国家在冬季奥运会的历史上有着显著的竞技优势。

对比夏季奥运会和冬季奥运会的结果,我们可以看到,虽然美国在两个奥运会上都表现出色,但挪威和德国在冬季奥运会上的表现更为突出。这可能与这些国家在特定冬季运动项目上的优势有关。

5、中国的每一届夏季奥运和冬季奥

china_olympics = data[data['国家'] == '中国']

china_medal_counts = china_olympics.groupby('奥运会年份')['金牌', '银牌', '铜牌'].sum().reset_index()
china_medal_counts['总奖牌数'] = china_medal_counts['金牌'] + china_medal_counts['银牌'] + china_medal_counts['铜牌']

fig = px.bar(china_medal_counts, 
             x='奥运会年份', 
             y=['金牌', '银牌', '铜牌', '总奖牌数'],
             barmode='group',  # 设置条形模式为分组
             labels={'value': '奖牌数', 'variable': '奖牌类型'},  # 设置轴标签
             title='中国在每届奥运会上的奖牌数')
fig.add_annotation(
    xref="paper", yref="paper",
    x=0.5, y=0.5,
    showarrow=False,
    font=dict(
        family="Arial",
        size=20,
        color="lightgrey"
    ),
    opacity=0.5,
    xanchor='center'
)
fig.update_layout(
    xaxis_tickangle=-45,
    xaxis_title='奥运会年份',
    yaxis_title='奖牌数'
)

fig.show()

在这里插入图片描述

china_medal_counts_summary = china_medal_counts[['奥运会年份', '金牌', '银牌', '铜牌', '总奖牌数']]
china_medal_counts_summary

在这里插入图片描述
从可视化图表中可以看出,中国在历届夏季奥运会和冬季奥运会上的表现如下:

  • 中国在夏季奥运会上的表现尤为出色,尤其在2008年北京奥运会和2012年伦敦奥运会上,分别获得了100枚和92枚奖牌,显示出强大的竞技实力。
  • 相比之下,中国在冬季奥运会上的表现较弱。例如,在2002年盐湖城冬奥会和2010年温哥华冬奥会上,中国分别只获得了8枚和11枚奖牌。
  • 随着时间的推移,中国在冬季奥运会上的表现有所提升,特别是在2022年北京冬奥会上,中国获得了15枚奖牌,这可能与东道主优势和近年来的投入有关。

综上所述,中国在夏季奥运会上的成绩显著优于冬季奥运会。这可能与夏季和冬季运动项目的普及程度、资源投入和训练体系等因素有关。

6、奥运奖牌榜有哪些变化趋势

medals_per_year = data.groupby(['国家', '年份']).sum().reset_index()

total_medals_per_country = medals_per_year.groupby('国家')['总数'].sum().sort_values(ascending=False)

top_10_countries = total_medals_per_country.head(10).reset_index()
top_10_countries

在这里插入图片描述

fig = go.Figure()

for country in top_10_countries['国家']:
    country_medals = medals_per_year[medals_per_year['国家'] == country]
    fig.add_trace(go.Scatter(x=country_medals['年份'], y=country_medals['总数'], mode='lines+markers', name=country))

fig.update_layout(
    xaxis_title='年份',
    yaxis_title='奖牌总数',
    xaxis_tickangle=-45,
    showlegend=True,
    height=600,
    xaxis=dict(type='category')
)
fig.add_annotation(
    text="制图:布鲁的Python之旅",
    xref="paper", yref="paper",
    x=0.5, y=0.5,
    showarrow=False,
    font=dict(
        family="Arial",
        size=20,
        color="lightgrey"
    ),
    opacity=0.5,
    xanchor='center'
)
fig.show()

在这里插入图片描述
从上图中我们可以看到奥运会历史上奖牌数排名前十的国家在不同年份的奖牌数变化趋势。美国在多数年份中保持了领先地位,而苏联(USSR)在1960年代至1980年代期间也有显著的表现。近年来,中国作为一个崛起的力量,在奖牌榜上的位置也逐渐上升。


算法学习4对1辅导论文辅导核心期刊
项目的代码和数据下载可以通过公众号滴滴我

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI研习星球

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值