知行编程网知行编程网  2022-03-08 10:00 知行编程网 隐藏边栏 |   抢沙发  47 
文章评分 0 次,平均分 0.0

这是菜鸟学Python的粉丝第7篇原创投稿

阅读本文大概需要3分钟


本篇作者:小郑同学+菜鸟学Python


    我之前写了一篇关于科比生涯的数据分析(厉害了!20年【科比NBA】生涯|数据分析),这次打算写一篇关于常规赛MVP球员的数据分析,探讨要想成为MVP应该要做到怎样的高度。MVP,即“最有价值球员”,每赛季结束将会票选得出一人成为MVP。这次的数据用了近38年的MVP球员的数据,即1979-80开始,不再往前是因为那时没有3分的统计,不太贴近现在的篮球比赛了,所以就舍弃了



使用工具:Ipython notebook/Anacoda-Spyder

使用的库:Pandas,Matplotlib,Seaborn

Python版本:Py3.6


1

数据来源

1).本次用到的数据

来源于https://www.basketball-reference.com/awards/mvp.html,其中可以选择多种形式,我选的是CSV格式,方便后面的数据分析,(文末会分享CSV文件和源码给大家)

38年来,NBA最有价值球员|数据分析

一共是38年的数据,我为了截图效果,隐藏了一部分数据


2).主要术语解释

可能有一些非篮球迷看不太懂上面的缩写,下面介绍一下

Player:球员姓名

Age:年龄

Tm:所在球队

G:  上场次数

MP:场均上场时间

PTS:场均得分

TRB:场均篮板

AST:场均助攻

STL:场均抢断

BLK:场均盖帽

FG%:命中率(不包含罚球)

3P%:3分球命中率

FT%:罚球命中率

WS:  胜利贡献值



2

数据分析

1).读取数据

新建一个MVP.py文件,把MVP.py和NBA_mvp.csv文件放在一个目录下

38年来,NBA最有价值球员|数据分析


看一下数据的基本情况:列出了13个维度的一些基本信息

比如年龄维度的基本资料:

统计总数38年,平均年龄28岁,最小是22岁,最大35岁

38年来,NBA最有价值球员|数据分析


嗯,NBA最佳球员平均28岁左右,这应该是每个人体力的鼎盛时期,但我更关心的是“大龄”MVP,看看最老的MVP是谁,又是几岁获得的呢?



2).看看谁是年纪最大的MVP是谁

print (data['Age'].max())

>>35

既然我们已经知道age里面最大的是35岁,我们只需要找到年纪35岁对于的人名

print(data[data.Age==data.Age.max()])

>>

38年来,NBA最有价值球员|数据分析

发现年纪最大的是卡尔-马龙,江湖人称“邮差”,在35岁获得了MVP,真的不容易。其实职业球员过了30岁之后体力已经慢慢走下坡路了,接着我们看看30岁以后获得MVP的球员


3).30岁以上获得MVP的球员

mvp_age30=data.loc[data.Age>=30][['Player','Age']]

print (mvp_age30)

>>一共有10个30岁+的MVP球员

38年来,NBA最有价值球员|数据分析

30岁+以上还能获得MVP的是纳什(风之子),卡尔马龙(邮差),乔丹(篮球之神),奥拉朱旺(梦幻脚步),约翰孙(魔术师),朱利叶斯欧文(J博士),贾巴尔(天勾)都是NBA历史上有名的人物啊(不过话说回来,能得MVP的还是厉害的)



4).MVP次数最多球员

其实除了年龄之外,我还关心近38年来谁拿到的MVP次数最多,只要一行代码就能搞定了,Pandas真的是太酷了

print (data.Player.value_counts())

>>

Michael Jordanjordami01         5

LeBron Jamesjamesle01           4

Larry Birdbirdla01              3

Magic Johnsonjohnsma02          3

Stephen Currycurryst01          2

Moses Malonemalonmo01           2

Steve Nashnashst01              2

Karl Malonemalonka01            2

