6-2. 实战项目:足球运动员分析

足球运动员分析

1. 项目背景

当前,足球运动是最受欢迎的运动之一(也可以说没有之一)。

我们的任务,就是在众多的足球运动员中,发现统计一些关于足球运动员的共性,或某些潜在的规律。也是好玩。

2. 数据集描述

数据集包含的是2017年所有活跃的足球运动员。

  • Name 姓名
  • Nationality 国籍
  • National_Position 国家队位置
  • National_Kit 国家队号码
  • Club 所在俱乐部
  • Club_Position 所在俱乐部位置
  • Club_Kit 俱乐部号码
  • Club_Joining 加入俱乐部时间
  • Contract_Expiry 合同到期时间
  • Rating 评分
  • Height 身高
  • Weight 体重
  • Preffered_Foot 擅长左(右)脚
  • Birth_Date 出生日期
  • Age 年龄
  • Preffered_Position 擅长位置
  • Work_Rate 工作效率
  • Weak_foot 非惯用脚使用频率
  • Skill_Moves 技术等级
  • Ball_Control 控球技术
  • Dribbling 盘球(带球)能力
  • Marking 盯人能力
  • Sliding_Tackle 铲球
  • Standing_Tackle 逼抢能力
  • Aggression 攻击能力
  • Reactions 反击
  • Attacking_Position 攻击性跑位
  • Interceptions 抢断
  • Vision 视野
  • Composure 镇静
  • Crossing 下底传中
  • Short_Pass 短传
  • Long_Pass 长传
  • Acceleration 加速度
  • Speed 速度
  • Stamina 体力
  • Strength 强壮
  • Balance 平衡
  • Agility 敏捷度
  • Jumping 跳跃
  • Heading 投球
  • Shot_Power 射门力量
  • Finishing 射门
  • Long_Shots 远射
  • Curve 弧线
  • Freekick_Accuracy 任意球精准度
  • Penalties 点球
  • Volleys 凌空能力
  • GK_Positioning 门将位置感
  • GK_Diving 扑救能力
  • GK_Kicking 门将踢球能力
  • GK_Handling 扑球脱手几率
  • GK_Reflexes 门将反应度

3. 程序实现

导入相关的库

导入需要的库,同时,进行一些初始化的设置。

import numpy as np
import pandas as pd
import matplotlib as mpl
import matplotlib.pyplot as plt# 支持中文
mpl.rcParams["font.family"] = "SimHei"
mpl.rcParams["axes.unicode_minus"] = False

3.1 加载相关的数据集

  • 加载相关的数据集(注意原数据集中是否存在标题),并查看数据的大致情况。
  • 可以使用head / tail,也可以使用sample。
  • 列没有显式完整,我们需要进行设置。(pd.set_option)
data = pd.read_csv("FullData.csv")
# data.head()
# data.tail()
# data.sample(5)
# 设置最大显示的列数。
pd.set_option("max_columns", 100)
data.head()

3.2 数据探索与清洗

缺失值处理

  • 通过info查看缺失值信息(以及每列的类型信息)。
  • 可以通过isnull, any, dropna,fillna等方法结合使用,对缺失值进行处理。
# data.info()
# 查看缺失值的记录
# data[data["Club_Position"].isnull()]
data = data[data["Club_Position"].notnull()]

异常值处理

  • 通过describe查看数值信息。
  • 可配合箱线图辅助。
# data.describe()
# data.plot(kind="box")
data["Age"].plot(kind="box")

重复值处理

  • 使用duplicate检查重复值。可配合keep参数进行调整。
  • 使用drop_duplicate删除重复值。
# data.drop_duplicates()
# data.duplicated().any()
np.sum(data.duplicated())

将身高与体重处理成数值类型,便于分析。

