Python中的奥运数据分析

2025年1月5日 | 阅读 7 分钟

引言

该案例研究使用过去的奥运会数据来识别可能揭示运动会及其参赛运动员如何随时间变化的模式和见解。最初的理论涉及身体质量指数 (BMI) 的分布、女性参与的趋势以及运动员身高和体重之间的关系。

在数据分析过程中,结合使用了 SQL 和 Python 来提取、清理和分析数据。在分析过程中,遇到了许多技术难题,包括数据不一致和缺失、大型数据集以及复杂的 SQL 查询。

分析结果支持了最初的理论,表明运动员的身高和体重之间存在正相关关系,并且女性参与的长期向上趋势。这些发现提供了关于奥运会参与趋势和模式的富有洞察力的信息,强调了在研究中考虑包括性别和身体特征在内的各种变量的价值。

本案例研究说明了使用 SQL 和其他数据分析工具可以带来重要的发现和有益的学习。本案例研究在现实世界环境中展示了 SQL 提取和操作能力的实用性,这对于数据分析师至关重要。

初始假设

我们的研究基于奥运会的历史数据。我们的目标是找到有趣的模式和信息,以帮助我们了解运动会及其运动员是如何随时间变化的。

我们的初步理论是

  1. 身高-体重相关性:我们的目标是找到有趣的模式和信息,以帮助我们了解运动会及其运动员是如何随时间变化的。这是基于一种普遍的看法,即较高的人通常体重更重,因为他们的身体质量较高。
  2. 女性参与趋势:我们的假设是,多年来参加奥运会的女性运动员越来越多。

身体质量指数 (BMI) 分布:考虑到职业体育的身体需求以及对健康和体适能的关注,我们预测运动员的 BMI 将在正常范围内。

数据解读

为了提取、清理和分析数据,我们的数据分析策略结合了 Python 和 SQL,利用了每种语言的优势。

  1. 数据提取:为了从奥运会数据集中检索相关信息,我们使用了 SQL。这包括关于运动员、他们参加的比赛以及他们的成绩的信息。
  2. 数据清理:我们使用 SQL 和 Python 清理了数据。这包括确保数据类型适合我们的研究,处理缺失值以及删除重复项。
  3. 数据分析:Python 的 panda 库是我们用来分析数据的工具。这使我们能够执行统计分析和有效的数据操作。我们使用趋势分析、相关性分析和可视化辅助来评估我们的假设。
  4. 数据可视化:为了更好地理解数据并发现见解,我们使用 matplotlib 和 seaborn 等 Python 工具创建了可视化。
  5. 我们的调查过程中遇到了几个技术挑战,我们必须克服这些挑战

缺失数据: 数据集中有几处缺失值,主要在身高和体重列。这是一个问题,因为这些是我们研究的关键领域。为了解决这个问题,我们在这些字段至关重要的某些分析中省略了这些数据。

数据不一致: 我们发现了数据中的几个不一致之处,包括奥运会名称使用惯例的差异(例如,“Summer”与“S”)。为了保持一致性,我们通过标准化数据解决了这个问题。
大型数据集: 数据集包含超过 270,000 条记录,规模很大。这带来了计算资源方面的挑战。为了解决这个问题,我们运行了有效的 SQL 查询,仅提取了我们研究所需的数据。
复杂查询: 例如,为了确定身高和体重之间的关系,我们的许多调查都需要使用复杂的 SQL 查询。为了解决这个问题,我们将查询分解成更易于理解的部分,并单独测试每个部分,然后再将它们组合起来。

源代码

输出

ID名称性 (Sex)年龄高度权重团队游戏Sport事件
01A DijiangM24.0180.080.0CHNBarcelonaBasketball
12A LamusiM23.0170.060.0CHN伦敦Judo
23Gunnar Nielsen AabyM24.0NaNNaNDENAntwerpenFootball
34Edgar Lindenau AabyeM34.0NaNNaNDEN巴黎Tug-Of-War
 

输出

['Overall',
 1896,
 1900,
 1904,
 1906,
 1908,
 1912,
 1920,
 1924,
 1928,
 2002,
 2004,
 2006,
 2008,
 2010,
 2012,
 2014 ]
 

输出

