足球运动员的数据分析实战(python)

40 篇文章 461 订阅
订阅专栏
34 篇文章 117 订阅
订阅专栏
一、本案例的相关说明

  本人把这篇文章拿出来进行写作的主要原因是为了让大家对数据分析有一个较为清楚的认识,其实数据分析并不是那么高深,只是看你怎么从一堆杂乱无章的数据中能够发现一定的有规律性的结论,有时候可能会觉得某些结论有些牵强,但这属于每个人对每个问题而见解不同,因而较强的数据分析能力,需要我们在实际工作中进行慢慢培养出来。同时这篇文章很好的将pandas库运用到其中,这个也可以帮助我们学以致用,用而学,会起到更好的效果。

1、案例背景

  足球运动是最受欢迎的运动之一。在此万受瞩目的运动下,打算针对足球运动员个人的信息,技能水平等各项指标进行相关的分析与统计。例如,我们可能会关注如下的内容:

  • 足球运动员是否受出生日期的影响?
  • 左撇子适合踢足球吗?
  • 足球运动员的号码是否与位置相关?
  • 足球运动员的年龄与能力具有怎样的关联?
2、任务说明

  目前,我们收集到了某年现役运动员的数据集data.csv。我们希望通过该数据集,针对众多的足球运动员进行分析与统计,从而能够发现一些关于足球运动员的特征,解开我们上述疑问。

3、数据列名的含义

在这里插入图片描述

4、足球场上各位置说明

在这里插入图片描述

5、什么是数据分析?

  数据分析指的就是利用统计学知识,对一系列杂乱无章的数据进行数据分析前的预处理,同时结合数据的具体应用场景,提炼出数据中的有效信息,帮助我们定位、分析、解决某些问题,高效决策。

6、数据分析的基本流程

明确需求
数据收集
  内部数据
  购买数据
  爬取数据
  调查问卷
数据预处理
  数据清洗
    缺失值
    异常值
    重复值
  数据转换
数据分析
  数据建模
  数据可视化
编写报告

7、理解流程

  现在网上最常见的一种比喻数据分析流程的方式,就是利用“炒菜”来对比“数据分析的每个流程”。

做菜步骤数据分析步骤
确定做菜明确需求与目的
买菜数据收集
洗菜数据清洗
切菜数据转换
炒菜数据分析
盛菜数据可视化
写日记编写报告
1)熟悉数据集

  熟悉数据集,就是在进行数据处理之前,应该先熟悉数据,只有对数据充分熟悉之后,才能更好的进行分析。
  熟悉数据常用的方法和属性有shape、head()、tail()、sample()、info()、describe()。

  • shape:以元组形式返回数据集的行、列大小。
  • head()或tail():当数据量过大时,我们不可能直接查看所有数据,这样会很消耗电脑内存,因此,使用head()或tail(),可以默认返回数据集的前五行、后五行的数据;当向head()或tail()中传入整数n时,则可以返回任意前n行、后n行的数据。
  • sample():向方法中传入整数n时,则会从当前数据集中随机抽样n条记录显示出来,对于我们了解数据很有帮助。
  • info():可以显示每列的列名、非空值数量、数据类型,内存占用等信息。
  • describe():可以帮助我们掌握数值的分布情况,会返回每个字段的count()、mean()、std()、min()、25%、50%、75%、max()。对于非数值型字段,只会显示count()计数。
2)缺失值处理

  缺失值就是由于某些原因导致部分数据为空。进行缺失值处理之前,首先应该查看是否有缺失值。

① 检查缺失值的办法:一般有以下两种处理方式;

  • 1、通过info查看数据信息。
  • 2、可以通过isnull与sum结合,查看缺失值情况。
data.info()
data.isnull().sum(axis=0)

② 缺失值的处理办法:一般也有两种处理方式;

  • 1、直接删除(当某一列或某一行存在大量的缺失值的时候)。
  • 2、采用某个值填充。

③ 直接删除缺失值
  采用dropna()方法,默认删除所有含有缺失行的数据(即:某一行只有要一个字段缺失,就删除)。传入参数how=”all”,只删除那些全为空的行。

# inplace=True表示原地修改数据集
data.dropna(axis=0, inplace=True) 

# 对删除后缺失值后的数据集,再次进行缺失值统计
data.isnull().sum(axis=1) 

