整理中華職棒(CPBL)選秀與打擊資料的小型資料專案。
目前主要功能:
- 抓取並整合歷年選秀資料到
data/draft_all/draft_all.csv - 補齊可取得的球員生日(
birth)與部分守備位置(position) - 計算打擊進階數據(OBP / SLG / OPS / OPS+)
本專案使用 conda 環境 cpbl。
- 建立環境(首次):
conda env create -f environment.yml- 啟用環境:
conda activate cpblsrc/
fetch_team_draft.py # 抓歷年選秀 + 補 birth/position
adv_stat.py # 計算打擊進階數據
data/
draft_all/draft_all.csv # 歷年整合後選秀資料(主要輸出)
batting/stat.csv # 打擊原始資料
batting/adv_stat.csv # 打擊進階資料輸出
- 歷年選秀:維基百科(raw)
https://zh.wikipedia.org/zh-tw/中華職棒選秀會?action=raw
- 球員生日補值:
cpbl-opendata的players.csvhttps://github.com/ldkrsi/cpbl-opendata
conda run -n cpbl python src/fetch_team_draft.py預設輸出:data/draft_all/draft_all.csv
可用參數:
--source:自訂來源(預設為維基百科)--output:自訂輸出檔案--reference:指定本地參考資料(可選)--skip-enrich:只抓取,不補birth/position
範例:
conda run -n cpbl python src/fetch_team_draft.py --skip-enrichconda run -n cpbl python src/adv_stat.py輸出:data/batting/adv_stat.csv
data/draft_all/draft_all.csv 主要欄位:
name:球員姓名birth:出生日期(YYYY-MM-DD,若可取得)draft-year:選秀年份round:輪次order:整體順位(同一年度內)position:守備位置(若可取得)draft-team:選秀球隊代碼status:目前與draft-team同步(需手動更新)leave-year:離隊年份(需手動更新)
- 維基資料為社群維護,偶有格式變動,解析邏輯可能需調整。
- 歷史資料中部分球隊名稱尚未完全正規化(例如舊隊名)。
position補值仍受參考資料覆蓋率影響,可能存在空值。
- 感謝
cpbl-opendata提供球員資料整理與開放資料貢獻。