Tim Duncanduncati01             2

Julius Ervingervinju01          1

Russell Westbrookwestbru01      1

Shaquille O'Nealonealsh01       1

Dirk Nowitzkinowitdi01          1

Kevin Garnettgarneke01          1

Kobe Bryantbryanko01            1

Kevin Durantduranke01           1

Hakeem Olajuwonolajuha01        1

David Robinsonrobinda01         1

Allen Iversoniversal01          1

Kareem Abdul-Jabbarabdulka01    1

Derrick Roserosede01            1

Charles Barkleybarklch01        1


  • 第一名和我想的一样 乔丹“乔帮主”,比较出乎我意料的是奥尼尔,科比只有1次,可见MVP的争夺是十分激烈的,能拿到一次的MVP都是外界对自己实力的肯定

  • 并且从这里也可以看出,MVP更倾向于球场上的“小个子”,大多是后场球员,会不会是他们球权多一点呢~~



5).MVP的均场数据如何


38年来,NBA最有价值球员|数据分析

>>

assistants     6.134211

blocks         1.173684

point         26.718421

rebounds       8.600000

steals         1.592105

从数据大致可以看出,MVP大多都是攻守较为平衡,可以犀利的进攻,也可以严密的防守,攻防兼备才是最有价值球员

38年来,NBA最有价值球员|数据分析


6).胜利贡献值

最后来看一个综合的值:WS,即胜利贡献值

  • 这个值是根据球队胜场数、每个球员的详细技术统计等诸多数据分析出的,结合了球队战绩以及个人在获胜中起到的作用

  • 可以说是衡量一个球员个人能力和团队能力的指数。而我们将要探讨,这个指数和其他的指数有什么联系,我们将用矩阵相关系数来衡量

先来一个热力图,如果你不喜欢在一个矩阵里看数字的话,热力图将是一个不错的选择:

corrmat = data.corr()#获取data的相关系数

f, ax = plt.subplots(figsize=(12, 6))#大小我们设为大一点12*6英寸

sns.heatmap(corrmat,annot=True)#用sns来画图


38年来,NBA最有价值球员|数据分析


这样就清楚很多了吧,不仅有颜色深度,还有数字,简直就是上面的升级版,于是我们可以来分析:

和胜利贡献值(WS)联系比较相关的有:

G(比赛场次)

PTS(场均得分

STL(抢断)

FG%(投篮命中率)

也就是说,具备了上面几点,你离MVP就不远了!


  • 有好的体力,打的比赛才多,才能贡献更多(大家也可以自己撸代码看一下MVP的场均上场时间和上场次数,肯定不少)

  • 能得分高且保持稳定可观的命中率,应当注意的是,高得分和命中率不一定成正比,想象比较极端的情况,你的命中率不高,但我有球权可以一直进攻投篮,比如说我投了50次,进了10个球,也大概有20+了,但命中率并不能称得上是MVP的水准,所以这两个指数应该可以分开的。

  • 有不俗的抢断能力,就是平常我们说的“眼疾手快”,有了抢断意味着你就多了一次进攻机会,且大多数能形成快攻,得分的几率更高


结论:


好,NBA MVP最佳球员数据分析,就讲到这里.大家若有什么问题,欢迎留言讨论.  这已经是小郑的第二次投稿录用,写的非常不错. 其实数据分析就是探索数据之间隐藏的秘密,从而挖掘出一些有趣的东西,这个过程很好玩.有兴趣的同学可以看看今天头条文章"DC学院的数据分析课程".


另外:

欢迎大家,继续投稿(要求生动,有趣,好玩)

需要源码的小伙伴,请留言.



欢迎大家关注 菜鸟学Python",更多好玩有趣的Python原创教程,趣味算法,经验技巧,行业动态,尽在菜鸟学Python,一起来学python吧



 长按二维码,关注【菜鸟学python】



本篇文章来源于: 菜鸟学Python

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写

发表评论

表情 格式 链接 私密 签到
扫一扫二维码分享