④ 填充
  可以采用均值、中位数、众数、附近值进行填充。
  对于缺失值填充,这里做一个简单的说明:1、当数据服从正态分布,这时候可以采用均值填充;2、当数据为偏态分布(不管左偏还是右偏),则采用中位数进行填充;3、若某个字段为离散型数据,则最好采用众数填充;4、若像温度这样的数据,前后时刻之间的温度关联肯定是最大的,这时采用前后时刻温度进行填充更好。

3)异常值处理

  异常值:就是和正常数据相比,过高或者过低的数据。
  异常值检测:对异常值进行检测,主要有以下几种方式:1、根据业务需求和经验对不同指标所划分的范围,超过指定范围的数据叫做异常值;2、绘制箱线图,大于上边缘和小于下边缘的数据叫做异常值;3、通过descride()函数,可以找出数据的25%和75%分位数,然后把“小于q1+1.5IQR,大于q3+1.5IQR”的数据叫做异常值,q1为25%分位数,q3为75%分位数,IQR= q3- q1的差值。
  异常值处理:主要有三种处理办法。1、直接删除;2、把异常值当做缺失值填充;3、把异常值当做特殊情况,研究异常值出现的原因。

4)重复值处理

  重复数据,指的是数据集中同样的记录有多条。对于这样的数据一般就是直接删除。
  重复值的检测:data.duplicated().sum()可以查看,重复数据有多少行。
  重复值的删除:data.drop_duplicates(inplace=True)。
  上述函数可以配合使用参数subset=[]和keep进行调整,具体需要的时候,再百度自学。

二、数据分析代码
1、导入相关的库
import numpy as np 
import pandas as pd 
import matplotlib as  mpl
import matplotlib.pyplot as  plt 
import seaborn as sns
import warnings

# 用来显示中文标签
mpl.rcParams["font.family"] = "SimHei"

# 用来显示负号
mpl.rcParams["axes.unicode_minus"] = False

# 有时候运行代码时会有很多warning输出,像提醒新版本之类的,如果不想这些乱糟糟的输出,可以使用如下代码
warnings.filterwarnings('ignore')

结果如下:
在这里插入图片描述

2、读取data.csv数据集

① 读取数据集

data = pd.read_csv("G:\\2大数据学习\\data.csv",engine="python",encoding="utf-8-sig")
  • 当文件路径中存在中文时,需要设置engine参数来指定默认引擎为python,否则会报错。
  • utf-8-sig这个编码在windows系统中是常见的。不带有BOM格式的数据才是标准的utf8,但是在windows下,用记事本打开一个文本文件,另存为utf-8格式后,该文件开头就会被带上BOM头信息。这个时候当我们指定编码为utf8,会报错,因此我们就需要指定编码为utf-8-sig,告诉系统该文件的编码是带有BOM格式的utf8编码文件。

② 熟悉数据集的几种方式

# 查看数据集共有多少行、多少列
data.shape

# 查看数据集的前5行
data.head()

# 查看数据集的后5行
data.tail()

# 随机从数据集中抽取5行,显示
data.sample(5)

# 显示每列的列名、非空值数量、数据类型,内存占用等信息。
data.info()

# 此函数可以帮助我们掌握数据的分布情况
data.describe()

注意:head()、tail()和sample()方法中都可以传入一个整数值,head(10)表示显示前10行,tail(10)表示显示后10行,sample(10)表示任意抽取10行显示。

③ 设置DataFrame最大显示列数
  DataFrame在显示数据时,若列数较多,中间会将一些列省略掉,变为省略号,而我们往往又需要查看全部列的情况,这个时候就需要设置DataFrame最大显示列数。

pd.set_option("display.max_columns",500)

④ 选取指定列,进行相关的数据分析
  有时候,数据集中的列,并非都是我们分析所需要的,我们可以有选择性的进行加载,只加载我们需要的信息列(特征列)。

columns = ["Name", "Age", "Nationality", "Overall", "Potential", "Club", 
           "Value", "Wage", "Preferred Foot","Position", "Jersey Number", 
           "Joined","Height", "Weight", "Crossing","Finishing","HeadingAccuracy",
           "ShortPassing", "Volleys","Dribbling", "Curve","FKAccuracy","LongPassing",
           "Jumping","Stamina","Strength","Aggression","Interceptions","Positioning",
           "Vision","Penalties","Marking","StandingTackle", "SlidingTackle","GKDiving",
           "GKHandling","GKKicking","GKPositioning", "GKReflexes", "Release Clause"]
           
pd.read_csv("G:\\2大数据学习\\data.csv",engine="python",encoding="utf-8-sig",usecols=columns)

# 查看数据集共有多少行、多少列
data.shape

# 查看数据集的前5行
data.head()

# 查看数据集的后5行
data.tail()

# 随机从数据集中抽取5行,显示
data.sample(5)

# 显示每列的列名、非空值数量、数据类型,内存占用等信息。
data.info()

# 此函数可以帮助我们掌握数据的分布情况
data.describe()

info()方法的结果显示如下:
在这里插入图片描述
截取describe()方法的部分结果如下:
在这里插入图片描述

3、缺失值处理
1)查看缺失值
data.info()
data.isnull().sum(axis=0)

结果如下:
在这里插入图片描述
结果分析:通过上面的展示可以发现,info()方法虽然可以看到哪些字段具有缺失值,但是并不直观。通过data.isnull().sum(axis=0)结果显示,可以很清楚的看到哪些字段具有缺失值,有多少个缺失值。

2)删除缺失值
data.dropna(axis=0,inplace=True)
data.isnull().sum(axis=0)

结果如下:
在这里插入图片描述

4、异常值处理

① info()方法展示出的信息
在这里插入图片描述
结果分析:上图截取了部分列的结果展示,其中count表示非空记录数;mean表示该列所有数据的均值;std表示该列所有数据的标准差;min表示该列数据中的最小值;max表示该列数据中的最大值;25%表示该列中有1/4的数据,小于该值;50%表示该列中有1/2的数据,小于该值;75%表示该列中有3/4的数据,小于该值;

② 利用箱线图,查看异常值
 由于数据集列数太多,因此我随意选取两列画出其箱线图进行展示。

sns.boxplot(data=data[["Age", "Overall"]])

结果如下:
在这里插入图片描述
结果分析:此数据集主要是一些打分情况,几乎没有什么特别的异常值,同时有时候一些异常值数据的产生也是合理的,并不是能够随意删除的,因此实际生产中,可以按照上述介绍的方法,结合实际业务进行异常值的处理。

5、重复值处理
data.duplicated().sum()
# data.drop_duplicates(inplace=True)

结果如下:
在这里插入图片描述
结果分析:从上面的结果中可以看出,此数据集中没有重复的数据,duplicated()函数默认是将两行完全一样的记录,称之为“重复值”,当然此函数还有一些其他参数,供我们选择,你可以根据需求,随意指定某两行数据有多少个字段相同,可以称之为“重复值”。当数据集中含有重复值的时候,可以使用这句代码data.drop_duplicates(inplace=True)原地删除数据集中的重复值。

6、足球运动员的身高体重分布
1)数据转换

  想要统计身高与体重的分布情况,由于数据集中的身高与体重数据并不是我们熟悉的身高与体重的单位,同时也并不是数值类型的数据,因此处理之前需要我们先做数据转换。

  • 1英尺 = 30.48厘米
  • 1英寸 = 2.54厘米
  • 1磅 = 0.45千克

原始数据展示如下:
在这里插入图片描述
代码如下:

def tran_height(height):
	v = height.split("'")
	return int(v[0])*30.48 + int(v[1])*2.54

def tran_weight(weight):
	v = int(weight.replace("lbs", "")) 
	return v*0.45

处理后的结果展示如下:
在这里插入图片描述

2)绘制核密度图
fig, ax = plt.subplots(1, 2) 
fig.set_size_inches((18, 5))
sns.distplot(data[["Height"]], bins=50, ax=ax[0], color="g") sns.distplot(data["Weight"], bins=50, ax=ax[1])

结果如下:
在这里插入图片描述
结果分析:通过上图展示可以发现,足球运动员的身高和体重的分布近似呈现正态分布,这个也与显示情况相似,身高和体重处在两端的人数较少,处在均值附近的人数最多。当数据量足够大的时候,根据中心极限定理可以知道,数据集的结果几乎呈现一个正态分布。

7、左撇子适合踢足球吗?
1)数量上对比
number = data["Preferred Foot"].value_counts() 
display(number)

sns.countplot(x="Preferred Foot", data=data)

结果如下:
在这里插入图片描述
结果分析:Preferred Foot这个字段指的是足球运动员的惯用脚,通过上图展示的左脚和右脚的数量上的对比分析可以发现,左脚人数明显多于右脚的人数。

2)能力上对比
data.groupby("Preferred Foot")["Overall"].mean()
sns.barplot(x="Preferred Foot", y="Overall", data=data)

