pandasで MariaDBの読み出し


最近、機械学習方面に手を出し始めているので、メモ代わりに…。

競馬の競走結果のデータが保存されているデータベースのテーブルがあり、そのテーブルから、RaceIDが2019から始まるものを、dfに代入する。

import pandas as pd
from sqlalchemy import create_engine

engine = create_engine('mysql+mysqlconnector://[id]:[password]@[host]/[database_name]')
df=pd.read_sql_query('SELECT * FROM result_v where raceId like "2019%"', con=engine)

なお、テーブルには、順位(rank)が記憶されている。順位は、Nullableで、1~18までのいずれかの数値が含まれている。Nullの場合は、除外、取り消し、失格、中止の場合である。

順位がNullであるデータをdfから取り出す場合は、以下のようにすればよい。

df[df['rank'].isnull()]

一方、順位がNullであるデータをdfから取り除く場合は、以下のようにすればよい。

df[~df['rank'].isnull()]

データ型を変換するためには、以下のように、astypeを使う。

df['rank'] = df['rank'].astype(int)

また、dfのデータ型を調べるためには、df.info()を使う。


なお、以下のページを参考にした。

  • https://qiita.com/ekzemplaro/items/fe43d16e0247757b7338 (pandas で MariaDB の読み書き)
  • https://webtopi.biz/archives/1098 ([Python] mysql connectorを使おうとしたら「ModuleNotFoundError: No module named ‘mysql’」と出る)
  • https://qiita.com/propella/items/6480f6c8ef612cd2283e (SQLAlchemy から Pandas にデータを読み込む)
  • https://www.youtube.com/channel/UCDzwXAWu1zIfJuPTTZyWthw/videos?view=0&sort=da&flow=grid

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください