对象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?
中的日期字段答案 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。