iT邦幫忙

2023 iThome 鐵人賽

DAY 23
0

介紹完主要的數據網站的 functions 後,接下來會再用一些篇幅把剩下的沒介紹的分享完,有些會連著原始碼一起介紹。今天先來介紹 top_prospects 這個 function。

top_prospects

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 會投球跟打擊數據一起回傳,如果有選的話就會只留下該類別的數據。

Source Code

這次 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)

Scouting Report

除了這些新秀的累積數據,MLB 官網也有提供他們的球探報告,可以在頁面裡數據的最右邊會有個文件的 Icon,裡面會有新秀各個項目的評分,還有球探隊他們的評價。

https://ithelp.ithome.com.tw/upload/images/20231002/20163024FwLHLs6J21.png

另外 FanGraphs 他們也有自己的新秀排名,會在他們的 The Board 頁面,他們的評分標準又會跟大聯盟官方的不一樣,對新秀有興趣的也可以去上面看看與互相比較。

本日小結

今天介紹了大聯盟的潛力新秀相關的數據與 function,一樣感謝大家耐心地看完。明天接下來會介紹 pybaseball 裡面的製圖工具。

本日程式碼:https://colab.research.google.com/drive/17gHfPGt6XPNr96YDBdGc1oU-DCbvQ4rq?usp=sharing


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

尚未有邦友留言

立即登入留言