带有日期索引的pandas数据框 - >插入MySQL

时间:2015-07-23 09:13:29

标签: python mysql pandas mysql-python

对象df的类型为pandas.core.frame.DataFrame。

In [1]: type(df)
Out[1]: pandas.core.frame.DataFrame

df的索引是DatetimeIndex

In [2]: type(df.index)
Out[2]: pandas.tseries.index.DatetimeIndex

con提供了一个有效的MySQLdb连接

In [3]: type(con)
Out[3]: MySQLdb.connections.Connection

我无法正确地将此数据框输入MySQL数据库,具体而言,使用以下内容时日期字段为空(以及此处的一些变体)。

df.to_sql( name='existing_table',con=con, if_exists='append', index=True, index_label='date', flavor='mysql', dtype={'date': datetime.date})

将此数据框正确输入本地MySQL数据库所需的步骤是' date'作为db?

中的日期字段

1 个答案:

答案 0 :(得分:0)

要正确地将日期时间数据写入SQL,至少需要pandas 0.15.0。

从pandas 0.14开始,使用SQLAlchemy实现sql函数来处理数据库特定于风格的差异。因此,要使用to_sql,您需要提供SQLAlchemy engine而不是普通的MySQLdb连接:

from sqlalchemy import create_engine
engine = create_engine('mysql+mysqldb://....')

df.to_sql('existing_table', engine, if_exists='append', index=True, index_label='date')

注意:您不再需要提供flavor关键字。

除了sqlite之外,不再支持将简单的DBAPI连接写入SQL。

有关详细信息,请参阅http://pandas.pydata.org/pandas-docs/stable/io.html#io-sql