前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >足球- EDA的历史数据分析并可视化

足球- EDA的历史数据分析并可视化

作者头像
老虎也淘气
发布2024-01-30 15:47:23
1130
发布2024-01-30 15:47:23
举报
文章被收录于专栏:Data分析Data分析
足球- EDA的历史数据分析并可视化

前言:

在足球世界中,背后隐藏着丰富的数据宝藏,记录着球队的兴衰、球员的崛起与衰落,以及比赛瞬息万变的情境。随着数据科学的崛起,越来越多的数据被收集并变得容易访问,为足球爱好者和专业分析师提供了深入了解这个美妙运动的机会。

在本篇技术博客中,我们将追溯足球的历史,深入探索足球比赛的背后,运用探索性数据分析(Exploratory Data Analysis,简称EDA)的方法来揭示数据的潜在规律。我们将通过挖掘比赛数据、球队表现和球员统计等方面的信息,为读者呈现足球世界独特而引人入胜的数据画卷。

跟随我们一同踏上这场数据之旅,发现数字化背后隐藏的足球故事,以及如何通过数据分析和可视化工具揭示足球运动的内在奥秘。

背景

该数据集包括从1872年第一场正式比赛到2023年的44,341场国际足球比赛的结果。比赛范围从FIFA世界杯到FIFI Wild杯再到常规的友谊赛。这些比赛严格来说是男子国际比赛,数据不包括奥运会或至少有一支球队是国家B队、U-23或联赛精选队的比赛。

EDA

EDA是Exploratory Data Analysis(探索性数据分析)的缩写。EDA是数据分析的一种方法,其主要目的是通过可视化、图表和统计工具来探索数据集,以了解数据的结构、特征和潜在模式。EDA的目标不是进行深入的模型建立或验证假设,而是帮助分析人员在开始正式分析之前对数据有一个初步的认识。

在EDA过程中,分析人员通常会执行以下任务:

数据摘要: 对数据进行基本的统计摘要,包括均值、中位数、标准差、最小值、最大值等,以了解数据的分布和范围。

数据可视化: 使用图表、图形和可视化工具展示数据的分布、趋势和关系。常见的可视化手段包括直方图、散点图、箱线图等。

缺失值和异常值处理: 检测和处理数据中的缺失值和异常值,以确保数据的质量。

相关性分析: 研究不同变量之间的关系,包括相关性和因果关系。这有助于理解数据中的模式和趋势。

特征工程: 探索和处理数据中的特征,可能包括创建新的特征、变换变量等,以提高后续建模的效果。

数据分布检查: 研究数据的分布,了解它是否符合假设,例如是否呈正态分布。

EDA是数据科学和统计学中的重要步骤,它有助于形成对数据的直观理解,为进一步的分析和建模提供基础。通过EDA,分析人员能够发现数据中的有趣模式、趋势或异常,从而更好地理解数据集的内在特性。

数据介绍

results.csv包括以下列:

  • date - 比赛日期
  • home_team - 主队的名字
  • away_team - 客场球队的名称
  • home_score - 全职主队得分,包括加时赛,不包括点球大战
  • away_score - 全职客队得分,包括加时赛,不包括点球大战
  • tournament - 锦标赛的名称
  • city - 比赛所在城市/城镇/行政单位的名称
  • country -比赛所在国家的名称
  • neutral - 真/假栏,表示比赛是否在中立场地进行

探索数据时需要遵循的一些方向:

谁是有史以来最好的球队

哪些球队统治了不同时代的足球

古往今来,国际足球有什么趋势——主场优势、总进球数、球队实力分布等

我们能从足球比赛中对地缘政治说些什么吗——国家的数量是如何变化的

哪些球队喜欢相互比赛

哪些国家主办了最多自己没有参加的比赛

举办大型赛事对一个国家在比赛中的胜算有多大帮助

哪些球队在友谊赛和友谊赛中最积极——这对他们有帮助还是有伤害

数据处理

代码语言:javascript
复制
import numpy as np 
import pandas as pd 
import os
for dirname, _, filenames in os.walk('/kaggle/input'):
    for filename in filenames:
        print(os.path.join(dirname, filename))

