火箭五年四遇勇士,終究還是敗了
看了火箭和勇士的G6大戰(zhàn),最終火箭3比4出局。
在火箭的近五年季后賽,一共有四次是和勇士交手,最終都以失敗告終。
我平常是很少看NBA比賽的,所以看完之后便想寫點東西。
懷念一下那些年我們一起關(guān)注過,當(dāng)然也打過的籃球。
涉及的東西不多,主要是NBA球員歷年薪資情況以及效力球隊情況。
這里的球員都是NBA的籃球巨星。
至于超巨是哪幾個,估摸著大家各自都有各自的想法啦。
我也不多說~
一、獲取分析
數(shù)據(jù)從下面這個網(wǎng)站上獲取,獲取熱門球員信息。
詳情見下圖。
這里以詹姆斯為例,首先查看他的網(wǎng)址ID。
接下來進(jìn)入球員數(shù)據(jù)概況詳情頁。
查看他各賽季的薪資以及效力球隊情況。
獲取賽季、球隊以及薪金數(shù)據(jù)。
二、數(shù)據(jù)獲取
具體代碼如下。
- import requests
- from bs4 import BeautifulSoup
- headers = {
- 'user-agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'
- }
- def get_player(player_id):
- url_2 = 'http://www.stat-nba.com' + player_id
- response_2 = requests.get(url=url_2, headers=headers)
- html_2 = response_2.text
- # 對請求結(jié)果進(jìn)行編碼解碼處理,避免出現(xiàn)亂碼
- html_2 = html_2.encode('ISO-8859-1')
- html_2 = html_2.decode('utf-8')
- # 提取信息
- soup_2 = BeautifulSoup(html_2, 'html.parser')
- name = soup_2.find(class_='name').get_text().split('/')[0]
- salarys = soup_2.find(id='player_salary')
- trs = salarys.find('tbody')
- # 獲取信息
- for tr in trs.find_all('tr')[:-2]:
- # 年份
- season = tr.find(class_='current').get_text()
- if int(season[:1]) > 2:
- year = '19' + season.split('-')[0]
- else:
- year = '20' + season.split('-')[0]
- # 球隊
- team = tr.find('a').get_text()
- # 薪水
- salary = tr.find_all(class_='normal')[1].get_text().replace('萬美元', '')
- print(year, name, team, salary)
- with open('nba.csv', 'a+', encoding='utf-8-sig') as f:
- f.write(year + ',' + name + ',' + team + ',' + salary + '\n')
- def get_index():
- url_1 = 'http://www.stat-nba.com/playerList.php'
- response_1 = requests.get(url=url_1, headers=headers)
- html_1 = response_1.text
- # 對請求結(jié)果進(jìn)行編碼解碼處理,避免出現(xiàn)亂碼
- html_1 = html_1.encode('ISO-8859-1')
- html_1 = html_1.decode('utf-8')
- soup_1 = BeautifulSoup(html_1, 'html.parser')
- div = soup_1.find_all(class_='playerList')[1]
- for i in div.find_all(class_='name'):
- player_id = i.find('a')['href'][1:]
- try:
- get_player(player_id)
- except:
- pass
- if __name__ == '__main__':
- get_index()
***成功獲取數(shù)據(jù)。
包含賽季,球員,效力球隊,薪資信息。
將球員數(shù)據(jù)轉(zhuǎn)化為特定格式,以便輸出動態(tài)視頻。
一共784條數(shù)據(jù)。
三、數(shù)據(jù)可視化
首先來看一下球員的薪資情況,從1990年到2020年。
薪資應(yīng)該也是能體現(xiàn)出一個球員實力的。
每年又或者間隔幾年,***總會變,長江后浪推前浪。
「喬丹」、「奧尼爾」、「加內(nèi)特」、「麥迪」、「科比」、「詹姆斯」、「庫里」七位登頂***的球員。
接下來是對球員效力球隊的情況進(jìn)行分析。
首先讀取數(shù)據(jù)。
- import pandas as pd
- # 設(shè)置列名與數(shù)據(jù)對齊
- pd.set_option('display.unicode.ambiguous_as_wide', True)
- pd.set_option('display.unicode.east_asian_width', True)
- # 讀取數(shù)據(jù)
- df = pd.read_csv('nba.csv', header=None, names=['date', 'name', 'team', 'salary'])
接下來對數(shù)據(jù)進(jìn)行一些簡單操作,分組匯總。
- # 對球員效力的球隊進(jìn)行計數(shù)
- df2 = df1['name'].value_counts().reset_index()
- print(df2)
得出如下結(jié)果。
確實沒想到哈登已經(jīng)在火箭待了八年了。
從以前雷霆的三巨頭,到如今的火箭當(dāng)家球星。
不過還是有遺憾的,常規(guī)賽把把MVP,然而五進(jìn)季后賽,四次都被勇士干掉了。
你說誰的心態(tài)不會蹦...
科比則是在湖人待了20年,24號球衣,湖人是永遠(yuǎn)不會忘記的。
下面對球員效力過的球隊進(jìn)行統(tǒng)計。
- # 對球員效力的球隊進(jìn)行計數(shù)
- df2 = df1['name'].value_counts().reset_index()
- print(df2)
為什么想到這個呢,主要是之前奧尼爾的彩虹球衣給我留下了深刻的印象。
輾轉(zhuǎn)反側(cè),顛沛流離,其中又有多少辛酸呢。
先看一下效力過球隊多的那幾位。
林書豪從尼克斯崛起過一段時間后,慢慢的又變得沒什么聲音,一直在兜兜轉(zhuǎn)轉(zhuǎn),也是可惜。
魔獸霍華德處境也很尷尬,記得那時我剛看NBA的時候,就是霍華德、詹姆斯、科比的時代。
一個能單換詹姆斯的球員,隨著時間的推移,也變得毫無存在感。
奧尼爾如同上面提到過的那樣,彩虹球衣收集者,6支球隊。
下面看一下只效力過一只球隊的球員。
首先是勇士的三位全明星球員,庫里、湯普森、格林。
還有雷霆的威少、湖人的科比、火箭的姚明,獨行俠的諾維茨基。
諾天王奪冠的時候隊伍還叫小牛,只不過現(xiàn)在改名為獨行俠。
那一年確實是沒想到諾天王能奪冠。
接下來看一下這些整個職業(yè)生涯只效力一只球隊的球員,他們究竟效力那個球隊。
- names = []
- for i in df2[df2['name'] == 1]['index']:
- names.append(i)
- print(df1.loc[df1['name'].isin(names)].sort_values(by='date', ascending=False))
結(jié)果如下。
不少熟悉的面孔,你認(rèn)識幾個呢?
下面再看一下球員職業(yè)生涯時間最長的。
- df3 = df.groupby(['name']).count().reset_index()
- print(df3.sort_values(by='date', ascending=False))
結(jié)果如下。
今年退役的,上面就有兩個,閃電俠—韋德和諾天王—諾維茨基。
兩大傳奇巨星退役,也預(yù)示著一代人的青春與回憶的落幕。
四、總結(jié)
昨天的比賽,火箭雖然輸了,但是直到***一刻火箭的隊員還是沒有選擇放棄。
連著犯規(guī)制造投球機(jī)會,連進(jìn)三個三分球。
雖敗猶榮,只是成王敗寇,可惜了呀。
即使勇士少了杜蘭特,火箭還是沒能夠跨過那座山。
當(dāng)然勇士也展現(xiàn)出了他們作為總冠軍該有的實力。
球隊的成員也在關(guān)鍵的時刻站了出來—一支總冠軍球隊該有的底蘊(yùn)與實力。