NBA球员工资分析 | 您所在的位置:网站首页 › nba球员各项数据表 › NBA球员工资分析 |
NBA球员工资分析——谁在“白拿工资"?
思路:
主要问题:哪个球员*“白拿”工资*?(即投资的效率较低,投入=工资,产出=PER值) 一、爬取数据: www.espn.com/nba/salaries,ESPN官网爬取工资(及位置、所属球队、排名等信息) 二、描述性分析(工资分布,球队支付工资) 三、分析工资数据(方法:平均值法 by cl,产出/投入法,by syh ) 1)平均值法: -计算球员的平均工资(考虑:有没有必要去除异常值?如某个球员工资尤其高?个人认为并不需要)、球员平均PER水平 -筛选出高于平均工资的球员→计算高于平均工资球员的工资均值 -筛选出高于PER的球员→计算高于PER球员的PER均值 #简而言之,即求高于平均的平均 -筛选出:拿着高水平工资,表现(PER)却低于高水平PER均值的球员 2)产出/投入法: -分别将PER和球员工资标准化(由于二者scale不同) -PER/salary,排序 四、结论 #两种方法思路有所不同,求交集。 思考:可否视为test robustness的方法? 最终有7名球员,其中两位:Chandler Parsons和Allen Crabbe的PER为0,估计是没有上场 故最终5位球员视为“白拿”工资(效率较低): Russell Westbrook,Blake Griffin,Kemba Walker,Kevin Love,Andrew Wiggins 一、爬取数据 import requests from bs4 import BeautifulSoup #仅展示中间页码的爬取,由于URL、球员人数不同, #第一页和最后一页单独爬取(思路和方法类同),以下仅爬取了480位球员信息, rank=[] Url=[] players=[] position=[] team=[] salary=[] for k in range(2,14): response = requests.get('http://www.espn.com/nba/salaries/_/page/' + str(k)) soup = BeautifulSoup(response.text, 'html.parser') for m in range(0,20): info=soup.find_all('tr',class_='oddrow')[m] # rank r=info.find('td').get_text() rank.append(r) # individual url url=info.find('a').get('href') Url.append(url) # player p=info.find('a').get_text() players.append(p) #Position b=info.find_all('td')[1].get_text() b=b[-2:] position.append(b) # team name t=info.find_all('td')[2].get_text() team |
CopyRight 2018-2019 实验室设备网 版权所有 |