结果如下:
在这里插入图片描述
结果分析:Overall这个字段指的是足球运动员的综合能力评分,这里我们将子球运动员的惯用脚进行分组后,求出足球运动员的综合能力评分,可以看出左脚和右脚的综合能力得分,没有太大区别。

3)位置上对比

  由于在综合能力上体现不明显,我们现在通过每个位置,进行更细致的分析。为了分析的客观性,我们只统计左脚与右脚都超过50人(含50人)的位置。

① 首先,计算哪些位置左右脚球员都达到了50人。

t = data.groupby(["Preferred Foot", "Position"]).size() 
t = t.unstack()
t[t < 50] = np.NaN t.dropna(axis=1, inplace=True) 
display(t)

结果如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
② 然后,我们根据之前计算的那些位置,对数据集进行过滤。

display(t.columns)
t2 = data[data["Position"].isin(t.columns)] 
plt.figure(figsize=(18, 10))
sns.barplot(x="Position", y="Overall", hue="Preferred Foot", hue_order=["Left", "Right"], data=t2)

结果如下:
在这里插入图片描述
结果分析:从上图中可以清晰地看出,左脚选手更适合RW(右边锋)的位置。而在其他位置上,左右脚的人数差别并没有显著性的差异。

8、哪个的俱乐部、国家拥有综合能力更好的球员(展示top10)。

  由于每个俱乐部、国家队足球年动员的人数不一,为了统计的客观性,只考虑人数达到一定规模的俱乐部、国家。

1)俱乐部
g = data.groupby("Club")
r = g["Overall"].agg(["mean", "count"]) 
r = r[r["count"] >= 20]
r = r.sort_values("mean", ascending=False).head(10) 
display(r)
r.plot(kind="bar")

结果如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2)国家队
g = data.groupby("Nationality")
r = g["Overall"].agg(["mean", "count"])
r = r[r["count"] >= 50]
r = r.sort_values("mean", ascending=False).head(10) 
display(r)
r.plot(kind="bar")

结果如下:
在这里插入图片描述

9、哪些俱乐部拥有效力更久的球员(5年及以上)?
t = pd.to_datetime(data["Joined"]) 
t = t.astype(np.str)
join_year = t.apply(lambda item: int(item.split("-")[0])) 
over_five_year = (2018 - join_year) >= 5
t2 = data[over_five_year]
t2 = t2["Club"].value_counts()
display(t2) 
t2.iloc[:15].plot(kind="bar")

结果如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

10、足球运动员是否是出生日期相关?

  我们现有的数据集中,不含有具体的出生日期,因此,我们使用另外一个数据集,该数据集包含2018年世界杯所有球员。

代码如下:

data2 = pd.read_csv("G:\\2大数据学习\\wc2018-players.csv",engine="python",encoding="utf-8-sig") 
data2.head()
t = data2["Birth Date"].str.split(".", expand=True)
t[0].value_counts().plot(kind="bar")
t[1].value_counts().plot(kind="bar")
t[2].value_counts().plot(kind="bar")

结果如下:
在这里插入图片描述
结论如下:对于球员与出生日期这张图,并看不出一定的规律性,由于样本量并不够大,不同日期的球员数量差别10个左右,并不能说明什么问题。对于球员与出生月份这张图,可以看出年初出生的运动员比年尾出生的运动员多,由于年初出生的运动员和年尾出生的运动员,都是同一年的,但是年初出生的运动员比年尾出生的运动员,要多学习了那么几个月,因此能力稍微更强、更有一些经验,因此在同龄人选拔的时候,会更有优势一些(这个是概率问题,并不是说年尾出生的运动员优秀的不多)。对于球员与出生年份这张图,可以看出本阶段球员中1992年出生的球员最多,1999出生的球员最少。

足球运动员与出生日期是有关的,在年初出生的运动员要明显多于在年末出生的运动员。

11、足球运动员号码是否与位置相关?
g = data.groupby(["Jersey Number", "Position"]) 
t = g.size()
#display(t)
t = t[t >= 100]
t.plot(kind="bar")

结果如下:
在这里插入图片描述
结论如下:球员的号码与位置是相关的,例如,1号通常都是守门员,9号通常是中锋等,这个在图中有着很好的体现。

12、身价与薪水,违约金是否相关?

  因为身价与违约金的单位既有M,也有K,为了便于分析,我们统一使用K作为单位,同时,将类型转换为数值类型,便于统计。

