iT邦幫忙

2023 iThome 鐵人賽

DAY 26
0

Lahman’s Baseball Database 是由 Sean Lahman 在 1995 年所建立的大聯盟數據資料庫,並由 Chadwick Bureau 把資料庫部署在 Github 上面供大家使用。跟其他不一樣的是他的數據庫更新會是等球季結束後再在休賽季的某時候一次上傳。pybaseball 會直接拉在 Github 上面的檔案並整理成 DataFrame 來使用。雖然現在大家都比較常使用 FanGraphs、Baseball Reference 和 Baseball Savant 居多,但其實在 Baseball Reference 起頭前也是先用 Lahman 裡的資料,所以是一個很有歷史意義的資料庫。

pybaseball 總共提供約 29 個 functions,數量眾多而且有些獲得的資料可能用 FanGraphs 或 Baseball Reference 的 functions 就能獲得,所以我可能就特別挑幾個來介紹。如果想看有哪些 functions 的話可以參考他們的原始碼:

https://github.com/jldbc/pybaseball/blob/e94093b3985f4bbfa88b3c413f16391686163abd/pybaseball/lahman.py#L50

Functions

Lahman 的 functions 都不需要傳入參數,並且資料會是從 1884 到當球季的前一年資料,譬如像是今年就會到 2022 年的資料。另外回傳的資料都用球員 ID 代表球員,要知道 lahman 的球員 ID 可以透過 ****player_id_lookup**** 來得知,詳細可以參考我之前的文章:

Day 03 - 球員 ID 搜尋 - iT 邦幫忙::一起幫忙解決難題,拯救 IT 人的一天 (ithome.com.tw)

  • batting_postfiedling_postpitching_post:各球員季後賽的資料,數據會是一些基本數據,不過由於目前在 pybaseball 裡的其他 functions 都是獲得季賽資料比較多,所以如果想知道特別球員的季後賽資料就可以用這邊的 functions。
  • awards_managersawards_playersawards_share_managersawards_share_players:獲得各年的獎項得主,如果加 share 的話可以知道獲獎球員拿到多少第一名的票以及贏第二名多少分。
  • appearances:可以知道球員在當季的各守備位置的守備次數,還有上場守備打擊跟投球的次數。
  • all_star_full:獲得每年的明星賽名單,以及如果先發球員的守備位置。

Lahman 的使用十分簡單,import 後執行 download_lahman 就可以使用裡面的 functions:

from pybaseball.lahman import *

# 下載 Github 上的資料
download_lahman()

# 歷年打者季後賽資料
batting_post()

# 歷年明星賽資料
all_star_full()

本日小結

今天介紹了 Lahman 這個資料庫與他裡面的一些 functions,感謝大家耐心地看完。在有像是 pybaseball 這樣的套件前,Lahman 是一個很方便取得球員數據的地方,也是以前的人用來作數據分析的數據管道,而且他們也有留一些有趣的數據可供查詢,我覺得還是值得研究一下。

本日程式碼:
https://colab.research.google.com/drive/1kxkxRZ90CfBJVM8f2DJ6PpACyV2U6bJa?usp=sharing


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

尚未有邦友留言

立即登入留言