# data.head()
t = data.copy()
# 注意:Height本来是str类型,替换掉cm之后,还是str类型,我们需要显式转换为int类型。
# 这里除了使用apply之外,也可以使用map。
# t["Height"] = t["Height"].apply(lambda item: item.replace("cm", "")).astype(np.int32)
# t["Weight"] = t["Weight"].apply(lambda item: item.replace("kg", "")).astype(np.int32)# 我们也可以使用字符串的矢量化计算进行数据的转换。
# t["Height"] = t["Height"].str.replace("cm", "").astype(np.int32)
# t["Weight"] = t["Weight"].str.replace("kg", "").astype(np.int32)data["Height"] = data["Height"].str.replace("cm", "").astype(np.int32)
data["Weight"] = data["Weight"].str.replace("kg", "").astype(np.int32)

运动员的身高,体重,评分信息分布。

# 直方图,离散化的显示。
# data["Rating"].plot(kind="hist")
# 核密度图(概率密度)
data[["Height", "Weight", "Rating"]].plot(kind="kde")

左脚与右脚选手在数量上是否存在偏差?

# 第一种方式
# g = data.groupby("Preffered_Foot")
# g["Preffered_Foot"].count().plot(kind="bar")
# 第二种方式
# g = data.groupby("Preffered_Foot")
# g.size().plot(kind="bar")
# 第三种方式
data["Preffered_Foot"].value_counts().plot(kind="bar")

从球员平均评分上考虑,拥有top10评分能力的俱乐部 / 国家。【超过20人】

# 俱乐部的统计
# g = data.groupby("Club")
# g["Rating"].mean().sort_values(ascending=False)
# r = g["Rating"].agg(["mean", "count"])
# r = r[r["count"] >= 20]
# r.sort_values("mean", ascending=False).head(10).plot(kind="bar")# 国家队的统计
g = data.groupby("Nationality")
# g["Rating"].mean().sort_values(ascending=False)
r = g["Rating"].agg(["mean", "count"])
r = r[r["count"] >= 20]
r.sort_values("mean", ascending=False).head(10).plot(kind="bar")

哪个俱乐部拥有更多忠心的球员(5年及以上)?

data.sample()join_year = data["Club_Joining"].apply(lambda item: int(item.split("/")[-1]))
year = 2017 - join_year
# 选择(过滤)所有加入俱乐部时间大于等于5年的球员。
# 注意,同时需要过滤自由身的球员。(Free Agents)
t = data[(year >= 5) & (data["Club"] != "Free Agents")]
t["Club"].value_counts()

足球运动员是否是出生年月相关?

  1. 全体运动员
  2. 知名运动员(80分及以上)
# 全体运动员
# expand 参数: 可以将字符串矢量化计算,切分之后的结果进行展开,展开成DataFrame类型。(默认为list列表类型)
# t = data["Birth_Date"].str.split("/", expand=True)
# t[2].value_counts().plot(kind="bar")
# t[0].value_counts().plot(kind="bar")
# t[1].value_counts().plot(kind="bar")# 80分以上(知名运动员)
t = data[data["Rating"] >= 80]
t = t["Birth_Date"].str.split("/", expand=True)
t[0].value_counts().plot(kind="bar")

足球运动员号码是否与位置相关?

# 去掉替补球员与预备队球员。
t = data[(data["Club_Position"] != "Sub") & (data["Club_Position"] != "Res")]
g = t.groupby(["Club_Position", "Club_Kit"])
g.size().sort_values(ascending=False)

身高与体重是否具有相关性?

# data.plot(kind="scatter", x="Height", y="Weight")
# data.plot(kind="scatter", x="Height", y="Rating")
# data.plot(kind="scatter", x="Rating", y="Reactions")

哪些指标对评分的影响最大?

data.corr()

在这里插入图片描述

假设我们不清楚后2列的具体含义是什么,分析该标题可能的含义。

g = data.groupby("Club_Position")
g["GK_Handling"].mean().sort_values(ascending=False).plot(kind="bar")

在这里插入图片描述

年龄与评分具有怎样的关系?

data.plot(kind="scatter", x="Age", y="Rating")

在这里插入图片描述

