iT邦幫忙

2023 iThome 鐵人賽

DAY 18
0

昨天簡單介紹了 BR 這個網頁,今天就來看 pybaseball 裡的 BR functions 吧,一樣從打擊的部分開始介紹。

batting_stats_bref

跟 FanGraphs 的命名一樣,不過後面多加 _bref 作區別,獲得的資料會跟上一篇介紹的 Daily Game Log Finder 一樣,需要傳入一個參數:

  • season:須為整數,篩選的球季,如果沒有傳入數字的話預設會是使用當年的年份。

這個 function 使用只需要一個參數相對簡單,所以想跟另一個 function 一起介紹。

batting_stats_range

會跟第一個 function 回傳一樣的內容,不過參數可以選擇填入開始跟結束日期做篩選。

  • start_dt:想要搜尋範圍的開始日期,須為 "YYYY-MM-DD" 格式的字串。
  • end_dt:想要搜尋範圍的結束日期,須為 "YYYY-MM-DD" 格式的字串。如果沒傳入資料會回傳 start_dt 當天的資料。最近能找的資料會是昨天的資料,輸入今天的日期會搜尋不到。

要注意的是,BR 的 function 只能搜尋 2008 年前的資料,另外如果是選擇輸入球季的話,會自動篩選當季 3/1 - 11/30 的資料。還有如果搜尋不到資料會回傳錯誤。

範例:

from pybaseball import batting_stats_bref, batting_stats_range

# 獲得今年的打者成績
batting_stats_bref()

# 獲得 2022 年的打者成績
batting_stats_bref(2022)

# 獲得 2023-09-26 的打者成績
batting_stats_range('2023-09-26')

# 獲得 2023-09-01 到 2023-09-27 的打者成績
batting_stats_range('2023-09-01', '2023-09-26')

搜尋的範圍如果大的話會花點時間獲得資料,有時候會等一陣子,可能要注意一下。

team_batting_bref

用球隊來搜尋球員資料,如果只想看特定球隊裡的球員可以使用這個方法,參數有三個:

  • team:隊伍簡寫字串,可以參考 team_ids 回傳的 teamIDBR,為必填。
  • start_season:必填,篩選的開始球季。
  • end_season:篩選的結束球季,如果沒填會只回傳 start_season 填入的球季資料。

範例:

from pybaseball import team_batting_bref, team_ids

# 搜尋隊伍簡寫,BR 會使用 teamIDBR
team_ids(2020)

# 搜尋 2023 金鶯的球員資料
team_batting_bref('BAL', 2023)

# 搜尋 2021 - 2023 天使的球員資料
team_batting_bref('LAA', 2021, 2023)

一樣如果找不到資料會回傳錯誤。

本日小結

今天介紹 BR 的打擊 functions 感謝大家耐心地觀看。相較於其他兩個網站的 functions,BR 需要的填入參數比較少,所以也比較容易使用,不過就少了些多樣性。有點可惜的是不知道為什麼 pybaseball 只限定抓取 2008 後的資料,明明 BR 的特點就是他的歷史資料庫。

明天介紹投球的 functions。

今天的程式碼:

https://colab.research.google.com/drive/1XgWrU2w_TObiLw4FAJHFPwjFXCjTT_AE?usp=sharing


上一篇
Day 17 - Baseball Reference 介紹
下一篇
Day 19 - Baseball Reference 投球篇
系列文
Python 棒球數據分析套件 pybaseball 介紹30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言