
Jリーグスプリントデータをexcelに書き出した話
最近サッカーのデータ分析をしたくてJリーグのデータを漁っていたものの、まとまってcsvとかexcelになっているものが少なくて、さらにはスプリントデータも含まれてるものはwyscoutでもないので、せっかくだからスクレイピングしてみました。
注意書き
2024年度で7月までのデータを添付します。書いてる時点ではほぼ最新データなのですが、最新のデータが欲しい人はちょっとプログラミングが必要になりますが、多分この記事見てる人だいたいデータ分析オタクだと思うのでその辺は暖かい目で見てください。
実際のプログラムがまだぐちゃぐちゃで世界に見せれるように綺麗にしてから後悔します笑。とりあえず成果物のデータだけあげます。
選手ごとの基本データ
まずJleagueData の二つ。Cleanはただカラム名を英語にしてプログラミングしやすくしただけです。プログラミングしない人は、Originalの方には日本語が書いてあるので分かりやすかなと思います。
パス成功率とか一試合平均パス本数とかゴール数とかが書いてあります。
スプリントデータ
スプリントデータはスクレイピング(ネットからプログラムで引っ張ってきたもの)したそのままのやつと、そっからチームごと、試合ごとに分けたエクセルを作りました。
選手ごともやろうかなと思ったのですが、プログラミングできる人はすぐできますし(pandas の groupby関数ですぐできます)、一試合平均を出しても途中交代とかもあってあんまデータが信用ならないのでやめときました。一応選手ごとの合計は作りました。
↓これが選手ごとのデータ。
選手ごとのスプリント回数を単純にとったやつ。対して役に立ってるわけではない。選手名全部英語なのが尚更めんどくさい。
次にスクレイピングしてきたままの生データ
試合・選手ごとでめっちゃ量多いけど、これ以下のデータはこれを加工してやってる。
↓で次に試合ごとのデータ。
両チームの平均1分ごとのスプリント距離とかスプリント量とかと同時に、右の方にあるのがその試合に勝ったのか、スプリント数で勝ったのか、スプリント距離で勝ったのか、などなど。
1が勝ち、0が引き分け、-1が負け。シュート数の勝ち負けもある。
プログラム書くときに名前が英語じゃないとやりにくいためカラム名は全部英語ですが、dist = 距離 no = 数って感じです。
勝敗は完全にホームチーム目線です。
↓で最後にチームごとのデータ
シンプルにチームごとで平均とかまとめました。
fulltime_no_per_minは出場時間が90分の選手に絞ったとき
change_no_per_minは出場時間が10分以内の選手
全部分ごとのデータ。
Pointsは勝ち点。
当たり前だけど走ってるチームの方が上位にいる。
まとめ
ということでめっちゃ雑な初投稿になりましたが、このデータ使って色々分析してみて面白いものでも見つけたら是非教えて欲しいです。僕もデータをどう収集したかをまとめたらデータ分析の方に移っていきたいと思います。
他にもこんなデータスクレイピングして欲しいとかあったらやってみます。特にサッカー関係は。