def to_numeric(item):
	item = item.replace("€", "") 
	value = float(item[:-1])
	if item[-1] == "M": 
		value *= 1000
	return value

data["Value"] = data["Value"].apply(to_numeric) 
data["Wage"] = data["Wage"].apply(to_numeric)
data["Release Clause"] = data["Release Clause"].apply(to_numeric) data.head()

sns.scatterplot(x="Value", y="Wage", data=data)
sns.scatterplot(x="Value", y="Release Clause", data=data)
sns.scatterplot(x="Value", y="Height", data=data)

结果如下:
在这里插入图片描述
结论如下:从上图可以看出,足球运动员的身价与薪水和违约金均存在一定的线性关系,但是身价和违约金的线性关系更强(具体是什么样的线性关系,就需要建模了)。因此可以得出足球运动员的身价与其薪水是紧密关联的,尤其是违约金,与身价的关联更大。最下面这张图是随意画的球员身价与升高的关系,可以看出球员身价与升高并没有什么关系。

13、哪些指标对综合评分的影响较大?
plt.figure(figsize=(25, 25))
sns.heatmap(data.corr(), annot=True, fmt=".2f", cmap=plt.cm.Greens)
plt.savefig("corr.png", dpi=100, bbox_inches="tight")

这张图就不展示结果了,由于图太大。

14、年龄与评分具有怎样的关系?
sns.scatterplot(x="Age", y="Overall", data=data)
data["Age"].corr(data["Overall"])
# 对一个数组进行切分,可以将连续值变成离散值。
# bins 指定区间数量(桶数)。bins如果为int类型,则进行等分。此处的区间边界与为前开后闭。
# pd.cut(t["Age"], bins=4)
# 如果需要进行区间的不等分,则可以将bins参数指定为数组类型。数组来指定区间的边界。
min_, max_ = data["Age"].min() - 0.5, data["Age"].max()
# pd.cut(t["Age"], bins=[min_, 20, 30, 40, max_])
# pd.cut  默认显示的内容为区间的范围,如果我们希望自定义内容(每个区间显示的内容),可以通过labels参数进行指定。
t = pd.cut(data["Age"], bins=[min_, 20, 30, 40, max_], labels=["弱冠之年", "而立之年","不惑之年","知天命"])
t = pd.concat((t, data["Overall"]), axis=1) 
g = t.groupby("Age") 
display(g["Overall"].mean())
sns.lineplot(y="Overall", marker=" ", ms=30, x="Age", data=t)

结果如下:
在这里插入图片描述
结论如下:运动员随着年龄的增长,球员得到更多的锻炼与经验,总体能力提升,综合能力评分因此也不断增长,但三十几岁之后,由于体力等其它因素的影响,综合能力评分呈现下降趋势。

