Pythonと野球データ分析の関連性
Pythonはデータ分析に優れた言語として知られています。野球データ分析でもPythonを使うことで、データの収集から可視化、統計分析、機械学習まで幅広く活用することができます。
このページでは、本格的なセイバーメトリクスや具体的な野球に関するデータの取得の仕方について紹介はせず、取得した打率などのデータを使った簡単な統計処理の仕方を紹介します。
Pythonを使った野球データ収集方法
野球データを収集するには、Webスクレイピングを行うことが一般的です。Pythonには、BeautifulSoupやScrapyといったライブラリがあり、これらを使うことで簡単にWebスクレイピングを行うことができます。
import requests from bs4 import BeautifulSoup url = "スクレイピングするサイトのURL" response = requests.get(url) soup = BeautifulSoup(response.content, "html.parser") table = soup.find("table") rows = table.find_all("tr") for row in rows: cols = row.find_all("td") for col in cols: print(col.text, end="\t") print()
Pythonによる野球データの前処理
野球データを分析する前に、データの前処理が必要です。Pythonには、Pandasというライブラリがあり、これを使うことでデータの読み込み、整形、欠損値の処理などを簡単に行うことができます。
import pandas as pd df = pd.read_csv("baseball_data.csv") df.dropna(inplace=True) df["打率"] = df["安打数"] / df["打数"] df["OPS"] = df["出塁数"] + df["塁打数"] / df["打数"] print(df.head())
Pythonを使った野球データの可視化
Pythonには、MatplotlibやSeabornといったライブラリがあり、これらを使うことでデータの可視化が簡単に行えます。
import matplotlib.pyplot as plt import seaborn as sns sns.scatterplot(x="打率", y="OPS", data=df) plt.show()
Pythonを用いた野球データの統計分析
Pythonには、ScipyやStatsModelsといったライブラリがあり、これらを使うことで統計分析が簡単に行えます。
import scipy.stats as stats x = df["打率"] y = df["OPS"] r, p = stats.pearsonr(x, y) print("相関係数:", r) print("p値:", p)
Pythonでの野球データの機械学習
Pythonには、Scikit-learnという機械学習ライブラリがあり、これを使うことで機械学習が簡単に行えます。
from sklearn.linear_model import LinearRegression from sklearn.model_selection import train_test_split X = df[["打率"]] y = df["OPS"] X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3) model = LinearRegression() model.fit(X_train, y_train) score = model.score(X_test, y_test) print("決定係数:", score)
まとめ
Pythonを使うことで、野球データの収集から可視化、統計分析、機械学習まで幅広く活用することができます。野球ファンならぜひPythonを使って、自分だけの野球データ分析をしてみましょう!