本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。
以下文章来源于明日IT部落,作者 明日科技
2020年10月12日,也就是昨天。这支由詹姆斯所率领的老年湖人梦想团,在经历了近两个月的比拼后,终于收获了梦寐以求的最终胜利。湖人再次站在了NBA的潮头。36岁的勒布朗詹姆斯,34岁的拉简隆多,34岁的德怀特霍华德,32岁的贾维尔麦基,31岁的马基夫莫里斯,五名老将给这支夕阳梦想团注入了最强大的活力。27岁的安东尼戴维斯,25岁的大龄新秀库兹玛,27岁的考德维尔波普,26岁的洛杉矶卡神,他们或许会成为湖人更远的未来。
看了湖人队球员的薪资才知道:优秀的人注定会优秀!
下面通过Python爬取NBA湖人队球员薪资并进行分析,代码如下:
1import pandas as pd
2import matplotlib.pyplot as plt
3df = pd.DataFrame()
4url_list = ['http://www.espn.com/nba/salaries/_/seasontype/4']
5for i in range(2, 13):
6 url = 'http://www.espn.com/nba/salaries/_/page/%s/seasontype/4' % i
7 url_list.append(url)
8# 遍历网页中的table读取网页表格数据
9for url in url_list:
10 df = df.append(pd.read_html(url), ignore_index=True)
11# 列表解析:遍历dataframe第3列,以子字符串$开头
12df = df[[x.startswith('$') for x in df[3]]]
13# 筛选"湖人队"
14df1=df[df[2]=='Los Angeles Lakers']
15df2=df1.copy() # 拷贝一个副本
16df2[3]=df2[3].map(lambda a: a.replace('$', '')) # 将薪资中的“$”去掉
17df2[3]=df2[3].apply(lambda x: float(x.replace(",", "")))
18print(df2)
19# 新增一列
20df2['中文名']=['勒布朗-詹姆斯','安东尼-戴维斯','丹尼-格林','肯塔维厄斯-考德威尔-波普','埃弗里-布拉德利','贾维尔-麦基','德文泰-卡考克','奎因-库克','亚历克斯-卡鲁索','拉简-隆多','凯尔-库兹马','马基夫-莫里斯','贾里德-杜德利','德怀特-霍华德','大卫-斯托克顿']
21df2.to_excel('NBA1.xlsx',header=['RK','NAME','TEAM','SALARY','中文名'], index=False)
22df3=df2.sort_values(by=3,ascending=True) # 降序排序
23fig=plt.figure(figsize=(8,4)) # 画布大小
24plt.subplots_adjust(left=0.3) # 调整图表空白处
25plt.rcParams['font.sans-serif']=['SimHei'] # 解决中文乱码
26plt.ticklabel_format(useOffset=False, style='plain') # 禁止科学计数法
27plt.title('NBA 湖人队球员薪资现状分析',fontsize='18') # 图表标题
28plt.xlim(800000,40000000)
29x=df3['中文名']
30y=df3[3]
31median=df3[3].median()
32plt.barh(x,y,label='薪资',color='r')
33# 薪资中位数参考线
34plt.axvline(median,color='blue',linestyle='--',)
35plt.show()