t = data.copy()
# 对一个数组进行切分,可以将连续值变成离散值。
# bins 指定区间数量(桶数)。bins如果为int类型,则进行等分。
# 此处的区间边界与直方图略有不同。(前开后闭)
# pd.cut(t["Age"], bins=4)
# 如果需要进行区间的不等分,则可以将bins参数指定为数组类型。
# 数组来指定区间的边界。
min_, max_ = t["Age"].min() - 0.5, t["Age"].max()
# pd.cut(t["Age"], bins=[min_, 20, 30, 40, max_])
# pd.cut 默认显示的内容为区间的范围,如果我们希望自定义内容(每个区间显示的内容),可以通过labels参数
# 进行指定。
t["Age"] = pd.cut(t["Age"], bins=[min_, 20, 30, 40, max_], labels=["弱冠之年", "而立之年","不惑之年", "知天命"])
g = t.groupby("Age")
g["Rating"].mean().plot(kind="line", marker="o", xticks=[0, 1, 2, 3])

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/69958.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【案例】足球运动员分析

文章目录 足球运动员分析案例需求数据集程序实现1. 导入相关库2. 加载相关数据集3. 数据探索与清洗3.1. 缺失值处理3.2. 异常值处理处理3.3. 重复值处理 4. 身高与体重处理5. 运动员身高,体重,评分信息分布6. 左脚与右脚选手在数量上是否存在偏差7. 从球…

足球运动员分析

数据集 数据集 背景: 我们关注足球运动员的如下内容: 足球运动员是否受出生日期的影响?左撇子适合踢足球吗?足球运动员的号码是否与位置有关?足球运动员的年龄与能力具有怎样的关联? 哪些技能会对足球运…

解析波士顿动力Handle机器人背后的技术(附PPT+视频)

[转] http://www.leiphone.com/news/201703/URrR8CG2tmtghNDl.html 导语:Boston Dynamics 在机器人动力方面堪称翘楚,其由双足或多足机器人组成的机器人天团总是时不时能给我们带来惊喜。上周,Boston Dynamics 又发布了一段视频,并…

解析波士顿Handle机器人背后的技术

在斗鱼直播平台,浙大李超博士的公开课分享了关于handle的技术细节,解析波士顿Handle机器人背后的技术,观察敏锐,思路清晰。 内容介绍了波士顿动力公司的历代4足和2足机器人的开发历史。并结合李超的专业重点讲解了腿的细节。 李…

开源四足机器人 附设计图及代码

斯坦福学生机器人俱乐部(Stanford Student Robotics club)Extreme Mobility 团队最近迎来了一名新成员——一个名为 Stanford Doggo 的四足机器人。这个机器人能跳 1 米多高,还能表演后空翻。与其他四足机器人动辄上万美元的成本不同&#xf…

ROS2机器人笔记21-03-14

ROS会议和活动: 如果对机器人技术感兴趣,但是看不到任何适合兴趣的项目,那么可能还需要考虑将其应用于同级组织中,例如OpenCV和MoveIt! 核心是各种应用和ROS2的逐渐普及 GPU运算越来越主流,Nvidia Jetson…

波斯顿动力机器人“特效专辑”

关注星标公众号,不错过精彩内容 作者 | strongerHuang 公众号 | strongerHuang 波斯顿动力机器人的视频为啥那么火? 首先,他们机器人本身很牛逼,能完成各种高难度动作,拍出来的视频自然很多人关注。 其次,有…

清华2019最新AI发展报告出炉!400页干货,13大领域一文看懂

2019-12-08 20:36:36 当前,人工智能正处在爆发期。我国在人工智能领域的科学技术研究和产业发展起步稍晚,但在最近十余年的时间里抓住了机遇,进入了快速发展阶段。在这个过程中, 技术突破和创造性高端人才对人工智能的发展起着至…

ROS机器人培训基地和暑期学校证书样例

