見出し画像

【福島芝1800m】 タイムは時計がかかる?はやい?

福島開催が始まりますね。ラジオNIKKEI賞の舞台・福島芝1800mのタイムを他の芝1800mコースと比較したいと思います。

個人的にはローカルの中でも時計がかかり、タフなイメージのある福島芝コースですが、まじまじとタイムを比較したことはなかったので確認してみます。

データ対象:2017/01/01~2020/06/28 芝1800m 良馬場

芝1800mのタイムを箱ひげ図で比較

箱ひげ図を使えば、データのばらつき、平均、中央値がまとめて比較できます。(最近では高校生も教科書で学びます)

スクリーンショット 2020-07-03 16.55.47

(緑の点線=平均値、オレンジの線=中央値、外れ値を考慮する形)

福島芝1800mは、私のイメージ通り走破タイムの平均値・中央値ともに比較的遅いことがわかります。

念のため、正確に数値を見ておきましょう。平均走破タイムが早い順です。

スクリーンショット 2020-07-03 17.08.37

こうしてみると、洋芝ゆえ時計がかかるとされる函館と同じぐらい時計がかかることがわかります。

先ほどの箱ひげ図からは、福島と函館は割と似ています。

ラジオNIKKEI賞なんかは、福島未経験馬の出走馬も多いので、同様な走破タイムの水準にある競馬場での良績は参考にできるかもしれません。


データ取得方法の紹介

ここからはデータ取得の方法を紹介しますので、今回のようなデータなら簡単に自力でGETできる!って方はスルーしてください。

ツール:Target、Python

1.データの取得
Targetをお使いならば簡単だと思います。

芝1800mかつ良馬場でレースデータを検索
▶︎CSVデータを出力

2.データをPythonで読み込む

#ファイル名はご自身のつけたもの
t18 = pd.read_csv('t1800_time_2017to2020.csv')
t18.head(5)

スクリーンショット 2020-07-03 17.20.52

競馬場の偏りなんかをチェックしておきましょうか。

t18['場所'].value_counts()

スクリーンショット 2020-07-03 17.23.17

3.データの加工
Targetで取得した走破タイムが1466のように、4桁の数字になっているので、比較のため秒数に変換します。

#走破タイムを文字列に変換し、リスト形式で取得する
t18['走破タイム'] = t18['走破タイム'].astype(str)

#各桁の数値を秒数に換算する
t18['走破タイム(秒)'] = t18['走破タイム']
/.apply(lambda x: int(x[0])*60 + int(x[1:3]) + int(x[3])*0.1)

t18.head(5)

スクリーンショット 2020-07-03 17.27.32

すると、このように1471▶︎107.1(秒)に変換できていますね。


4.グラフを描く

import matplotlib.pyplot as plt

#競馬場ごとのタイムデータ ここはもっと簡潔に書けるはずですが..
time = (t18[t18['場所']=='東京']['走破タイム(秒)'],t18[t18['場所']=='京都']['走破タイム(秒)'], t18[t18['場所']=='阪神']['走破タイム(秒)'], t18[t18['場所']=='中山']['走破タイム(秒)'], t18[t18['場所']=='小倉']['走破タイム(秒)'],t18[t18['場所']=='函館']['走破タイム(秒)'], t18[t18['場所']=='札幌']['走破タイム(秒)'], t18[t18['場所']=='新潟']['走破タイム(秒)'], t18[t18['場所']=='福島']['走破タイム(秒)'])

# 箱ひげ図
fig, ax = plt.subplots(figsize = (12, 8))

bp = ax.boxplot(time, meanline=True, showmeans=True)
ax.set_xticklabels(['東京', '京都', '阪神','中山','小倉', '函館', '札幌', '新潟', '福島'])

plt.title('芝1800mタイムを比較', fontsize=20)
plt.xlabel('芝1800m(良馬場)' ,fontsize=18)
plt.ylabel('走破タイム(秒)' ,fontsize=18)

# Y軸のメモリのrange
plt.ylim([100,120])
plt.grid()
plt.tick_params(labelsize=18)

# 描画
plt.show()

スクリーンショット 2020-07-03 16.55.47

グラフを描く際に使うmatplotlib関連のコードは私も決して詳しくなく、割とコピペに次ぐコピペでなんとかなります。

結局使うコードはだいたい同じで、あとは入れるデータが違うだけですからね。

一連のプロセスは慣れれば10分もあればできます。

競馬データ紹介+データ取得方法の紹介という形で、競馬とTargetとPythonを学べる機会を提供したいと思っています。

毎日更新を目指していますので、ぜひお付き合いください。。

この記事が気に入ったらサポートをしてみませんか?