競馬について徒然と

競馬について適当に書きます. ちょっとtech系風味も入れて.

pyparsingで競馬のコーナー通過順位をパース+内外位置&可視化

前から気になっていたこれ。

これに内外の位置取りを追加して、あと、かんたんに可視化もできたらなーということで、Colabolatoryでやってみた。

notebookは以下にあります。

修正したのは以下の箇所

    def _horse_no_action(self, token):
        
        self._data = self._data.append({'diff':self._diff, 'horse_no':token[0], 'side':1 }, ignore_index=True)
        return

    def _group_action(self, token):
        
        for i, no in enumerate(token):
            self._data = self._data.append({'diff':self._diff, 'horse_no':no, 'side':1+i}, ignore_index=True)
            self._diff += DIFF_GROUP
        self._diff -= DIFF_GROUP
        return

データフレームの各データにsideというカラムを追加して、"馬群"の場合はループでインクリメントしてるだけ。

実際に実行してみるとこんな感じで。

外は基本的に不利なのでこういうデータを取りたかったんだよね。ちなみに競馬道オンラインのデータだと「最内」「内」「中」「外」「大外」の5つが取れるのでもし使えるならそのほうが精度は高いはず(当然大外は不利なので、内有利の馬場とかで大外まわして上位食い込んでたりすると能力上位で狙い目のはず)

んでもって可視化してみた。

pandasとかmatplotlibとかまだよくわかってないので、もうちょっと頑張れる余地はありそうだけど、やっぱり可視化の表現力はTableauあたりのBIツールのほうが楽に作れそうな気がしている。