PythonのDataFrameからMySQLへinsertする
こんな塩梅でinsertして割と楽かなと思ったけど
SQLAlchemyを使えとのワーニングが出ている。
In [42]: d = {'insert_date': ['2016-01-01'], 'close' : [1000]} In [43]: frame=pandas.DataFrame(data=d) In [44]: pycon = pymysql.connect(host="localhost", user="dokechin",password="dummy",database="jognavi") In [45]: pandas.io.sql.to_sql(name='NI225',con=pycon,frame=frame,flavor='mysql', if_exists='append',index=False) ipython-script.py:1: FutureWarning: The 'mysql' flavor with DBAPI connection is deprecated and will be removed in future version s. MySQL will be further supported with SQLAlchemy connectables. if __name__ == '__main__':
むむぅ。また新キャラ登場か。でもAnaconda入れたら?SQLAlchemyとやらはインストールされているみたいでこれがやっぱり標準的な使い方なのかもしれないので、こちらを使うように変えてみよう。そうしよう。
しかし・・・
In [5]: engine = sqlalchemy.create_engine("mysql://dokechin:dummy@localhost/jognavi") ImportError: No module named 'MySQLdb'
MySQLdbはWindows7(64bit),Python3.5.1では鬼門でインストールできないので・・
結局ワーニングのまま使おう。
SQLAlchemy+pymysqlの組み合わせも使える
PyramidでSQLAlchemyでMySQLに接続する | Python Knowledge
こんな感じかな
In [5]: engine = sqlalchemy.create_engine("mysql+pymysql://dokechin:dummy@localhost/jognavi?charset=utf8&use_unicode=1")