見出し画像

【種牡馬】 マツリダゴッホ産駒は夏がお好き?

祭りといえば夏。今年は各地の祭りも開催はリアルではなく、私の住む京都の伝統的な祭・祇園祭も中止となり寂しい夏になりそう。

それはさておき、マツリダゴッホ産駒はどうも夏に強いのでは?という印象を持っていてそれを確認したい。

昨日はツヅクがさくらんぼ特別で13人気3着で穴を開けていましたが、この馬が最後に馬券に絡んだのは2年前の同じく夏の福島でした。

イキオイという馬もマツリダ産駒で毎年夏の北海道だけ走る馬。

それではヒートマップでデータをチェックしてみましょう!

データをチェック

横軸を競馬場、縦軸を月として、平均着順を表しています。

画像1

色が薄いほど着順が良いのですが、いわゆる夏を7~9月として赤で囲んでいます。

するとキレイに夏だけ紺色のブロックがないことがわかります。
平均着順なので当然頭数にも左右されるのでそこは注意が必要ですが、大まかにはマツリダゴッホは夏に強いと言えそうではないでしょうか。

競馬場ごとに分けたのは、特定の競馬場で強い可能性を排除したいからです。
赤枠を見ると、満遍なく平均着順の色が薄いので、夏ならば競馬場を問わず成績がUPする傾向があります。

複勝率もチェックしておきましょう。

スクリーンショット 2020-07-06 17.47.51

夏の複勝率が気持ち高いでしょうか。

視覚で全体像をつかむのも大事ですが、もちろんしっかり数値で見ておくことも重要です。

勝率を月ごとに並べています。

スクリーンショット 2020-07-06 17.15.27

夏の定義によりますが、勝率が高いのは上から6月、7月、9月で、複勝率もほぼ比例していますね。

〜〜が得意っていうのは、競馬においては統計的に厳密に言い切るのは難しいわけです。なのでこのデータの信頼度もどの程度かはわかりませんが、今までのところマツリダゴッホ産駒は、暖かい季節の成績が比較的良いことは確認できました。

データ紹介はここまで。

ここからは、いつも通りデータ取得・作成の方法を紹介します。

データの取得・方法

ツール:TargetとPython

1.データの取得
まずはTargetより、マツリダゴッホ産駒の全成績データを取得
▶︎CSVファイルに出力

2.データの加工
#着順の修正
着順データから、「外」「止」「消」を含む行を削除します。
次に着順が文字列なので、数値に変換します。

#月だけを抽出
月ごとのデータが欲しいので、月だけを取り出します。
注意点はTargetの日付データは、2020.07.07ではなく2020. 7. 7のように0ではなく空白があるので、こちらを埋めておきます。

#複勝率
複勝率を出すために、まずは0のみの列を追加します。
あとは着順が3以内の行のみ、1を埋めれば平均値を取れば、それが複勝率に一致しますね。
複勝圏内についての0と1の二値分類ということです。

goho = pd.read_csv('matsurida_gogh_alldate_from20200705.csv')

# 着順の修正
goho = goho[~( (goho['着順'].str.contains('外')) | (goho['着順'].str.contains('消')) | (goho['着順'].str.contains('止')))]
goho['着順'] = goho['着順'].astype(int)
 #月だけを抽出 
goho['日付(yyyy.mm.dd)'] = goho['日付(yyyy.mm.dd)'].str.replace(' ', '')
goho['日付(yyyy.mm.dd)'] = pd.to_datetime(goho['日付(yyyy.mm.dd)'], format='%Y.%m.%d')
goho['month'] = goho['日付(yyyy.mm.dd)'].apply(lambda x : x.month)
 #複勝率 
goho['place'] = 0
goho['place'] = goho['着順'].apply(lambda x: 1 if x <=3 else 0)

細かい部分をキレイにできたので、あとは欲しい値を出すだけです。

3.データの集計

import matplotlib.pyplot as plt
import seaborn as sns

goho_pivot = pd.pivot_table(goho, index='month', columns='場所', values='着順')


plt.figure(figsize=(12.0, 12.0))
plt.title('マツリダゴッホ産駒 月と競馬場 複勝率', fontsize=20)
plt.xlabel("xlabel", fontsize=18)
plt.ylabel("ylabel", fontsize=18)
plt.tick_params(labelsize=15)
sns.heatmap(goho_pivot, annot=True, fmt='.2f', cmap='Blues')

これで先ほどのヒートマップができます。

スクリーンショット 2020-07-06 15.42.11

これをテンプレとして使えばいいだけなので、説明する点はないですが、indexやcolumnやvaluesの値を変えれば、あらゆるカテゴリの組み合わせでヒートマップが得られます。 

最後に月ごとの勝率順に並べる方法を。

#月別の勝率順に並べる
goho.groupby('month').agg({'win': 'mean', 'place': 'mean'})
/.sort_values(by='win', ascending=False)

groupbyメソッドは超絶便利で、特定のカテゴリごとの処理ができます。
またaggメソッドは、複数の処理を指定できます。
そしてsort_valuesメソッドで特定要素の値を昇順・降順に並べられます。

以上でデータ取得・作成の方法の紹介を終わります。

今後も毎日更新を目指して、競馬データを通してPythonを上達させるような記事を発信していきます!今後もお付き合いください。

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