前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python数据探索,了解夏季奥运与冬季奥运的区别

Python数据探索,了解夏季奥运与冬季奥运的区别

作者头像
咋咋
发布2021-09-01 10:33:19
3650
发布2021-09-01 10:33:19
举报
文章被收录于专栏:数据大宇宙

前言

最近在准备 pandas 专栏的工程化内容,其中用到一份奥运数据的探索分析。这里会截取一些技巧内容让大家参考学习,包括:

  1. 怎么找出每个项目首次出现在奥运的时间
  2. 哪些项目被取消?在哪一届被取消
  3. 有没有项目被取消之后,又重新纳入奥运项目
  4. ………………

完整的分析过程,包括如何组织代码,把一些固定参数和逻辑外置在 Excel上等高级技巧,请关注专栏相关章节。

导入这些库:

代码语言:javascript
复制
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

plt.rcParams['figure.figsize'] = [16,10]
plt.rcParams['figure.dpi'] = 140
plt.rcParams['font.size'] = 20

数据是从 kaggle 上下载的 csv 文件:

代码语言:javascript
复制
df = pd.read_csv('athlete_events.csv')
df
  • 每一行表示一个运动员的记录,包括姓名、性别,国家、参与年份,项目(Sport),拿到的奖项(Medal)

开始年份与举办时间的变化

本文主题是夏季奥运与冬季奥运,而数据的颗粒是某一届奥运的某一位运动员,显然太细了。

很简单,取出我们需要的字段,然后去重就可以得到需要的颗粒度:

代码语言:javascript
复制
df[['Year','Season']].drop_duplicates().sort_values('Year')

数据太多,不好看。简单可视化:

代码语言:javascript
复制
(
    df[['Year', 'Season']]
    .drop_duplicates()
    .sort_values('Year')
    .pivot_table(index='Year',columns='Season',values='Season',aggfunc='size')
    .plot.bar(stacked=True)
)
  • 1896年开始就已经有夏季奥运
  • 但直到1924年开始才有冬季奥运
  • 1924 - 1992 年间,冬季与夏季奥运是在同一年举办
  • 从1994年开始,冬季与夏季奥运相隔2年举办

我们知道,由于疫情原因,今年(现在是2021年了)看到的东京奥运其实是 2020 年的夏季奥运会

所以你会看到东京奥运会上的标识年份是 2020


项目区别

现在我们不考虑时间,只看季节与项目的关系:

代码语言:javascript
复制
(
    df[['Season','Sport']]
    .drop_duplicates()
    .groupby('Season').count()
)

可视化也是一样的套路:

代码语言:javascript
复制
(
    df[['Season','Sport']]
    .drop_duplicates()
    .groupby('Season').count()
    .plot.bar(table=True)
)
  • 夏季奥运的项目非常多
  • 相对来说,冬季奥运的项目较少

这个很容易理解,冬季奥运项目都是与冰雪有关的项目:

代码语言:javascript
复制
(
    df[['Season','Sport']]
    .drop_duplicates()
    .query('Season=="Winter"')
)
  • 冬季奥运项目基本是 滑冰,滑雪,冰壶,冰球和雪橇

但是夏季奥运很多项目是不受冰雪天气限制的项目,因此非常多


影响力

同样套路,看看参与国家的数量:

代码语言:javascript
复制
(
    df[['Season','NOC']]
    .drop_duplicates()
    .groupby('Season').count()
    .plot.bar(table=True)
)
  • 夏季奥运有230个国家参与
  • 冬季奥运只有119个国家参与

原因显然易见,大部分国家都有夏季,而且很多项目可能在室内,不受环境影响,所以夏季奥运是所有国家都参与。

而冬季项目在那些常年冰天雪地的国家中,自然受众较多,参与人数和发展较好。

相比之下,一些没有这样气候环境的国家可能就不会投入资源在冬季项目中,既然没有夺金希望,那索性不参与


下次再分享基于每个项目的探索,如果对你有帮助,请点赞转发支持!!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-08-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据大宇宙 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 开始年份与举办时间的变化
  • 项目区别
  • 影响力
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档