python抓取NBA现役球员基本信息数据并进行分析

摘要:
现役球员的平均职业年龄为4.76岁。随着新一代球员装备了新时代的体系和打法,NBA变得越来越漂亮和激烈。现在,让我们来看看目前NBA球员的一个非常有趣的数据。最受欢迎的五大数字是什么?东部有4个约翰逊,西部有3个约翰逊。

链接:http://china.nba.com/playerindex/

所需获取JSON数据页面链接:http://china.nba.com/static/data/league/playerlist.json

数据来源:NBA中国官网

库:

requests 用于解析页面文本数据

pandas   用于处理数据

时间:

2017/2/17 (因为为现役球员,故需注明时间节点)

开工:

python抓取NBA现役球员基本信息数据并进行分析第1张

python抓取NBA现役球员基本信息数据并进行分析第2张

 得到了数据,这下就好办了

先上简单粗暴够用的代码

 import requests
 2 import pandas as pd
 3 user_agent = 'User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Maxthon 2.0)'
 4 headers = {'User-Agent':user_agent}
 5 url='http://china.nba.com/static/data/league/playerlist.json'
 6 #解析网页
 7 r=requests.get(url,headers=headers).json() 
 8 num=int(len(r['payload']['players']))-1 #得到列表r['payload']['players']的长度
 9 p1_cols=[] #用来存放p1数组的列
10 p2_cols=[] #用来存放p2数组的列
11 #遍历其中一个['playerProfile'],['teamProfile'] 得到各自列名,添加到p1_cols和p2_cols列表中
12 for x in r['payload']['players'][0]['playerProfile']:
13     p1_cols.append(x)
14 for y in r['payload']['players'][0]['teamProfile']:
15     p2_cols.append(y)
16 p1=pd.DataFrame(columns=p1_cols) #初始化一个DataFrame p1 用来存放playerProfile下的数据
17 p2=pd.DataFrame(columns=p2_cols) #初始化一个DataFrame p1 用来存放playerProfile下的数据
18  #遍历一次得到一个球员的信息,分别添加到DataFrame数组中
19 for z in range(num):
20     player=pd.DataFrame([r['payload']['players'][z]['playerProfile']])
21     team=pd.DataFrame([r['payload']['players'][z]['teamProfile']])
22     p1=p1.append(player,ignore_index=True)
23     p2=p2.append(team,ignore_index=True)
24 p3=pd.merge(p1,p2,left_index=True,right_index=True) #数据合并
25 p3.to_csv('f://NBA//nba_player.csv',index=False)

 只能说简单粗暴,25行代码搞定,恩,不过数据已经拿到手。

接下来查看一下

python抓取NBA现役球员基本信息数据并进行分析第3张

数据量不大,也可以用EXCEL来'偷窥'

python抓取NBA现役球员基本信息数据并进行分析第4张

 拿到数据,总得稍微把玩一下,才对得起这堆数据,不然和撩到了步行街标准9分妹子就分手有什么区别呢?

了解下基本的数据情况

python抓取NBA现役球员基本信息数据并进行分析第5张

python抓取NBA现役球员基本信息数据并进行分析第6张

截止全明星赛前有449名现役球员

那么各球队球员数量具体是多少呢?

python抓取NBA现役球员基本信息数据并进行分析第7张python抓取NBA现役球员基本信息数据并进行分析第8张

老詹的骑士还差个控位,湖人在为明年做准备

 很想了解下NBA球员国籍'country'的情况

python抓取NBA现役球员基本信息数据并进行分析第9张python抓取NBA现役球员基本信息数据并进行分析第10张

 也就是说449名现役大名单球员里,有340名美国佬咯,螺旋稳

其中,

亚洲帅哥2枚,格鲁吉亚的Zaza Pachulia 和 以色列的Omri Casspi 撑场

非洲在大帝的领导下,率将领14名出征,NBA官网上28卡国籍是刚果。

python抓取NBA现役球员基本信息数据并进行分析第11张

 欧洲55人;大洋洲8人(澳大利亚7人,新西兰1人);南美12人;还有4人,暂且未知(NBA数据库未补充)python抓取NBA现役球员基本信息数据并进行分析第12张

 python抓取NBA现役球员基本信息数据并进行分析第13张

 接下来,看一下现役球员中,每一届球员的情况

python抓取NBA现役球员基本信息数据并进行分析第14张python抓取NBA现役球员基本信息数据并进行分析第15张

 98届的 Vince Carter,Paul Pierce,Dirk Nowitzki  

99届的Manu Ginobili,Jason Terry,Metta World Peace   

00届的Jamal Crawford,Mike Miller

01届的Tyson Chandler,Pau Gasol,Richard Jefferson,Joe Johnson,Tony Parker,Zach Randolph