Pandas实战足球运动员数据分析
风口IT猪的成长录
06-29 5199
足球运动员数据分析加载数据查看数据shapeheadtailinfo缺值处理notnullduplicated运动员身高和体重分布去掉 Height 和 Weight 数据的单位修改身高和体重的类型 object --int查看运动员 Height 数值分布查看运动员 Weight 数值分布统计运动员左脚和右脚使用比例相关性分析 加载数据 import numpy as np import pandas as pd import matplotlib.pyplot as plt #支持中文 #解决
数据分析案例-足球运动员分析
m0_64336780的博客
05-06 6031
目录 加载数据 查看数据 数据详细 ​缺值处理 异常值处理 重复值处理 运动员身高和体重分布 左脚右脚使用数量 俱乐部球员评分分析 足球运动员数是否与出生日期相关 身高与体重是否具有相关性 加载数据 #加载足球运动员数据 import numpy as np import pandas as pd import matplotlib.pyplot as plt #支持中文 #解决中文显示问题 plt.rcParams['font.sans-serif'] = ...
采用 Python 机器学习预测足球比赛结果
weixin_33895695的博客
05-08 4225
采用 Python 机器学习预测足球比赛结果 足球是世界上最火爆的运动之一,世界杯期间也往往是球迷们最亢奋的时刻。比赛狂欢季除了炸出了熬夜看球的铁杆粉丝,也让足球竞猜也成了大家茶余饭后最热衷的话题。甚至连原来不怎么看足球的人,也是暗中努力恶补了很多足球相关知识,想通过赛事竞猜先赚一个小目标。今天我们将介绍如何用机器学习来预测足球比赛结果! 本 Chat 采用 Python 编程语言,使用 人工智能...
关于运动员伤病预测数据集的探索
ZShiJ的博客
04-16 1762
为了帮助调整训练计划以降低受伤风险,我们可以基于现有的数据集来提供一些建议。监控训练强度:分析显示:训练强度与受伤可能性之间存在微弱的正相关关系。建议运动员和教练团队密切监控训练强度,避免过度训练。可以考虑使用心率监测器和其他可穿戴设备来跟踪训练强度,并据此调整训练计划。注意体重和身高:分析显示:体重和身高是预测受伤可能性的重要因素。运动员应该确保他们的体重和身高比例适当,避免过重或过高的体重增加受伤风险。考虑年龄因素:分析显示:随着年龄的增长,运动员的身体恢复能力和适应性可能会下降。
足球运动员分析
qq_28069577的博客
06-14 1429
数据集 数据集 背景: 我们关注足球运动员的如下内容: 足球运动员是否受出生日期的影响? 左撇子适合踢足球吗? 足球运动员的号码是否与位置有关? 足球运动员的年龄与能力具有怎样的关联? 哪些技能会对足球运动员的综合能力造成较大的影响? 任务说明: 这是2019年现役运动员的数据集,我们希望通过该数据集,针对众多的足球运动员进行分析与统计,从而能够发现一些关于足球运动员的特...
【案例】足球运动员分析
weixin_42375099的博客
08-05 895
文章目录足球运动员分析案例需求数据集程序实现导入相关库加载相关数据集数据探索与清洗身高与体重处理运动员身高,体重,评分信息分布左脚与右脚选手在数量上是否存在偏差从球员平均分角度,拥有top10评分能力俱乐部/国家哪个俱乐部更有能力留住球员(5年及以上)足球运动员是否与出生日期相关身高与体重是否具有相关性哪些指标对评分影响最大年龄和评分具有怎样的关系 足球运动员分析案例 需求 从众多的足球运动员中,...
6-2. 实战项目:足球运动员分析
Sevieryang/FinTech/Statistics/Quant
02-19 2707
足球运动员分析 背景信息 当前,足球运动是最受欢迎的运动之一(也可以说没有之一)。 任务说明 我们的任务,就是在众多的足球运动员中,发现统计一些关于足球运动员的共性,或某些潜在的规律。 数据集描述 数据集包含的是2017年所有活跃的足球运动员。 Name 姓名 Nationality 国籍 National_Position 国家队位置 National_Kit 国家队号码 Club 所在俱乐部...
基于python足球运动员数据分析源码+数据集.zip
05-08
课程大作业基于python足球运动员数据分析源码+数据集.zip课程大作业基于python足球运动员数据分析源码+数据集.zip课程大作业基于python足球运动员数据分析源码+数据集.zip课程大作业基于python足球运动员...
基于python运动员数据分析源码.zip
最新发布
05-31
基于python运动员数据分析源码.zip基于python运动员数据分析源码.zip基于python运动员数据分析源码.zip基于python运动员数据分析源码.zip基于python运动员数据分析源码.zip基于python运动员数据分析源码...
课程大作业基于python足球运动员数据分析源码+数据集.zip
08-21
课程大作业基于python足球运动员数据分析源码+数据集.zip课程大作业基于python足球运动员数据分析源码+数据集.zip课程大作业基于python足球运动员数据分析源码+数据集.zip课程大作业基于python足球运动员...
Python数据分析实战源代码
05-15
资源合计6大章节。...资源包含了数据准备、数据处理、数据的可视化,包括爬虫(网页数据抓取)、MySQL的连接、以及数据分析项目,具备完整的一个数据分析的流程,其中每一个章节都是独立的一个模块。
数据分析-运动员数据
04-18
本数据主要是数据分析课程涉及 的数据,在本人博客中也会随时更新相应代码,一起来学习数据分析
奥运会历史上获奖运动员数据
01-08
1896到2016年奥运会获奖运动员数据,271116条数据。年龄,性别,身高,体重,所属国家队,国家,年份,赛季,奥运会举办城市,体育类型,赛项,奖牌类型
FootballData, 一种JSON和CSV足球/足球数据.zip
09-18
FootballData, 一种JSON和CSV足球/足球数据 为每个人提供足球( 足球赛) 数据足球/足球数据供任何人使用。 我在这里保存它们,或者生成文件。 数据主要是csv格式和json格式。请参见足球/足球数据和api的指南,以获得更完整的足球数据清单。的文件和数据集将移动,模式将更改。
课程大作业基于python足球运动员数据分析源码+数据集(高分项目).zip
11-03
课程大作业基于python足球运动员数据分析源码+数据集.zip课程大作业基于python足球运动员数据分析源码+数据集.zip课程大作业基于python足球运动员数据分析源码+数据集.zip课程大作业基于python足球运动员...
day8 足球运动员分析
Hubert的博客
08-09 577
足球运动员分析 背景信息 当前,足球运动是最受欢迎的运动之一(也可以说没有之一)。 任务说明 我们的任务,就是在众多的足球运动员中,发现统计一些关于足球运动员的共性,或某些潜在的规律。 数据集描述 数据集包含的是2017年所有活跃的足球运动员。 Name 姓名 Nationality 国籍 National_Position 国家队位置 National_Kit 国家队号码 Club 所在俱乐部 Club_Position 所在俱乐部位置 Club_Kit 俱乐部号码 Club_Joining 加入俱乐部
案例——中国篮球运动员的基本信息分析
weixin_54230314的博客
09-12 3989
中国篮球运动员的基本信息分析
python乒乓球比赛规则_使用Python进行体育竞技分析(预测球队成绩)
weixin_39723678的博客
11-27 1042
今天我们用python进行体育竞技分析,预测球队成绩一. 体育竞技分析的IPO模式 :输入I(input):两个球员的能力值,模拟比赛的次数(其中,运动员的能力值,可以通过发球方赢得本回合的概率来表示,一个能力值为0.8的球员,在他发球时,有80%的可能性赢得1分)处理P(process):模拟比赛过程输出O(output):两个球员获胜的概率该体育竞技程序,我们采用自顶向下的设计方法。自顶向下的...
欧洲杯案例(数据过滤和排序)
zhangting_123abc的博客
02-17 615
1
python足球运动员
12-24
根据提供的引用内容,Python可以用于对足球运动员的信息进行分析和统计。可以关注的一些内容包括足球运动员是否受出生日期的影响、左撇子是否适合踢足球足球运动员的号码是否与位置相关以及足球运动员的年龄与能力之间的关联。 在Python中,可以使用各种数据分析和统计库来处理足球运动员的数据集。例如,可以使用pandas库来读取和处理数据,使用matplotlib库来绘制图表,使用scikit-learn库来进行机器学习和数据挖掘等。 以下是一个示例,展示如何使用Python进行足球运动员数据的分析和统计: ```python import pandas as pd import matplotlib.pyplot as plt # 读取足球运动员数据集 data = pd.read_csv('football_players.csv') # 分析足球运动员的出生日期与能力之间的关系 plt.scatter(data['birth_date'], data['ability']) plt.xlabel('Birth Date') plt.ylabel('Ability') plt.title('Relationship between Birth Date and Ability') plt.show() # 统计左撇子和右撇子足球运动员的数量 left_footed = data[data['handedness'] == 'left'] right_footed = data[data['handedness'] == 'right'] left_count = len(left_footed) right_count = len(right_footed) print('Number of left-footed players:', left_count) print('Number of right-footed players:', right_count) # 分析足球运动员的号码与位置之间的关系 position_counts = data.groupby('position')['number'].value_counts() print('Position and Number Counts:') print(position_counts) # 分析足球运动员的年龄与能力之间的关联 age_ability_corr = data['age'].corr(data['ability']) print('Correlation between Age and Ability:', age_ability_corr) ``` 请注意,上述示例仅为演示目的,并假设存在名为"football_players.csv"的足球运动员数据集。实际情况中,您需要根据您的数据集和具体需求进行相应的代码编和数据处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • python自动化办公——python操作Excel、Word、PDF集合大全 121687
  • EDG夺冠,用Python分析一波:粉丝都炸锅了 61627
  • python中的时间处理模块(二):datetime模块之timedelta类详解 60204
  • Python模块——os模块详解 48070
  • 总结了这67个pandas函数,完美解决数据处理,拿来即用! 46932

