台灣時間12月15日,勇士球星Stephen Curry在與尼克隊的比賽中,投進了他在NBA常規賽中的第2974顆三分球,從而超越傳奇射手Ray Allen的記錄,成為最新的三分記錄保持者。值得一提的是,Ray Allen用了1300場球賽才投進2973顆三分,而Stephen Curry卻在生涯的第789場球賽就破了這個記錄!
來看看更具體的數據。迄今為止,Stephen Curry在三分線外出手了6903次,換算下來便是場均出手了8.75顆三分球。在整個NBA生涯中,Ray Allen在三分線外出手了7429次,場均僅出手5.71顆三分球,比Stephen Curry少了整整3顆!
NBA聯盟的場均三分出手數越來越高,是一個已經被談論了好多年的話題。有些資深的球迷覺得,這一現象會導致球賽越來越難看。一堆球員躲在三分線外等著投籃,少了上世紀8,90年代的肌肉碰撞和火藥味。先不論比賽到底有沒有更難看,讓我們把焦點轉向另一個問題:三分投得越多,球隊真的就越有機會贏球嗎?
為了找出這個答案,我們可以利用Pandas來分析Kaggle上現有的NBA資料集。此處的分析會用到其中的games.csv和games_details.csv兩個檔案。前者記錄了某場比賽的概括資料,如該場比賽屬於哪一賽季及主客隊的命中率等;後者記錄的資料則更為詳細,包括個別球員出手的次數及命中率等。為了方便處理,小編已將這兩個資料集和本文中的程式範例放到雲端,讀者可直接下載進行測試。
現在,讓我們讀入個別資料集,並檢視其中的欄位名稱:
欄位數量有點多,因此只需取出有助於分析的欄位即可。接著,再來檢視處理過的DataFrame,以確保結果符合我們的預期:
下一步,開始進行分析的動作。首先,根據GAME_ID和TEAM_ID來對details這個DataFrame進行分組。由此一來,我們便可以得到較為精簡的資料,其中包含了某場比賽的球隊數據。原本的details是記錄了個別球員的數據,因此我們將聚合函式設為sum(),藉此把球員數據整合為球隊數據(舉例來說,原本的details並沒有球隊的總三分出手數,而透過sum()便可以將各球員的出手數加總,進而得到整個球隊的出手數):
目前我們只有不同比賽中,個別球隊的總三分出手數和命中數。讓我們進一步計算出三分命中率,並將它們存進新增的FG3_PCT欄位中。
需特別留意的是,有些球隊可能在某一場比賽中,沒出手過任何一次三分球(或許極為罕見,但我們不能否認可能出現這種狀況)。如此一來,該球隊在該場比賽的FG3_PCT就會是缺失值。為了避免在稍後的分析時出現問題,我們要先移除相關的列資料:
若想知道不同賽季的聯盟球隊三分出手數,我們還需要賽季資訊,而該資訊已存在games的SEASON欄位中。因此,我們可以透過Pandas的merge()方法將details和games這兩個DataFrame合併在一起。
現在的資料集中還少了一項資訊,即某一場比賽的勝方及敗方,而該資訊可以透過PTS欄位(記錄了球隊的總得分)來取得。此處會新增一個VICTORY欄位,並根據PTS欄位來決定填入Yes(獲勝),No(落敗)或Tie(常規時間平手)。為了方便處理,此處選擇只保留VICTORY欄位為Yes或No的資料列。
最後,我們便可以透過Seaborn來視覺化資料,進而找出某些趨勢。首先,來看看2003–04賽季起,三分出手數和球隊勝負之間的關係:
從圖表可見,2003–04賽季的場均三分出手數僅在15次左右,但在最新的2021–22賽季卻飆升超過1倍,達到了場均35次。其中,勝方的三分出手數的確多了一些,但十分地不明顯。換句話說,三分投得越多,不代表球隊就越能贏球!
如上所述,場均三分出手數自2003–04賽季起呈現了穩步上升的趨勢,那三分命中率是否也有提高的趨勢呢?只需將barplot()的y參數由FG3A欄位改成FG3_PCT欄位,便可一探究竟了:
從以上的輸出圖中可以發現,三分命中率似乎維持在一個數值左右,並沒有明顯的上升或下降趨勢。不過很明顯的是,勝者的三分命中率比對手多了5個百分點,甚至更多。因此,我們可以很不負責任地得出一個結論:要想贏得比賽,與其投得多,不如投得準!
小編知道上述的分析略顯粗糙 (鞭小力點),並沒有考慮到當賽季的比賽場數及判罰尺度等其他因素。只要熟悉強大的 Pandas,相信你可以做出比小編更精闢的分析。因此,歡迎讀者參考旗標出版的《Python資料分析必備套件!Pandas資料清理、重塑、過濾、視覺化》一書。全書涵蓋了 Pandas 資料分析的 114 技,保證您學好學滿!現正與《NumPy 高速運算徹底解說》合購75折優惠中,兩個Python熱門套件,幫您一次搞定!
參考資料:
XUAN NASELLI. (2021, August 11). It’s Raining threes in NBA: Is it worth it? Kaggle. Retrieved December 17, 2021, from https://www.kaggle.com/xuannaselli/it-s-raining-threes-in-nba-is-it-worth-it