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]
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值