簡體   English   中英

帶有日期索引的熊貓數據框->插入MySQL

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM