前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >世界杯球队分析

世界杯球队分析

作者头像
用户2225445
发布2023-10-15 09:14:43
1560
发布2023-10-15 09:14:43
举报
文章被收录于专栏:IT从业者张某某IT从业者张某某

1. 本文思路

在世界杯⚽️期间,想起一个主题,根据往年的球队信息,进行一些分析,如果可以预测今年球队名次更佳(😄美滋滋💯 )。

如果你更感兴趣各种emoji表情的内容,也可以通过emoji官网找到对应的代码,python中也提供了对应的emoji库

世界杯球队分析: kaggle上世界杯的数据集 kaggle相关分析参考 CSDN上热门球队夺冠分析 数据分析阶段参考:https://baijiahao.baidu.com/s?id=1750933727392335087

2.数据介绍

本数据集来源于kaggle,CSDN的下载地址为https://download.csdn.net/download/m0_38139250/87231076: 数据集下包含3个文件,分别是:

在这里插入图片描述
在这里插入图片描述

该数据集包括从1872年第一场正式比赛到2022年的44152场国际足球比赛结果。比赛范围从国际足联世界杯到国际足球联合会野生杯,再到普通的友谊赛。这些比赛严格来说都是男足国际比赛,数据不包括奥运会或至少有一支球队是国家b队、U-23或联赛精选球队的比赛。

2.1 results.csv数据集

数据集截图:

在这里插入图片描述
在这里插入图片描述

results.csv数据集的字段含义如下:

