2017-09-18


    我之前写了一篇关于科比生涯的数据分析,这次打算写一篇关于常规赛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年的数据,我为了截图效果,隐藏了一部分数据


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文件放在一个目录下


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

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

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


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



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

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

>>35

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

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

>>

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


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

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

print (mvp_age30)

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

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



4).MVP次数最多球员

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

print (data.Player.value_counts())

>>

Michael Jordan\jordami01         5

LeBron James\jamesle01           4

Larry Bird\birdla01              3

Magic Johnson\johnsma02          3

Stephen Curry\curryst01          2

Moses Malone\malonmo01           2

Steve Nash\nashst01              2

Karl Malone\malonka01            2

Tim Duncan\duncati01             2

Julius Erving\ervinju01          1

Russell Westbrook\westbru01      1

Shaquille O'Neal\onealsh01       1

Dirk Nowitzki\nowitdi01          1

Kevin Garnett\garneke01          1

Kobe Bryant\bryanko01            1

Kevin Durant\duranke01           1

Hakeem Olajuwon\olajuha01        1

David Robinson\robinda01         1

Allen Iverson\iversal01          1

Kareem Abdul-Jabbar\abdulka01    1

Derrick Rose\rosede01            1

Charles Barkley\barklch01        1


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

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



5).MVP的均场数据如何


>>

assistants     6.134211

blocks         1.173684

point         26.718421

rebounds       8.600000

steals         1.592105

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


6).胜利贡献值

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

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

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

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

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

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

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



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

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

G(比赛场次)

PTS(场均得分

STL(抢断)

FG%(投篮命中率)

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


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

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

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