一:分析背景与目的

  1. 背景
    手头拿到一份FIFA-2018 player的数据,获得途径可以是:官方网站下载、相关数据网站下载、爬虫获得等等

  2. 分析目的
    对整体情况进行了解,用数据给球员做出规划参考,让球迷看到不一样的FIFA。(可能并不专业)

二:数据采集和处理

1、数据概况
describe一下数据源,可看到共计有17994条数据,6个描述列。
可以重点关注一下平均值,最大最小值。看看是否有需要清洗的数据。

# 导入模块
import pandas as pd
import numpy as py
import matplotlib.pyplot as plt
#导入数据
df = pd.read_csv('./FIFA_2018_player.csv')
#查看前5条数据
df.head()
#查看数据总体情况
df.describe()


对整体有了大体了解后,可以开始着手数据清洗,主要考虑清洗null值、重复值、异常值等。

#清洗数据
#先看看有没有null值
df[df.name.isnull()]
df[df.age.isnull()]
df[df.height_cm.isnull()]
df[df.weight_kg.isnull()]
df[df.eur_value .isnull()]
df[df.eur_wage.isnull()]
#league 联赛是否有null值 对null怎么处理?对数据影响不大,可以删除
df[df.league.isnull()]
#删除null的index
df.drop(df[df.league.isnull()].index,inplace=True)
#看一下有没有重复值 可以是某列,某几列,全部
df[df.duplicated()]
#多列重复的
df[df[['full_name','club','birth_date']].duplicated()]
#看一下重复值,看看是否要删除 此案例中虽然有2个重复的,但是对整体影响不大,暂不处理也行
df[df['name']=='A. Miranchuk']#decribe的时候发现部分eur_value列、eur_wage列的最小值为0,那就需要看看有多少条,怎么处置
df[df['eur_value']<1000]
#合计有259条,我们可以考虑用平均值填充(删除可能影响其他列)
df['eur_value'].replace(0,df['eur_value'].mean(),inplace=True)
df['eur_wage'].replace(0,df['eur_wage'].mean(),inplace=True)
#可以describe一下 看是否替换成功
df.describe()

数据清洗完毕,
开始着手分析数据。

三:数据分析与可视化

下面,将从一下几个维度进行分析,实现均在python中,因仅供分析,未对图表做美化。

  1. 各个国家运动员数量
  2. 各大联赛运动员数量
  3. 各俱乐部平均周薪
  4. 英超联赛English Premier League各个俱乐部球员的平均月薪
  5. 球员年龄段分布

主要结论:
1、在国家维度方面,可以看出大家严重的足球运动强国,在足球运动员数量上占据绝对优势。例如:

England  1631
Germany 1147
Spain   1020

通过查看Top20的国家,我们对世界足球强国有了一定的了解。
2、分析联赛,可以分析出不同联赛的实力。
3、对薪水方面的分析,可以对球员的职业生涯规划做出参考意见。
4、对年龄进行分层分析,不难得出,年龄对运动员来说至关重要,需要在最好的年纪踢出最好的成绩。
以下为代码和图表板块

#对整体进行了解
df.count()
#开始分析
#了解整体
df.count()
# 1. 各个国家运动员数量
nationality_group = df.groupby('nationality',as_index=False)['name'].count()
#重命名列
nationality_group.rename(columns={'name':'player_count'}, inplace=True)
#进行排序
nationality_sort_data = nationality_group.sort_values('player_count',ascending=False)
#查看大于500的国家列表
nationality_500_data=nationality_sort_data[nationality_sort_data['player_count']>500]
#查看球员数量排名前20的国家
nationality_top20_data = nationality_sort_data[:20].reset_index(drop=True)
nationality_top20_data
#开始绘图
# 绘制步骤:
import matplotlib.pyplot as plt
#解决中文乱码问题
plt.rcParams['font.sans-serif']='Simhei'plt.figure(figsize=(20,8),dpi=80) #设置画布大小
x = nationality_top20_data['nationality']
y = nationality_top20_data['player_count']plt.bar(x,y,label='player_count',color="orange") #传入x,y 绘制图形
plt.title('TOP20球员国家')  #标题
plt.legend(loc='upper right',ncol=2)  #显示位置,显示列数
#设置x,y轴的刻度标签
plt.xticks(x,x,rotation=35)
#设置网格线
plt.grid(linestyle="--",alpha=0.4)
#设置图例
#设置数据标签
for x,y in zip(x,y):plt.text(x, y+0.3, '%.0f'%y, ha='center', va='bottom', fontsize=10.5)
plt.show() # 线上展示


# 各大联赛运动员数量 分组——重命名-排序
league_group_data = df.groupby('league',as_index=False).count()[['league','name']]
league_group_data.rename(columns={'name':'player_count'}, inplace=True)
league_group_sortdata = league_group_data.sort_values('player_count',ascending=False)
league_group_sortdata

#  3. 各俱乐部平均周薪
club_eur_value= df.groupby('club',as_index=False)['eur_value'].mean()
club_eur_value.sort_values('eur_value',ascending=False).reset_index(drop=True)

#  4. 英超联赛English Premier League各个俱乐部球员的平均月薪
df[df.league == 'English Premier League'].groupby('club',as_index=False).mean()[['club', 'eur_wage']].sort_values('eur_wage',ascending=False)

#  5. 球员年龄段分布 对于连续性的指标  我们可以采取分桶去cut  看一下各个区间分布状况
df.describe() #得到年龄最小16 最大47岁
#分桶
import numpy as np
bins = np.arange(15,55,5)
age_bins = pd.cut(df['age'],bins)
bin_counts = df['age'].groupby(age_bins).count()
#为了图表好看处理index
bin_counts.index = [ str(x.left) +"~" + str(x.right) for x in bin_counts.index]
bin_counts
#作图
plt.figure(figsize=(15,5),dpi=80)
bin_counts.plot(kind='barh')
#可见年龄分布还是集中在20-35之间居多



