介紹完主要的數據網站的 functions 後,接下來會再用一些篇幅把剩下的沒介紹的分享完,有些會連著原始碼一起介紹。今天先來介紹 top_prospects
這個 function。
Top Prospects 翻成中文的意思就是潛力新秀,大聯盟每年會針對每隊的農場新秀進行排名,能被排入內的就會進入 top prospects 裡的名單。在大聯盟的官網會有全部的前一百名還有各球隊的前三十名,像是我們台灣的好手林昱珉可以從響尾蛇 (Arizona Diamondbacks) 的排名查到 (目前第四)。
響尾蛇排名:D-backs Top Prospects (mlb.com)
MLB 前 100 排名:Top 100 Baseball Prospects (mlb.com)
如果想知道這些新秀的累積數據,則可以去大聯盟的另外一個連結:
https://www.mlb.com/prospects/stats
去查找,一樣除了排名前 100,也能查各球隊的新秀。pybaseball 也是從這個頁面去獲得資料。
pybaseball 的 function top_prospects
會有兩個參數可以使用:
team
:搜尋特定球隊的前三十名新秀資料。需為字串,需為大聯盟球隊的名稱,能使用的名稱可以從 pybaseball 裡的這個 檔案 來得知。預設就會是回傳全部前一百名球員。但我今天發現他會出錯,會寫找不到我剛剛上面提到的檔案,之後我可能會開個 Issue。playerType
:可以選擇投手 (pitchers) 或打者 (batters),預設會是兩個都選擇。只能填入上述兩個字串,不然會回傳錯誤。from pybaseball import top_prospects
# 獲得新秀排名前一百名的累積數據
top_prospects()
# 獲得新秀排名前一百名的投手的累積數據
top_prospects(playerType="pitchers")
# 獲得新秀排名前一百名的打者的累積數據
top_prospects(playerType="batters")
回傳的資料如果沒特別選 playerType
會投球跟打擊數據一起回傳,如果有選的話就會只留下該類別的數據。
這次 pybaseball 又用不同的方法讀取網頁資料,雖然一樣需要用到 requests
這個 package,但是在 requests.get(url, timeout=None).content
之後,會使用 Pandas 的 read_html 轉換 html 成 DataFrame
,他會自動抓取 html 裡的 table
相關 tag 並轉換。
可以從這個檔案來了解程式碼:
pybaseball/pybaseball/top_prospects.py at master · jldbc/pybaseball (github.com)
除了這些新秀的累積數據,MLB 官網也有提供他們的球探報告,可以在頁面裡數據的最右邊會有個文件的 Icon,裡面會有新秀各個項目的評分,還有球探隊他們的評價。
另外 FanGraphs 他們也有自己的新秀排名,會在他們的 The Board 頁面,他們的評分標準又會跟大聯盟官方的不一樣,對新秀有興趣的也可以去上面看看與互相比較。
今天介紹了大聯盟的潛力新秀相關的數據與 function,一樣感謝大家耐心地看完。明天接下來會介紹 pybaseball 裡面的製圖工具。
本日程式碼:https://colab.research.google.com/drive/17gHfPGt6XPNr96YDBdGc1oU-DCbvQ4rq?usp=sharing