基準タイムの作成

基準タイムとは

競馬場、距離、フィールドごとに1~3着に入着した馬の平均タイムを指数化したものです。
基準タイムよりどれくらい速いかでその馬の実力を測ることができます。基準タイムの算出条件はまちまちですが、当HPでは以下の条件で算出します。

基準タイムの算出上条件

・各レースで3着以内の馬のタイムに絞る
・馬場が良、稍のレースに絞る
・競争馬の年齢が3歳以上のレースに絞る
・1勝クラス、2勝クラスのレースに絞る

基準タイムの算出方法

競馬場、距離、フィールドごとに、基準タイムの算出します。
例えば、中山競馬場、1600m、芝の基準タイムの算出は以下のように行います。
中山競馬場、1600m、芝の条件で、算出条件を満たすレースを抽出します。
100レース抽出されたとして、各レース毎に1~3着に入着した馬の平均タイムを算出します。
各レースで算出した平均タイムを100レースでさらに平均をとれば、その平均値が中山競馬場・1600m・芝の条件での基準タイムになります。

上記を踏まえ、全コース(競馬場・距離・フィールド)の基準タイムを算出するPythonのコードは
以下のようになります。

import pandas as pd


keiba_data=pd.read_csv(r"〇〇") #〇〇には競馬データ.csvのファイルパスを入力

#必要なデータに絞る
keiba_data=keiba_data[["競馬場","距離","フィールド","タイム","着順","馬場","系種","クラス"]]


##基準タイムの作成

#3着以内の馬のデータに絞る
keiba_data1= keiba_data[keiba_data['着順'] <= 3].copy()
#障害競争を省く
keiba_data1=keiba_data1[keiba_data1["フィールド"].str.contains('芝|ダ')]
#馬場を良、稍に絞る
keiba_data1=keiba_data1[keiba_data1["馬場"].str.contains('良|稍')]
#3歳以上、4歳以上に絞る
keiba_data1=keiba_data1[keiba_data1["系種"].str.contains('サラ系3歳以上|サラ系4歳以上')]

#1勝クラスの基準タイム
one_v=keiba_data1[keiba_data1["クラス"].str.contains('1勝クラス')].copy()
#groupbyで各競馬場・フィールド・馬場ごとに平均タイム(基準タイム)を作る
one_vtime = one_v.groupby(['競馬場', '距離', 'フィールド'])['タイム'].mean().reset_index()

#2勝クラスの基準タイム
two_v=keiba_data1[keiba_data1["クラス"].str.contains('2勝クラス')].copy()
#groupbyで各競馬場・フィールド・馬場ごとに平均タイム(基準タイム)を作る
two_vtime = two_v.groupby(['競馬場', '距離', 'フィールド'])['タイム'].mean().reset_index()

#基準タイムの作成
standard_time=pd.concat([one_vtime,two_vtime],axis=0)
standard_time=standard_time.groupby(['競馬場', '距離', 'フィールド'])['タイム'].mean().reset_index()
standard_time.rename(columns={"タイム":'基準タイム'}, inplace=True)
standard_time.to_csv("基準タイム.csv",index=False)

コードの出力結果は以下にようになります。

投稿者プロフィール

ひよこい
ひよこい
独学でpythonを学び競馬予測しています。これまでの競馬成績は以下の通り。回収率150%を目指します。
2021年回収率:119%
2022年回収率:104%
2023年回収率:121%
2024年回収率:88%
PAGE TOP