[英]pandas dataframe with Date index -> insert into MySQL
對象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數據庫中,特別是,在使用以下內容(以及對此的某些變化)時,日期字段變為null。
df.to_sql( name='existing_table',con=con, if_exists='append', index=True, index_label='date', flavor='mysql', dtype={'date': datetime.date})
要將此數據幀正確輸入到本地MySQL數據庫(以db中的“ date”作為日期字段),需要執行哪些步驟?
要將日期時間數據正確寫入SQL,您至少需要熊貓0.15.0。
從pandas 0.14開始,使用SQLAlchemy實施sql函數,以處理數據庫風味特定的差異。 因此,要使用to_sql
,您需要為其提供一個SQLAlchemy引擎,而不是簡單的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 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.