date - date of the match 比赛日期 home_team - the name of the home team 主队名称 away_team - the name of the away team 客队名称 home_score - full-time home team score including extra time, not including penalty-shootouts 主队进球数 (不含点球) away_score - full-time away team score including extra time, not including penalty-shootouts 客队进球数 (不含点球 tournament - the name of the tournament 比赛的类型 city - the name of the city/town/administrative unit where the match was played 比赛所在城市 country - the name of the country where the match was played 比赛所在国家 neutral - TRUE/FALSE column indicating whether the match was played at a neutral venue 比赛是否在中立场地进行

2.2 shootouts.csv数据集

数据集截图:

在这里插入图片描述
在这里插入图片描述

shootouts.csv 点球大战数据集 包含如下的字段:

date - date of the match 比赛日期 home_team - the name of the home team 主场球队名称 away_team - the name of the away team 客场球队名称 winner - winner of the penalty-shootout 点球大战的胜利者

关于球队和国家名称: 主队和客场队都使用了球队当前的队名。例如,1882年,一支自称爱尔兰的球队与英格兰队比赛,在这个数据集中,它被称为北爱尔兰,因为现在的北爱尔兰队是1882年爱尔兰队的继承者。这样做是为了更容易跟踪团队的历史和统计数据。 对于国家名称,使用比赛时的国家名称。所以当加纳在20世纪50年代在黄金海岸的阿克拉比赛时,尽管主队和国家队的名字并不匹配

3. 数据分析

3.1 多维度分析

数据分析时,如果选择有效的切入点呢,一般而言,多维度分析是切实可行的方法。 多维度分析实质是细分分析,多维度分析对精细化运营的作用非常重要。多维度分析主要基于两个地方展开,一个是指标的细化,一个是维度的多元,比如时间维度,竞品维度等。管理层通常看的是综合指标,总值。但是这些总值无法真正发现问题。而运营通常需要根据具体的、细分的数据来支撑决策。比如从用户角度看,每天访问用户100万,每天购买的用户1万,但这100万个用户是通过什么渠道知道平台的,在平台哪个模块停留时间长,哪个模块转化率高需要通过指标细分,才能下结论。

3.2 数据分析案例

3.2.1 导入模块
代码语言:javascript
复制
from mpl_toolkits.mplot3d import Axes3D # 绘制3D图像
from sklearn.preprocessing import StandardScaler # 数据预处理标准化
import matplotlib.pyplot as plt # 绘图
import numpy as np # 线性代数
import os # 访问目录结果
import pandas as pd # 数据读取与处理
3.2.2 导入数据
1.遍历目录
代码语言:javascript
复制
for dirname, _, filenames in os.walk(r'F:\公司\20221124XX大学\世界杯数据集'):
    for filename in filenames:
        print(os.path.join(dirname, filename))

输出为:

代码语言:javascript
复制
F:\公司\20221124XX大学\世界杯数据集\goalscorers.csv
F:\公司\20221124XX大学\世界杯数据集\results.csv
F:\公司\20221124XX大学\世界杯数据集\shootouts.csv

os.walk()函数参考链接

2.读取数据
代码语言:javascript
复制
nRowsRead = None # 如果为None,则读取整个文件
# results.csv 有 40839  行数据
df1 = pd.read_csv(r'F:\公司\20221124XX大学\世界杯数据集\results.csv', delimiter=',', nrows = nRowsRead)
df1.dataframeName = 'results.csv'
nRow, nCol = df1.shape
print(f'该数据集有{nRow} 行,{nCol} 列')
3.2.3 查看描述数据
1.查看数据

查看前5条

代码语言:javascript
复制
df1.head(5)

输出为:

在这里插入图片描述
在这里插入图片描述

查看数据类型等信息

代码语言:javascript
复制
df1.info()

输出为:

代码语言:javascript
复制
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 44206 entries, 0 to 44205
Data columns (total 9 columns):
 #   Column      Non-Null Count  Dtype  
---  ------      --------------  -----  
 0   date        44206 non-null  object 
 1   home_team   44206 non-null  object 
 2   away_team   44206 non-null  object 
 3   home_score  44202 non-null  float64
 4   away_score  44202 non-null  float64
 5   tournament  44206 non-null  object 
 6   city        44206 non-null  object 
 7   country     44206 non-null  object 
 8   neutral     44206 non-null  bool   
dtypes: bool(1), float64(2), object(6)
memory usage: 2.7+ MB
2. 获取所有世界杯比赛的数据
代码语言:javascript
复制
# 获取比赛类型包含FIFA世界杯的数据
df_FIFA_all = df1[df1['tournament'].str.contains('FIFA', regex=True)]
df_FIFA_all

输出为:

在这里插入图片描述
在这里插入图片描述
3. 查看包含FIFA的类型
代码语言:javascript
复制
df_FIFA_all['tournament'].unique()

输出为:

代码语言:javascript
复制
array(['FIFA World Cup', 'FIFA World Cup qualification',
       'FIFA 75th Anniversary Cup'], dtype=object)
4. 获取世界杯数据不包含预选赛
代码语言:javascript
复制
df_FIFA = df_FIFA_all[df_FIFA_all['tournament']=='FIFA World Cup']
df_FIFA

输出为:

在这里插入图片描述
在这里插入图片描述
5. 数据转化时间类型

转换时间格式,生成新的年份数据

代码语言:javascript
复制
df_FIFA.loc[:,'date'] = pd.to_datetime(df_FIFA.loc[:,'date'])
df_FIFA['year'] = df_FIFA['date'].dt.year
df_FIFA

输出为:

在这里插入图片描述
在这里插入图片描述
6.计算进球得分数据
代码语言:javascript
复制
df_FIFA['diff_score'] = df_FIFA['home_score']-df_FIFA['away_score']
df_FIFA['diff_score'] = pd.to_numeric(df_FIFA['diff_score'])
df_FIFA

输出为:

在这里插入图片描述
在这里插入图片描述
7. 根据得分数据构造赢球字段
代码语言:javascript
复制
df_FIFA['win_team'] = ''
# 如果分数差为正 则赢的队为主队 
df_FIFA.loc[df_FIFA['diff_score']> 0, 'win_team'] = df_FIFA.loc[df_FIFA['diff_score']> 0, 'home_team']
# 如果分数差为负 则赢的队为客队
df_FIFA.loc[df_FIFA['diff_score']< 0, 'win_team'] = df_FIFA.loc[df_FIFA['diff_score']< 0, 'away_team']
# 如果分数差为0 则平局
df_FIFA.loc[df_FIFA['diff_score']== 0, 'win_team'] = 'Draw'
df_FIFA

输出为:

在这里插入图片描述
在这里插入图片描述
3.2.4 获取世界杯主场比赛的比赛结果分析
1.查看空缺值
代码语言:javascript
复制
df_FIFA[['home_team','diff_score']].isna().sum()

输出为:

代码语言:javascript
复制
home_team     0
diff_score    4
dtype: int64
2.删除空缺值
代码语言:javascript
复制
df_FIFA_no_na = df_FIFA[['home_team','diff_score']].dropna()
df_FIFA_no_na
3.添加主场胜负平列
代码语言:javascript
复制
df_FIFA_no_na['主场赢'] = ""

df_FIFA_no_na.loc[:,'主场赢'].loc[df_FIFA_no_na['diff_score']<0] = "胜"
df_FIFA_no_na.loc[:,'主场赢'].loc[df_FIFA_no_na['diff_score']>0] = "负"
df_FIFA_no_na.loc[:,'主场赢'].loc[df_FIFA_no_na['diff_score']==0]= "平"
df_FIFA_no_na['主场赢'].value_counts()

输出为:

代码语言:javascript
复制
负    427
胜    308
平    209
4. 获取世界杯主场比赛的比赛结果分析
代码语言:javascript
复制
s = df_FIFA_no_na.groupby('主场赢')['主场赢'].count()
# s.sort_values(ascending=False, inplace=True)
s

输出为:

代码语言:javascript
复制
主场赢
平    209
胜    308
负    427
Name: 主场赢, dtype: int64

可视化分析

代码语言:javascript
复制
import matplotlib

%matplotlib inline
font = {
    'family':'SimHei',
    'weight':'bold',
    'size':12
}
matplotlib.rc("font", **font)
matplotlib.rcParams['axes.unicode_minus']=False
s.plot(kind = 'bar', figsize=(10, 6))

输出为:

在这里插入图片描述
在这里插入图片描述

3.3 其它相关分析

针对这些数据,还可以进行其它分析,看你的创意啦~~~ 在研究数据时,可以遵循以下几个方向:

1.谁是有史以来最好的球队 2.哪些球队统治着不同的足球时代 3.历史上国际足球的发展趋势是什么——主场优势、总进球数、球队实力分布等等 4.我们能从足球赛程中谈谈地缘政治吗?国家的数量是如何变化的?哪些球队喜欢彼此比赛 5.哪些国家举办的比赛最多,而他们自己却不参加 6.举办一场大型赛事对一个国家的世界杯机会有多大帮助

4. 总结

可以针对这份数据集,进行如下操作:

1.使用爬虫获取csdn中的下载数据 2.加载数据 3.数据处理 4.数据分析 5.数据可视化 6.数据挖掘预测,预测今年谁是冠军吧

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 本文思路
  • 2.数据介绍
    • 2.1 results.csv数据集
      • 2.2 shootouts.csv数据集
      • 3. 数据分析
        • 3.1 多维度分析
          • 3.2 数据分析案例
            • 3.2.1 导入模块
            • 3.2.2 导入数据
            • 3.2.3 查看描述数据
            • 3.2.4 获取世界杯主场比赛的比赛结果分析
          • 3.3 其它相关分析
          • 4. 总结
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档