02届的Matt Barnes,Mike Dunleavy,Udonis Haslem,Nene,Luis Scola

终有一天他们会离去,就像去年夏天的Tim,Bryant 和 Kevin

python抓取NBA现役球员基本信息数据并进行分析第16张

还是那句话,老兵不死,只是凋零。

03白金一代也只有12人在战斗了,当安东尼顶替乐福进入16/17/全明星赛时,老詹说自己不再是年龄最大的那位了,当时的你又在想啥呢?

这里我们需要再看一项数据,就是NBA现役球员的NBA平均职业生涯年龄是多少呢?

现役球员平均职业年龄为4.76年。

新生代球员配上新时代的体系及打法,NBA也是越来越好看,越来越激烈。每一位成功的球员都是为那个时代而生的。

下面,我们看一个很有意思的数据

现役NBA球员,最受欢迎的号码前5是哪几个号码呢?

python抓取NBA现役球员基本信息数据并进行分析第17张

只能说,666。原来5号,8号这么受欢迎。

 还有,我们平时看NBA,主播评论员都是只说美国人的lastName,所以有时候一个队有几个汤普森或者约翰逊,满脸茫然

python抓取NBA现役球员基本信息数据并进行分析第18张

python抓取NBA现役球员基本信息数据并进行分析第19张python抓取NBA现役球员基本信息数据并进行分析第20张

 朋友,我会告诉你,共有7个约翰逊,统统来自美国。东部4个约翰逊,西部3个约翰逊。

热火VS快船比赛解说可能就是,约翰逊外线传球给约翰逊被杀出来的约翰逊抢断成功,掩耳不及迅雷之势传给快下的约翰逊,轻松扣篮得手。

 那球员的位置分布怎么样呢?小球时代,自我感觉整个联盟后场球员会遥遥领先前场球员,一起来看看,果不其然。

python抓取NBA现役球员基本信息数据并进行分析第21张

今天就聊到这里吧

还有许多有趣的字段,有待开发。无兄弟,不篮球,期待与大伙一起为了我们兴趣,一起讨论交流,

I am a JRS,We are family ,他强任他强。

python抓取NBA现役球员基本信息数据并进行分析第22张

 小白一枚,能力有限,做的不好的地方,尤其是逻辑与思维上的东西,需要大神们看到了多多指教和斧正buddyquan。

小白博客:https://home.cnblogs.com/u/buddyquan/
QQ:1749061919 小白爬虫求带

免责声明:文章转载自《python抓取NBA现役球员基本信息数据并进行分析》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇PING 地址收集python中的收集参数下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

(转)Python科学计算之Pandas详解,pythonpandas

https://www.cnblogs.com/linux-wangkun/p/5903380.html-------pandas 学习(1): pandas 数据结构之Series https://www.cnblogs.com/linux-wangkun/p/5903945.html-------pandas 学习(2): pandas 数据结构之Da...

LFI-labs

CMD-1 查看源代码: <?php system($_GET["cmd"]); ?> 这个没有任何过滤,直接命令执行即可。payload: ?cmd=whoani CMD-2 这题和上面一样,只不过改成了POST请求。 CMD-3 查看源码: <?php system("/usr/bin/whois " . $_G...

SparkSQL学习笔记

概述冠状病毒来临,宅在家中给国家做贡献之际,写一篇随笔记录SparkSQL的学习笔记,目的有二,一是记录整理之前的知识作为备忘录,二是分享技术,大家共同进步,有问题也希望大家不吝赐教。总体而言,大数据主要包含三种操作:长时间运行的批量数据处理;交互式运行的数据查询;实时数据流处理。sparkSQL特点:数据兼容,不仅兼容hive,还可以从rdd,parqu...

dataframe 针对列条件赋值

针对单列条件: #常规方式 importpandas as pd df = pd.DataFrame({'one':['a', 'a', 'b', 'c'], 'two':[3,1,2,3], 'three':['C','B','C','A']}) print(df) df.loc[df['two']==2, 'one']='x' #修改列"on...

python None 和 NaN

python原生的None和pandas, numpy中的numpy.NaN尽管在功能上都是用来标示空缺数据。但它们的行为在很多场景下确有一些相当大的差异。由于不熟悉这些差异,曾经给我的工作带来过不少麻烦。 特此整理了一份详细的实验,比较None和NaN在不同场景下的差异。 实验的结果有些在意料之内,有些则让我大跌眼镜。希望读者看过此文后会None和NaN...

Pandas之Series+DataFrame

Series是带有标签的一维数组,可以保存任何数据类型(整数,字符串,浮点数,python对象) index查看series索引,values查看series值 series相比于ndarray,是一个自带索引index的数组--> 一维数组 + 对应索引 series和dict相比,series更像是一个有顺序的字典 创建方法 1.由字典创建,字典...