足球运动员分析
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")