分类专栏

  • python数据分析实战 40篇
  • python 87篇
  • mysql 46篇
  • pandas 34篇
  • matplotlib 8篇
  • excel 17篇
  • 杂谈 1篇
  • 学些分享系列 6篇
  • Linux 7篇
  • numpy 9篇
  • 对比系列文章 1篇
  • Python基础系列N讲 1篇
  • pyecharts 4篇
  • 文本分类 3篇
  • 统计学知识 5篇
  • 可视化操作tableau和finereport 7篇
  • plotly 1篇
  • seaborn 1篇
  • 机器学习 2篇
  • 情感分析 1篇
  • etl 13篇
  • oracle 18篇
  • 大数据 4篇

最新评论

  • 这136页PDF章章经典,没有学不会的“EXCEL数据透视表”!

    hailiantianlan: 你好,我在公众号里得到pdf了,请问可以找到案例的excel数据吗?

  • 与Apollo共创生态:七周年大会深有体会!

    想做钝感超人: 作者大大看看我的私信~拜托啦

  • python爬取招聘网站数据,利用tableau可视化交互大屏,指导你如何学习、找工作!

    想做钝感超人: 您好可以分享一下源代码吗,我的报错了非常感谢!

  • python爬取招聘网站数据,利用tableau可视化交互大屏,指导你如何学习、找工作!

    想做钝感超人: 您好,请问你有源代码了吗,可以分享一下嘛,非常感谢!

  • python爬取招聘网站数据,利用tableau可视化交互大屏,指导你如何学习、找工作!

    想做钝感超人: 请问你有源代码了吗,可以分享一下吗,谢谢!

