HiÐΞWeb3

2024年 MLB 全投球データ取得方法!!【Google Colab + pybaseball】

SHOGAKU
17日前
2024年 MLB 全投球データ取得方法!!【Google Colab + pybaseball】1. この記事でできること2. 事前に知っておきたいこと3. まずやること4. このコードでやってること(ざっくり)5. 実行結果のイメージ6. ちょっと気をつけたいこと7. さらに進めたい人向け:次のステップ(1) BigQueryにアップロードしてSQL解析(2) 可視化(グラフ化)(3) 機械学習にも挑戦!8. よくある質問(FAQ)Q. 無料でずっと使えるんですか?Q. 1ヶ月だけ取りたい場合は?9. まとめ終わりに
2024年 MLB 全投球データ取得方法!【Google Colab + pybaseball】

2024年 MLB 全投球データ取得方法!!【Google Colab + pybaseball】

ChatGPTにそのまま書かせた。


1. この記事でできること

「野球のデータ分析をしてみたい!」そんなあなたへ。
2024年MLB公式戦(レギュラーシーズン)すべての投球データを、無料で、しかもパソコンだけで、手に入れる方法を教えます!

使うのは、無料で使えるGoogle Colabと、Pythonライブラリのpybaseballだけ!

2. 事前に知っておきたいこと

  • データはとても大きい!(約71万行、1.4GB)
  • でも、Google Colabなら無料枠で問題なし!
  • ちょっとした工夫が必要(API制限を回避するなど)

3. まずやること

GoogleアカウントがあればOK!
Google Colabにログインして、以下のコードをそのまま貼り付けて実行するだけ!

!pip install --upgrade pybaseball

import os, gc, calendar, datetime as dt, pandas as pd
from pybaseball import statcast

YEAR = 2024
OUTPUT_CSV = f"statcast_{YEAR}_regular.csv"
SAVE_PATH = f"/content/{OUTPUT_CSV}"

def month_date_range(year, month):
    first = dt.date(year, month, 1)
    last  = dt.date(year, month, calendar.monthrange(year, month)[1])
    return first.strftime("%Y-%m-%d"), last.strftime("%Y-%m-%d")

all_months = []
for m in range(1, 13):
    start, end = month_date_range(YEAR, m)
    print(f"Fetching {start}〜{end}")
    df_month = statcast(start, end, verbose=False)
    if not df_month.empty:
        all_months.append(df_month)
    del df_month; gc.collect()

if all_months:
    df = pd.concat(all_months, ignore_index=True)
else:
    raise RuntimeError("No data fetched.")

if "game_type" in df.columns:
    df = df[df["game_type"] == "R"].reset_index(drop=True)

df.to_csv(SAVE_PATH, index=False)
print(f"Saved: {SAVE_PATH}")

4. このコードでやってること(ざっくり)

  • 月ごとにデータをダウンロード → APIの制限を回避!
  • 公式戦(レギュラーシーズン)だけに絞る
  • 最後にCSVファイルとして保存

5. 実行結果のイメージ

Fetching 2024-01-01〜2024-01-31
Fetching 2024-02-01〜2024-02-29
...
✅ データ取得完了!709,510行 × 113列
✅ CSV保存完了!約392MB

6. ちょっと気をつけたいこと

  • データ量が多いので、Colabのランタイム切れに注意
  • 取れない月(データ空っぽな月)はスキップする仕組みになってます
  • pandasの「FutureWarning」対策もバッチリ(安心してOK)

7. さらに進めたい人向け:次のステップ

(1) BigQueryにアップロードしてSQL解析

データベースみたいにサクサク検索できる!
しかも無料枠(10GB/1TB)なら問題なし!

(2) 可視化(グラフ化)

Google Data Studio(Looker Studio)やStreamlitで、投球ヒートマップも作れる!

(3) 機械学習にも挑戦!

「この投球は打たれるか?空振りか?」を予測できるかも?

8. よくある質問(FAQ)

Q. 無料でずっと使えるんですか?

→ 使えます!BigQueryの「無料枠」内で収まるので、よっぽど使い込まない限りOK!

Q. 1ヶ月だけ取りたい場合は?

→ 年ではなく月単位だけにコードを変更すればOK!

9. まとめ

  • 2024年MLBレギュラーシーズンの全投球データを無料でゲット!
  • Google Colab + pybaseballで超簡単
  • 次は「データベース化」や「グラフ化」に挑戦しよう!

終わりに

「野球データってプロしか使えないんでしょ?」と思っていたあなたへ。
Python×Colabがあれば、誰でもプロ級のデータ分析ができる時代です!

この記事がきっかけで、あなたの「データ分析デビュー」が始まれば最高です!


コメント
いいね
投げ銭
最新順
人気順
コメント
いいね
投げ銭
最新順
人気順
トピック
アプリ

Astar Network

DFINITY / ICP

NFT

DAO

DeFi

L2

メタバース

BCG

仮想通貨 / クリプト

ブロックチェーン別

プロジェクト

目次
Tweet
ログイン