Python奥林匹克数据分析

Python奥林匹克数据分析

当代奥林匹克运动会,有时被称为奥运会,是举办夏季和冬季体育竞赛的重要国际体育盛事,来自世界各地的成千上万参与者在各种领域中竞争。奥运会有200多个国家参加,被视为世界上最重要的体育盛事。在这篇文章中,我们将使用Python来分析奥林匹克运动会。让我们开始吧。

导入必要的库

!pip install pandas
!pip install numpy
import numpy as np
import pandas as pd
import seaborn as sns
from matplotlib import pyplot as plt

导入和理解数据集

在处理奥运数据时,我们有两个CSV文件。一个详细说明了所有奥运会的与体育相关的总开支。另一个包含了所有年份参加比赛的运动员的信息。

您可以通过点击下面的链接获取CSV数据文件 −

  • 数据集 1
  • 数据集 2
data = pd.read_csv('/content/sample_data/athlete_events.csv')  
# data.head() display first 5 entry
print(data.head(), data.describe(), data.info())

合并两个数据集

# regions and country noc data CSV file
regions = pd.read_csv('/content/sample_data/datasets_31029_40943_noc_regions.csv')
print(regions.head())
# merging to data and regions frame
merged = pd.merge(data, regions, on='NOC', how='left')
print(merged.head())

从这里开始进行数据分析。

黄金分析的数据分析

示例

#creating goldmedal dataframes
goldMedals = merged[(merged.Medal == 'Gold')]
print(goldMedals.head())

输出

ID                     Name    Sex   Age  Height  Weight            Team  \
3    4     Edgar Lindenau Aabye   M  34.0     NaN     NaN  Denmark/Sweden   
42  17  Paavo Johannes Aaltonen   M  28.0   175.0    64.0         Finland   
44  17  Paavo Johannes Aaltonen   M  28.0   175.0    64.0         Finland   
48  17  Paavo Johannes Aaltonen   M  28.0   175.0    64.0         Finland   
60  20       Kjetil Andr Aamodt   M  20.0   176.0    85.0          Norway   

    NOC        Games  Year  Season         City          Sport  \
3   DEN  1900 Summer  1900  Summer        Paris     Tug-Of-War   
42  FIN  1948 Summer  1948  Summer       London     Gymnastics   
44  FIN  1948 Summer  1948  Summer       London     Gymnastics   
48  FIN  1948 Summer  1948  Summer       London     Gymnastics   
60  NOR  1992 Winter  1992  Winter  Albertville  Alpine Skiing   

                               Event Medal   region notes  
3        Tug-Of-War Men's Tug-Of-War  Gold  Denmark   NaN  
42  Gymnastics Men's Team All-Around  Gold  Finland   NaN  
44      Gymnastics Men's Horse Vault  Gold  Finland   NaN  
48  Gymnastics Men's Pommelled Horse  Gold  Finland   NaN  
60       Alpine Skiing Men's Super G  Gold   Norway   NaN

按年龄划分的金牌得主分析

在这里,我们将制作一张图表,显示金牌数量与年龄的关系。为此,我们将开发一个计数图来代表图表,参与者的年龄显示在X轴上,奖牌的数量显示在Y轴上。

示例

plt.figure(figsize=(20, 10))
plt.title('Distribution of Gold Medals')
sns.countplot(goldMedals['Age'])
plt.show()

输出结果

Python奥林匹克数据分析

创建一个名为’masterDisciplines’的新数据帧,将这群新人放入其中。然后,使用该数据帧生成一个可视化图。

示例

masterDisciplines = goldMedals['Sport'][goldMedals['Age'] > 50]
plt.figure(figsize=(20, 10))
plt.tight_layout()
sns.countplot(masterDisciplines)
plt.title('Gold Medals for Athletes Over 50')
plt.show()

输出

Python奥林匹克数据分析

分析女性赢得奖牌

示例

womenInOlympics = merged[(merged.Sex == 'F') &
                         (merged.Season == 'Summer')]
print(womenInOlympics.head(10))

sns.set(style="darkgrid")
plt.figure(figsize=(20, 10))
sns.countplot(x='Year', data=womenInOlympics)
plt.title('Women medals per edition of the Games')
plt.show()

输出

Python奥林匹克数据分析

分析获得奖牌的前5个国家

示例

print(goldMedals.region.value_counts().reset_index(name='Medal').head())

totalGoldMedals = goldMedals.region.value_counts().reset_index(name='Medal').head(5)
g = sns.catplot(x="index", y="Medal", data=totalGoldMedals,
                height=6, kind="bar", palette="muted")
g.despine(left=True)
g.set_xlabels("Top 5 countries")
g.set_ylabels("Number of Medals")
plt.title('Medals per Country')
plt.show()

输出结果

Python奥林匹克数据分析

运动员随时间的演变

示例

MenOverTime = merged[(merged.Sex == 'M') & (merged.Season == 'Summer')]
WomenOverTime = merged[(merged.Sex == 'F') & (merged.Season == 'Summer')]
part = MenOverTime.groupby('Year')['Sex'].value_counts()
plt.figure(figsize=(20, 10))
part.loc[:,'M'].plot()
plt.title('Variation of Male Athletes over time')

输出

Python奥林匹克数据分析

示例

part = WomenOverTime.groupby('Year')['Sex'].value_counts()
plt.figure(figsize=(20, 10))
part.loc[:,'F'].plot()
plt.title('Variation of Female Athletes over time')

输出

Python奥林匹克数据分析

结论

我们对数据进行了一些分析,你也可以进一步探索并找出更多的见解。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程