array(['China', 'Denmark', 'Netherlands', 'Finland', 'Norway', 'Romania',
       'Estonia', 'France', 'Morocco', 'Spain', 'Egypt', 'Iran',
       'Bulgaria', 'Italy', 'Chad', 'Azerbaijan', 'Sudan', 'Russia',
       'Argentina', 'Cuba', 'Belarus', 'Greece', 'Cameroon', 'Turkey',
       'Chile', 'Mexico', 'USA', 'Nicaragua', 'Hungary', 'Nigeria',
       'Algeria', 'Kuwait', 'Bahrain', 'Pakistan', 'Iraq', 'Syria',
       'Lebanon', 'Qatar', 'Malaysia', 'Germany', 'Canada', 'Ireland',
       'Australia', 'South Africa', 'Eritrea', 'Tanzania', 'Jordan',
       'Tunisia', 'Libya', 'Belgium', 'Djibouti', 'Palestine', 'Comoros',
       'Kazakhstan', 'Brunei', 'India', 'Saudi Arabia', 'Maldives',
,
       'Virgin Islands, British', 'Mozambique', 'Virgin Islands, US',
       'Central African Republic', 'Madagascar', 'Bosnia and Herzegovina',
       'Guam', 'Cayman Islands', 'Slovakia', 'Barbados', 'Guinea-Bissau',
       'Timor-Leste', 'Democratic Republic of the Congo', 'Gabon',
       'San Marino', 'Laos', 'Botswana', 'South Korea', 'Cambodia',
       'North Korea', 'Solomon Islands', 'Senegal', 'Cape Verde',
       'Equatorial Guinea', 'Boliva', 'Antigua', 'Andorra', 'Zimbabwe',
       'Grenada', 'Saint Lucia', 'Micronesia', 'Myanmar', 'Malawi',
       'Zambia', 'Taiwan', 'Sao Tome and Principe', 'Macedonia',
       'Liechtenstein', 'Montenegro', 'Gambia', 'Cook Islands', 'Albania',
       'Swaziland', 'Burkina Faso', 'Burundi', 'Aruba', 'Nauru',
       'Vietnam', 'Bhutan', 'Marshall Islands', 'Kiribati'})
#country = df['region'].unique().tolist()
 

正在尝试将值设置到 DataFrame 切片的一个副本中

请参阅文档中的注意事项:https://pandas.ac.cn/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy

输出

Out[69]:
Year
1896    120
1900    300
1904    280
1906    224
1908    322
1912    316
1920    449
1924    391
1928    356
1932    370
1936    422
1948    439
2016    973
Name: Medal, dtype: int64
 

输出

Year
1896     19
1900     54
1904    231
1906     23
1908     46
1912     63
1920     95
1924     99
2012    103
2016    121
Name: Medal, dtype: int64
 

输出

Olympic Data Analysis in Python

观察结果

在我们更深入的调查中,我们重点关注了两个主要主题:运动员体重和身高之间的关系以及女性参与的历史趋势。以下是我们发现的结果

身高与体重关系:我们发现运动员的身高和体重之间存在正相关关系(约 0.66)。这意味着较高的运动员通常体重较重,这与人体形状与身高和体重之间的整体关系一致。然而,由于每项运动独特的身体要求,这种相关性在各项运动中可能有所不同。

女性参与趋势:我们的数据显示,随着时间的推移,女性运动员的比例明显增加。起初,女性在奥运会上的参与度相当低,但已逐渐增长。随着在 2016 年里约奥运会上约有 45% 的女性参赛,在实现奥运会性别平等方面取得了重大进展。

这些更深入的观察揭示了重要的模式和联系,并提供了对数据更复杂的解释。

我们之前已经涵盖了初步数据中女性参与的趋势,这些数据表明随着时间的推移有显著增长。我们可以创建一个图表来显示每一届奥运会女性运动员的比例,以更好地说明这一趋势。

总结

通过对奥运会数据集的检查,我们得出了几个重要的结论

  • 身高与体重相关性:运动员的体重和身高之间存在一定的正相关。这表明运动员的身体特征可能对他们是否适合某项运动产生很大影响。在指导年轻运动员参加他们可能具有优势的运动项目时,教练和培训师可以考虑这一点。
  • 女性参与度不断提高:女性运动员的数量有所增加。这是性别平等在体育运动中日益增长的令人鼓舞的证据。然而,仍需付出更多努力,因为女性的参与度仍然低于男性。体育界的委员会和组织可以专注于鼓励和支持女性运动员,并努力扩大为她们提供的机会。
  • 身体质量指数 (BMI) 分析:通过分析参加不同运动的运动员的 BMI,可以了解每项运动的身体要求。运动员和教练可能会发现这些信息在他们的训练和准备中很有用。