初级工程师证书(非高清): 初级师资证书(非高清): 为了鼓励学生朋友参与ROS机器人暑期学校,我也参加了并完成了所有任务,证书样本: 2021年(非高清&#xff09…

专业的机器人资讯与太空中的ROS

参考:www.therobotreport.com Open Robotics正在与由 Jeff Bezos 创立的亚轨道航天公司Blue Origin和 NASA 合作开发 Space ROS。Space ROS 是 ROS 2 的一个版本,旨在满足航空航天软件在用于任务之前必须满足的验证和确认要求。 机器人操作系统 (ROS) 已…

机器人介绍、应用、前景

机器人介绍、应用、前景 1 介绍1.1 定义1.2 作用1.3 发展历程1.4 分类1.5 三大顾虑1.6 前景 2 种类工业机器臂协作机械臂工业移动机器人复合机器人扫地机器人服务机器人机器狗人形机器人无人机 3 技术3.1 机器人学分类3.2 功能分类3.2.1 感知3.2.2 决策3.2.3 执行AGV减震机构减…

波士顿动力机器人解锁跑酷新技能,凭借感知驱动技术适应技能

编译 | 禾木木 出品 | AI科技大本营(ID:rgznai100) 波士顿动力开发负责人为大家解读了 Atlas 能够快速越过具有一定倾斜度的障碍物、执行快速转身、跳跃等动作背后的技术。 Atlas 机器人首次完成了复杂的障碍赛。 复杂的障碍赛在波士顿动力公司总部二楼…

算法高级(46)-波士顿动力机器人ATLAS

一、引言 如果说阿尔法狗是对人类智力的碾压,那么,波士顿动力研发的机器人,正在挑战的是仿生学。 波士顿动力公司(Boston Dynamics)一致在专注于机器人的研发,每一次波士顿动力放出视频都会引起网友的围观…

自研机器人控制系统,挑战波士顿动力机器人

自研机器人协调控制系统,挑战部分波士顿动力实验效果 一.系统简介功能使用实验 二.详细实验解读波士顿动力近似试验1:空间定点自定义试验1:太极云手自定义试验2:醉鬼自定义试验3:边转边走自定义试验4:平移自…

客户案例|保险行业借助智能外呼充分结合业务需求和实际应用场景快速筛选客户

保险行业整体仍然延续稳步发展势头,保险产品结构不断优化;人身险行业原保费收入增速有所放缓;受宏观经济不断恢复企稳及非车险政策支持推动影响下,财产险行业保费收入增速有所加快;人身险及财产险公司健康险类产品均呈…

二次元界福音:MakeGirlsMoe创建动漫人物

开源的动漫角色图片生成工具,支持:选择发色、发型、眼睛、皮肤、微笑、风格等等特征生成二次元图片。可自定义生成可爱的二次元头像,二次元界福音。 GitHub网址:https://github.com/makegirlsmoe/makegirlsmoe_web 在线体验&…

3行代码 为你的网站博客添加萌萌哒可爱二次元女动漫玩偶人物(看板娘)

看板娘一词源自日语“看板娘(かんばんむすめ)”。其中的“看板”指的是店面招牌,或者是为了宣传、打广告而制作的宣传牌。“看板娘”也就是店面的招牌姑娘,亦即能够提升店面人气和顾客流量的女服务生、女店员等。也就是说,看板娘本身就是一块…

AI绘图打开二次元世界

一个AI绘图插件,免部署,直接导入可用 支持英文tag,支持中文不稳定测试中(中文需要描述准确不然可能翻译错误,比如死库水会被翻译成Die reservoir water,很明显这个翻译和原词出入很大,用泳装会比较准确&…

acg-faka--功能丰富的发卡二次元商城源码

源码简介: 支付系统,拥有强悍的插件扩展能力,现目今已经支持全网任意平台,任意支付渠道。云更新,如果系统升级新版本,你无需进行繁琐操作,只需要在你的店铺后台就可以无缝完成升级。商品销售&am…

一招生成定制版二次元人脸头像,还能“模仿”你的表情!

作者 | Pramook Khungurn 整理 | Jane、刘畅 出品 | AI科技大本营 最近,日本一位酷爱 Vtubers的粉丝结合了此前发表的多项 GAN 工作制作了两个动漫人物生成器的工具,这两个工具一个可以帮助广大动漫迷们快速、轻松的生成带有不同姿态的动漫人物形象&…