大家在看

  • 杂项——编码器控制小车走固定距离(stm32) 663
  • 关于数据备份
  • 数据库设计最佳实践:规范化与反规范化在MySQL中的应用
  • 随机生成验证码的工具类 391
  • 一千题,No.0064(螺旋矩阵)

最新文章

  • 与Apollo共创生态:七周年大会深有体会!
  • 4个原创技术文档,从Excel到MySQL到Python
  • 在CSDN的几年,我的Python书籍,第三次重印了!
2024年2篇
2023年3篇
2022年9篇
2021年64篇
2020年194篇
2019年34篇

目录

目录

评论 25
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数据分析与统计学之美

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或 充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

哆哆女性网剑网三遗失的美好乡野风月王氏免费起名东北灵异录出生时辰起名抹不去的记忆工程机械有限有限公司起名怎么给王姓孩子起名秦薇浅封九辞全文免费阅读按树起名字冠日昭昭牵牛星火中金莲无弹窗十四画属火的起名吉利字荆棘婉君电视剧物业公司起名大全投融长富使命召唤15www.249dd.com店起名美甲怎么给童装店起名给纸箱厂起名字6月5日属猴的怎麽样起名适合传媒企业起名贵阳市教育局九周半重庆起名朱姓女孩起名洋气淀粉肠小王子日销售额涨超10倍罗斯否认插足凯特王妃婚姻不负春光新的一天从800个哈欠开始有个姐真把千机伞做出来了国产伟哥去年销售近13亿充个话费竟沦为间接洗钱工具重庆警方辟谣“男子杀人焚尸”男子给前妻转账 现任妻子起诉要回春分繁花正当时呼北高速交通事故已致14人死亡杨洋拄拐现身医院月嫂回应掌掴婴儿是在赶虫子男孩疑遭霸凌 家长讨说法被踢出群因自嘲式简历走红的教授更新简介网友建议重庆地铁不准乘客携带菜筐清明节放假3天调休1天郑州一火锅店爆改成麻辣烫店19岁小伙救下5人后溺亡 多方发声两大学生合买彩票中奖一人不认账张家界的山上“长”满了韩国人?单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#青海通报栏杆断裂小学生跌落住进ICU代拍被何赛飞拿着魔杖追着打315晚会后胖东来又人满为患了当地回应沈阳致3死车祸车主疑毒驾武汉大学樱花即将进入盛花期张立群任西安交通大学校长为江西彩礼“减负”的“试婚人”网友洛杉矶偶遇贾玲倪萍分享减重40斤方法男孩8年未见母亲被告知被遗忘小米汽车超级工厂正式揭幕周杰伦一审败诉网易特朗普谈“凯特王妃P图照”考生莫言也上北大硕士复试名单了妈妈回应孩子在校撞护栏坠楼恒大被罚41.75亿到底怎么缴男子持台球杆殴打2名女店员被抓校方回应护栏损坏小学生课间坠楼外国人感慨凌晨的中国很安全火箭最近9战8胜1负王树国3次鞠躬告别西交大师生房客欠租失踪 房东直发愁萧美琴窜访捷克 外交部回应山西省委原副书记商黎光被逮捕阿根廷将发行1万与2万面值的纸币英国王室又一合照被质疑P图男子被猫抓伤后确诊“猫抓病”

哆哆女性网 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化