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を使って、自分だけの野球データ分析をしてみましょう!
![[Python]json.loadsで日本語やUTF-8を扱う](https://machine-learning-skill-up.com/knowledge/wp-content/uploads/2023/11/1-158.jpg)
![[Python]Pandasで文字列データを効率的に抽出する方法](https://machine-learning-skill-up.com/knowledge/wp-content/uploads/2023/10/1-5.jpg)
![[Python]SQLAlchemyとPandasでMySQLデータベースを簡単操作!](https://machine-learning-skill-up.com/knowledge/wp-content/uploads/2023/10/1-415.jpg)

![[Python]Pandasで正規化と標準化を簡単に行う方法!](https://machine-learning-skill-up.com/knowledge/wp-content/uploads/2023/10/1-442.jpg)
![[Python]CSVファイルを作成時の文字化け対策、文字コードの指定](https://machine-learning-skill-up.com/knowledge/wp-content/uploads/2023/11/1-298.jpg)