说在最后的话:这篇分析有很多不足之处,分析不够透彻。主要原因还是因为我太门外汉了,只能从一个分析师角度发表看法,之后会找一下我熟悉领域的案例。

数据分析项目-FIFA-2018 player相关推荐

  1. 数据分析项目精讲!电商平台人、货、场分析实战,附数据源

    最近刚给帆软的可视化冬季挑战赛当完评委,发现了一批非常好的数据分析项目案例,经过官方授权后,分享给大家. 今天为大家分享的项目作品是来自于参赛用户枫城的作品,主题是基于人.货.场的电商平台数据分析,分 ...

  2. Kaggle经典数据分析项目:泰坦尼克号生存预测!

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:陈锴,中山大学,Datawhale成员 最近有很多读者留言,希望能 ...

  3. python数据挖掘电影评分分析_Pyhon数据分析项目——男女电影评分差异比较

    <用 Python 玩转数据>数据分析项目 一.程序功能 基于 MovieLens 100k 数据集中男性女性对电影的评分来判断男性还是女性电影 评分的差异性更大. 二.数据来源 数据集下 ...

  4. python共享单车案例分析_python分析数据分析项目:共享单车租用情况影响因素探索分析...

    python分析数据分析项目:共享单车租用情况影响因素探索分析

  5. 大数据分析项目成功的五项基本原则

    转载自:http://www.itongji.cn/article/060521H2013.html 大数据市场目前的焦点问题是:从社交网络.APP和市场调查等多种数据源收集海量数据容易,但真正产生商 ...

  6. 数据挖掘与数据分析项目链家租房数据(一)数据爬虫

    数据挖掘与数据分析项目链家租房数据(一)数据爬虫 今日无聊将一个过去做的链家数据分析项目弄上来,当时是某面试,三天时间完成,主要是供大家抄代码和分享一下思考点,这一章是爬虫部分. 网站原图 结果截图 ...

  7. 5.Python数据分析项目之文本分类-自然语言处理

    1.总结 预测类数据分析项目 流程 具体操作 基本查看 查看缺失值(可以用直接查看方式isnull.图像查看方式查看缺失值missingno).查看数值类型特征与非数值类型特征.一次性绘制所有特征的分 ...

  8. 如何做一个优秀的数据分析项目?

    上一篇我们普及了[数据分析项目,是什么?为什么我没做过?].今天我们系统讲解一下:如何做一个优秀的数据分析项目.首先大家要明白,并不是所有的项目,都需要找一个万人大会堂,拉着横幅,董事长总经理轮流上台 ...

  9. 数据分析项目-合集-day02

    数据分析项目-合集-day02 需求: - 导入文件,查看原始数据 - 将人口数据和各州的简称数据进行合并 - 将合并的数据中重复的abbreviation进行删除 - 查看存在缺失数据的列 - 找到 ...

  10. 如何通过网络数据的获取,做出这些数据分析项目?

    作者 | AlfredWu 来源 | Alfred数据室 最近有很多人在问,我是如何收集网络的数据,如何进行数据处理.数据分析以及可视化呈现的. 也有人问的更具体,关于Python数据分析的一些问题. ...

最新文章

  1. 【Codeforces】1093C Mishka and the Last Exam
  2. 手动编译 lombok_Lombok,一种编译时Java注释预处理器,可最大程度地减少代码大小...
  3. python中导入模块队列_【每日学习】Python中模块的导入
  4. 【英语学习】【English L06】U05 Appointments L2 I'd like to make an airport shuttle service reservation
  5. php flush 逐行显示_PHP逐行输出(ob_flush与flush的组合)
  6. 算法导论(第三版)第一章习题答案
  7. 一个计算机软件学生的求职简历,计算机学生求职的个人简历模板
  8. 计算机信息安全专业代码0839,(0839)网络空间安全一级学科硕士研究生培养方案...
  9. 淘宝、百度、腾讯、京东 那不得不说的四角恋故事
  10. C/C++源代码如何变成可执行程序的?
  11. 关于微信公众号开发【微信JS-SDK】报错:config invalid url domian
  12. ndis协议驱动开发
  13. Springboot中cache的使用
  14. 使用 Hugo 和阿里云ECS搭建个人站
  15. MapReduce(深入)---案例之用户上行流量 下行流量 总流量倒序 按省份分区
  16. win10 docker 容器修改端口映射
  17. Linux下安装免费杀毒软件---ClamAV
  18. 数字音频总线A2B开发详解二(A2B-主和从的配置和编程详解)
  19. 光脚丫学LINQ(017):跨关系查询(C#):手动编码
  20. Java NIO编程

热门文章

  1. 无法启动此程序,因为计算机丢失MSVCP110.dll,怎么解决
  2. 计算机毕业设计ssm农商行贷款管理系统f1gnk系统+程序+源码+lw+远程部署
  3. 波斯猫新品上市宣传怎么做?如何利用软文营销做好新品宣传
  4. 计算机仿真作业题目,计算机仿真技术作业一
  5. Linux socketpair详解
  6. 大学计算机公共课容易挂科吗,大学最容易“挂科”的4个课程,考试难度让人崩溃,很多人要重修...
  7. 连锁会员管理系统是选CS还是BS模式
  8. 高速串口通信稳定_长虹配套珠峰5G通信装备,保障直播信号稳定高速传输
  9. rhythmbox添加网络电台
  10. VGA、DVI、HDMI等常见视频接口介绍