![見出し画像](https://assets.st-note.com/production/uploads/images/139973744/rectangle_large_type_2_5cdd0a0c9d6854e56a947d75f072d22a.png?width=800)
JRAレース結果【CSVファイル作成→MySQLインポート】③
本日はロバの日ですね!
エンプレス賞も開催されているようで、何か不穏で序盤から危険な開催となっておりました。
滅多に起きないカンパイ、1日2回もやっちまうの??
おーい、川崎競馬さん??絶対に運営アカンよー。
その内一回は危険スタート。
これは人為ミス、スターター発走判断がアカンでしょう、と。
(スタッフさんのご無事をお祈り致します。)
そして、交流戦では原君とか落馬。。。
(こちらもご無事をお祈り致します。)
もう、ユウガさんもこれじゃ激おこですよ、、これからの競馬開催大丈夫なん?
是非とも本当に無事な開催施行を祈ってやみません。
さて、、本題です。
すみません昨日1日中、脚質やペース、、ラップなどの検討を行っておりました。
それでですが、、カラムに入れる項目が大量になりました(苦笑)
以下となります。
create table jra_race_ms (
race_d_id BIGINT(15) NOT NULL PRIMARY KEY comment '拡張レースID',
Kaisai_Date DATE comment '日付',
Kaisai TEXT comment '開催',
Race_No INT(2) comment 'レース数',
Race_Name TEXT comment 'レース名',
Class TEXT comment 'クラス',
Course_Type VARCHAR(4) comment 'コース種別',
Distance INT(4) comment '距離',
Orbiting_Direct VARCHAR(2) comment '周回',
Race_Track VARCHAR(4) comment '馬場',
Weather VARCHAR(4) comment '天気',
Race_Course VARCHAR(6) comment 'コース',
Barrier INT(2) comment '枠番',
Horse_No VARCHAR(4) comment '馬番',
Entries INT(2) comment '出走頭数',
Horse_Name TEXT comment '馬名',
Horse_Gender VARCHAR(4) comment '性別',
Horse_Age INT(2) comment '馬齢',
Jockey_Name TEXT comment '騎手名',
Running_Ptn VARCHAR(6) comment '脚質',
Assigned_Wei FLOAT(3,1) comment '斤量',
Race_Time FLOAT(4,1) comment '走破タイム',
SP_Val FLOAT(3,1) comment 'SP値',
MPS_Val FLOAT(4,4) comment '1m進む秒数',
G3F_Fin FLOAT(3,1) comment '上がり3F',
G3F_Dif FLOAT(3,1) comment '上がり3F差',
Order_Arrival INT(2) comment '着順',
Length TEXT comment '着差',
Len_Sec_Dif FLOAT(3,1) comment '秒着差',
Furlong_Pass VARCHAR(15) comment '通過順',
Win FLOAT(4,1) comment '単勝オッズ',
OPR_Fault FLOAT(5,1) comment 'R結果の単勝断層',
Horse_Pop INT(2) comment '人気',
Weight INT(3) comment '馬体重',
Inc_Dec INT(3) comment '馬体重増減',
Lap_Tend VARCHAR(4) comment 'ラップ傾向',
Pace VARCHAR(6) comment 'ペース',
Settle VARCHAR(4) comment '決め手',
Trainer TEXT comment '調教師名',
Trainer_Aff TEXT comment '厩舎所属',
Owner TEXT comment '馬主名',
Prize_Money FLOAT(20,1) comment '賞金',
race_id BIGINT(14) comment 'レースID',
course_id INT(4) comment 'コースID',
horse_id BIGINT(11) comment '馬ID',
jockey_id VARCHAR(5) comment '騎手ID',
trainer_id VARCHAR(5) comment '調教師ID',
owner_id VARCHAR(7) comment '馬主ID'
)
default charset=utf8
comment='JRAレース用TBL';
DEFAULT NULLは止めました。
見慣れない情報が出ていますね、はい。
多少ゴニョゴニョして、データを結合して、、と。
脚質もプロットより培った方法論で登録できております。
これで馬の脚質別勝率や、騎手の脚質別勝率や複勝率なんかも算出可能となります。(何が得意か?とか)
以前に申した、「何を以て」というお題目はここに在ったりしました。
| race_d_id | Kaisai_Date | Kaisai | Race_No | Race_Name | Class | Course_Type | Distance | Orbiting_Direct | Race_Track | Weather | Race_Course | Barrier | Horse_No | Entries | Horse_Name | Horse_Gender | Horse_Age | Jockey_Name | Running_Ptn | Assigned_Wei | Race_Time | SP_Val | MPS_Val | G3F_Fin | G3F_Dif | Order_Arrival | Length | Len_Sec_Dif | Furlong_Pass | Win | OPR_Fault | Horse_Pop | Weight | Inc_Dec | Lap_Tend | Pace | Settle | Trainer | Trainer_Aff | Owner | Prize_Money | race_id | course_id | horse_id | jockey_id | trainer_id | owner_id |
+---------------+-------------+--------------+---------+-----------+-----------+-------------+----------+-----------------+------------+---------+-------------+---------+----------+---------+--------------------+--------------+-----------+-------------+-------------+--------------+-----------+--------+---------+---------+---------+---------------+--------+-------------+--------------+------+-----------+-----------+--------+---------+----------+--------+--------+----------+-------------+--------------------+-------------+--------------+-----------+------------+-----------+------------+----------+
| xxxxxxx | 2018-07-28 | 1回札幌1日目 | 1 | 2歳未勝利 | 2歳未勝利 | 芝 | 1800 | 右 | 良 | 晴 | 札幌 | 1 | 1 | 6 | コントラチェック | 牝 | 2 | ルメール | 逃げ | 54.0 | 110.1 | 58.9 | 0.0612 | 35.2 | -0.9 | 1 | | -1.2 | 1-1-1-1 | 1.1 | 6.9 | 1 | 458 | 4 | 後傾 | スロー | 稍瞬発 | 藤沢和雄 | 美浦 | キャロットファーム | 500.0 | 201801010101 | 1 | 2016104880 | 5339 | 0386 | 486800 |
| xxxxxxx | 2018-07-28 | 1回札幌1日目 | 1 | 2歳未勝利 | 2歳未勝利 | 芝 | 1800 | 右 | 良 | 晴 | 札幌 | 2 | 2 | 6 | ロングファイナリー | 牡 | 2 | 古川吉洋 | 差し | 54.0 | 114.0 | 56.8 | 0.0633 | 38.0 | 0.0 | 6 | 3 | 0.5 | 6-5-4-5 | 50.8 | 50.8 | 6 | 468 | -12 | 後傾 | スロー | 稍瞬発 | 高橋亮 | 栗東 | 中井敏雄 | 0.0 | 201801010101 | 1 | 2016102801 | 1015 | 1136 | 602002 |
このゴニョゴニョですが、ラップ傾向などは「3-3ラップ」を基準に算出しております。
後はスピード指数、1m/secなどなど今までのプロットに準拠したものも導入しました。
想定ラップ用のテーブル準備をしており、これも算出方法の検討をしている最中ですね。
上手く機械学習も合わせれば何か良いことがありそうな予感ですw
モデリングとか私なんかにゃハードル高くて、、スゲーむずいのですけどね。。。(´;ω;`)
前置きが長くなりましたが、既にテーブルにインポートされているのが判ると思います。
それではインポート方法をご説明致します<(_ _)>
CSVデータの準備とローカルファイルの許可
インポート前に、先ずはカラムと項目が合っているか?や、キャラセットはUTF8となっているか?改行コードはLFに合わせているか??などなど最終確認を行ってください。
それから、見出しの様にオマジナイをします。
コマンドプロンプトなどターミナルから以下の方法でログイン致します。
mysql -u root -p local_infile=on;
ローカルファイル(PC内のCSVデータ)を許可してログインしないとエラーが発生します。
又、これだけでは終わりません。
select @@local_infile;
+----------------+
| @@local_infile |
+----------------+
| 0 |
+----------------+
1 row in set (0.00 sec)
0だから許可していないよ~となっています。
なので、、、
set persist local_infile=1;
SET文で許可します。
select @@local_infile;
+----------------+
| @@local_infile |
+----------------+
| 1 |
+----------------+
1 row in set (0.01 sec)
これで許可されたので、インポート準備完了です。
LOADDATA施行
さて、LOADDATAを実行してCSVファイルを取り込みます。
LOAD DATA
LOCAL INFILE 'C:/PATH/XXXX.csv'
INTO TABLE TABLE名
CHARACTER SET utf8
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 LINES
;
インポートすべきファイルのディレクトリPATHは間違いのなきよう。
はい、、、本当にこれだけです!
4.6万件程度ならあっという間にインポートが終わってしまいます!w
そりゃ、数十万件とか一挙にインポートするのは流石にお勧め致しません。ですが、とてもじゃないけどフレーム化する時間を考えたら、物凄い速さで登録が出来て且つ、積もっていく訳ですね。
本当に入っているの???って思いますが、入っています。
select * from TABLE名 limit 100;
select * from TABLE名 ORDER BY ID DESC LIMIT 100;
ご注意ですが、select * from TABLE名とはしないでください。
あくまでも件数を絞って下さいませ、全てを抽出すると時間が掛かります。
上記のようなコマンドを使って下さいませ<(_ _)>
select count(ID) from TABLE名;
+------------------+
| count(ID) |
+------------------+
| 91928 |
+------------------+
1 row in set (0.23 sec)
2018と2019年を入れているのでこんな感じでしょう。
そんなこんなで大元のデータインポート編は終わりますが、次回もなにかしらで続きます!!
それでは!!!
この記事が気に入ったらサポートをしてみませんか?