Excelの一機能、Power Query(パワークエリ)は競馬データの分析に便利、という話①
導入
ご無沙汰しております、御尻山教授です。
Excelの「Power query」なる機能を使ってみたところ、競馬のデータ収集・分析に結構便利だったので当記事で共有しておきます。
ちなみに、プログラミングをちょっと齧った程度かつパワークエリを使って2週間程度のペーペーなので、英会話教室に通い始めたての会社員程度のレベルだと思って見て頂けると幸いです。よろしくお願いします。
必要なもの
・Excel(2013以降)
当然ですけど、Excelを使う必要があります。一応似たような感じの「Power BI」なるツールもあるらしいのですが、今回は永久ライセンスを買ったはいいけど機会が無いので塩漬けされていたExcelを使う、という僕の堅い意志があったため全く触っていません。触ったことがある方は教えて下さい。
・(必要に応じて)各種データ
データ分析のために必要なデータは各自用意してください。
当記事では、JRA公式サイトからデータを引っ張ってくるために必要な、URLのリストとレース結果データを用いたいと思います。
実践
使用するデータ
今回は、12月3日(土)の中山ダート1200m計3レースのデータから、傾向を探るために、
①1着馬との上がりの差がどうだったか
②4角1番手にいた馬との上がり差がどうだったか
このデータを収集していきたいと思います。
ちなみにウェブページからデータを収集する行為を「スクレイピング」というのですが、注意点として沢山のデータを間隔開けずにどんどん収集するとサーバーに負担をかけるので規約をきちんと確認しておくこと(データ収集を禁止している場合もあります。)。あとは大量にページを読み込みしないこと(読み込みごとのタイムラグを作る)。これは守りましょう。
本題に戻ります。この各データを取得するために、まずはウェブページの各データを使えるように処理していきます。
Excelのメニューから[データ]タブの[データの取得と変換]から[Webから]をクリックします。
このウインドウが出たら、まずは1Rの未勝利戦のデータがあるページを入力してみます。
匿名で接続します。ユーザーIDやpassが必要な場合は[基本]から入力すれば接続できると思います。
ここから、「2022年12月3日(土曜) 5回中山1日 発走時刻:9時50分 (以下略)」のテーブルを選択して、「データの変換」をクリックします。すると、ウェブページからテーブルを引っ張ってきてくれます。
ここからデータを弄って、欲しいデータを作成していきます。
ちなみに、途中で処理を戻したいときは右側「クエリの設定」部分から「適用したステップ」をクリックすると巻き戻して確認できます。
ここまでがデータの下処理です。データベース化するのであればこのままでもよいですが、今回は更にデータを加工して、欲しいデータを作っていきます。
完成したデータを見てみると、4角通過1,2番手がそのまま上がり上位でゴールしており、2頭以外で勝負になりそうだったのは3着で1着馬に3F0.5秒タイムを詰めて全体時計も0.1秒差まで詰め寄ったダークンストーミーだけだったとデータでは判断することもできます。
ここから残りの2レースの分析も行えるようにしたかったのですが、疲れたので次回。
次回は最初に作ったテーブルから、他レースの分析が行えるように今までの処理を関数化(内部で処理してくれるパーツ化させる)してみようと思います。
この記事が気に入ったらサポートをしてみませんか?