はじめに
※本記事のコード解説自体は、pythonプログラミング初心者向けとなっております。
ボートレース3連単予測サイト「きょう、ていの良い予想は当たるだろうか」では毎日のレース予想の的中率や回収率をつつみ隠さず公開しているのですが、月に一度は毎日の予想結果を1つにまとめておきたいなと思い、表題のような処理をしようと考えました。
私の状況
ボートレースの試合結果と機械学習による予想を整理し、"result_2020mmdd.csv" といった形式で毎日保存しています。月に一度はこれらのファイルをまとめて、結果を可視化したい..。
そして下図にあるような、ところどころ混ざっているresult_202006.. _test .csv のようなファイルはテスト用なので省きたい..。
コードはこんな感じ。
とてもシンプルです。
import pandas as pd
import glob
csv_files = glob.glob("predict/result/result_202006??.csv")
filelist = []
for file in csv_files:
filelist.append(pd.read_csv(file))
df = pd.concat(filelist)
globでパス名を取得する際にresult_202006 ?? .csvとしています。1つの?で任意の一文字分を担当してくれます。
csv_filesにはいい感じにファイル+パス名が一式格納されています。
for文でひとつずつappendしていき、最後はDataFrame化して完成!です。
ちなみに6月の結果はどうだったのか..
先ほどつくったデータフレームを使って、結果を確認しました。
3連単的中率は設計通り10%を記録しましたが、回収率が80%強です..。(とはいっても、その他の無料予想を見ていると、現時点でも割と戦える感じかもしれない。)
まとめた後にpivot_tableで整理した結果がこちらです。
当たりやすい競艇場と全然あたらない競艇場がはっきりしているのが面白いです。
今月は当たりやすい競艇場だけ買ってみようかな..
Site | Hit | Miss | Payoff | Return_ratio |
---|---|---|---|---|
丸亀 | 5 | 26 | 5480 | 176.77 |
蒲郡 | 3 | 21 | 3990 | 166.25 |
徳山 | 9 | 33 | 6800 | 161.9 |
琵琶湖 | 9 | 31 | 5810 | 145.25 |
浜名湖 | 8 | 43 | 6030 | 118.24 |
戸田 | 4 | 46 | 5470 | 109.4 |
江戸川 | 3 | 24 | 2740 | 101.48 |
鳴門 | 6 | 44 | 5060 | 101.2 |
常滑 | 4 | 38 | 4190 | 99.76 |
児島 | 5 | 58 | 6230 | 98.89 |
住之江 | 2 | 33 | 3340 | 95.43 |
福岡 | 2 | 14 | 1460 | 91.25 |
芦屋 | 6 | 46 | 4540 | 87.31 |
大村 | 8 | 51 | 4770 | 80.85 |
唐津 | 3 | 30 | 2600 | 78.79 |
尼崎 | 5 | 52 | 4270 | 74.91 |
宮島 | 5 | 36 | 2400 | 58.54 |
平和島 | 3 | 40 | 2510 | 58.37 |
多摩川 | 3 | 32 | 1850 | 52.86 |
下関 | 3 | 54 | 2760 | 48.42 |
三国 | 5 | 58 | 3030 | 48.1 |
若松 | 4 | 56 | 1780 | 29.67 |
桐生 | 1 | 47 | 1190 | 24.79 |
津 | 3 | 67 | 1290 | 18.43 |