导入库

代码语言:javascript
复制
import matplotlib.pyplot as plt
import seaborn as sns

数据探索

代码语言:javascript
复制
df = pd.read_csv('/kaggle/input/international-football-results-from-1872-to-2017/results.csv')
df.head()
在这里插入图片描述
在这里插入图片描述
代码语言:javascript
复制
print(f"This Dataset Includes {df.shape}")
在这里插入图片描述
在这里插入图片描述
代码语言:javascript
复制
df.info()
在这里插入图片描述
在这里插入图片描述
代码语言:javascript
复制
df.describe()
在这里插入图片描述
在这里插入图片描述
代码语言:javascript
复制
df.describe(include=object)
在这里插入图片描述
在这里插入图片描述
代码语言:javascript
复制
df.isna().sum()
在这里插入图片描述
在这里插入图片描述

将“日期”列转换为日期时间类型

代码语言:javascript
复制
df['date'] = pd.to_datetime(df['date'])

数据可视化

赛事分析

代码语言:javascript
复制
plt.figure(figsize=(20, 12))
sns.countplot(x='tournament', data=df)
plt.xticks(rotation=90)
plt.title('Tournament Distribution')
plt.xlabel('Tournament')
plt.ylabel('Count')
plt.tight_layout()
plt.show()
在这里插入图片描述
在这里插入图片描述

主客场比分

代码语言:javascript
复制
plt.figure(figsize=(12, 8))
plt.subplot(1, 2, 1)
sns.histplot(df['home_score'], bins=20, kde=True)
plt.title('Distribution of Home Scores')
plt.xlabel('Home Score')
plt.ylabel('Frequency')
#Setting limit for first plot
plt.ylim(0, 40000)


plt.subplot(1, 2, 2)
sns.histplot(df['away_score'], bins=20, kde=True)
plt.title('Distribution of Away Scores')
plt.xlabel('Away Score')
plt.ylabel('Frequency')
# Share y-axis between subplots
plt.ylim(0, 40000)

plt.tight_layout()
plt.show()
在这里插入图片描述
在这里插入图片描述

相关性分析

代码语言:javascript
复制
correlation_matrix = df.corr()
plt.figure(figsize=(10, 6))
sns.heatmap(correlation_matrix, annot=True, cmap='coolwarm')
plt.title('Correlation Matrix')
plt.show()
在这里插入图片描述
在这里插入图片描述

时间序列分析

代码语言:javascript
复制
# 为年份创建新列
df['year'] = df['date'].dt.year

#时间序列分析
plt.figure(figsize=(10, 6))
sns.lineplot(x='year', y='home_score', data=df, label='Home Score')
sns.lineplot(x='year', y='away_score', data=df, label='Away Score')
plt.title('Trends in Home and Away Scores over Time')
plt.xlabel('Year')
plt.ylabel('Score')
plt.legend()
plt.tight_layout()
plt.show()
在这里插入图片描述
在这里插入图片描述

总结

足球不仅仅是一项运动,更是一门充满激情和策略的艺术。通过对历史数据的深入分析,我们揭示了足球世界的一些惊人之处,发现了隐藏在数字背后的精妙战术和球队的崛起。探索性数据分析的过程不仅让我们更好地理解了足球运动,也为未来的发展提供了有力的参考。

在这个数字化时代,数据是我们理解和改进的关键。通过对足球历史数据的深入挖掘,我们能够更深刻地理解这项运动的本质,同时也为球队、球员和球迷们提供了更多的洞察。足球的魅力在于其无法预测的变数,而数据分析正是帮助我们理解和解读这些变数的有力工具。

愿这篇博客成为你深入足球数据分析领域的起点,激发更多关于足球的好奇心,并让你对这项运动的热爱更上一层楼。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-01-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 足球- EDA的历史数据分析并可视化
  • 前言:
  • 背景
  • EDA
  • 数据介绍
  • 探索数据时需要遵循的一些方向:
  • 数据处理
    • 导入库
      • 数据探索
      • 数据可视化
        • 赛事分析
          • 主客场比分
            • 相关性分析
              • 时间序列分析
              • 总结
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档