概要
kaggleにあるサッカーJリーグの2017年から2019年シーズンの全対戦成績から、Pythonを用いて、多方面に分析してみます
ソースコードの記載がありますが、初心者向けにコメント多めです
前提
1.kaggleのサイトからcsvファイルをダウンロードします
https://www.kaggle.com/yosafatvs/meiji-yasuda-jleague-1-20182019-league-log
※kaggleの会員登録必要です
2.Python3の環境構築
https://qiita.com/search?q=python+%E7%92%B0%E5%A2%83%E6%A7%8B%E7%AF%89
3.サッカー愛があること
実装編
最初にダウンロードしてきたcsvファイルを読み込んで、中身を見てみましょう
# -*= encoding: utf-8 -*-
import pandas as pd
# csvファイルのパス(任意)
csv_path = '/Users/app/csv/J. League Data Site.csv'
# csvファイルを読み込む
data = pd.read_csv(csv_path)
# 出力
print(data)
ここで、ターミナルで「python3 analysis.py」を実行すると
このような出力がされます
"Year"の列を見ると2017年から2019年にかけて、全試合の勝敗が入ってそうです
"Year"の列だけで出力してみましょう
# "Year"の列だけ出力
print(data['Year'])
csvファイルのヘッダーの真ん中の方にある観客数(Att.)も出力できます
print(data['Att.'])
次に、ホームチームの1試合当たりの平均得点と
3シーズン分のホームチームの合計得点を計算してみましょう
ヘッダの"Score_Home"項目を設定します
# ホームチームの1試合当たりのゴール数を計算(Score_Homeより)
print(data['Score_Home'].mean())
# ホームチームのゴール数の合計を計算(Score_Homeより)
print(data['Score_Home'].sum())
1試合あたり1.4点くらい入ってますね
3年間のホーム側の合計得点は1271なので、1シーズンで約400点も入っていますね
2022年の王者川崎フロンターレの2017年〜2019年のホームゲームの成績を出力してみましょう
ヘッダの項目が"Home"で、値が"Kawasaki-F"で絞ります。
# 川崎フロンターレがホームの場合
print(data.set_index('Home').loc['Kawasaki-F'])
川崎の3シーズンのホームの試合の平均得点、平均失点を見てみましょう
# 川崎フロンターレがホームの試合のスタッツ
print(data.set_index('Home').loc['Kawasaki-F'].mean())
1試合平均得点は、1.96点、ほぼ2点!
1試合平均失点は、0.94点、1点未満!
多くの試合が2-1で勝っている成績
強さが分かります
そして1試合平均観客数は2万2867人
多いですね!
最新のソースコードはGitHubで公開しています
https://github.com/heihei-wooooo/analysis-j-league
備考
有料ですがfootystatsというサイトでJリーグや欧州のプレミアリーグ、ラリーガなどの詳細なデータがあります。
APIが公開されているので、サッカー好きなPythonエンジニアはクリックしてみてください!
https://footystats.org/jp/