簡體   English   中英

在MySQL中插入忽略熊貓數據框

[英]insert ignore pandas dataframe into mysql

我想將整個熊貓數據幀“插入忽略”到mysql中。 有沒有一種方法可以在不循環行的情況下進行操作?

在dataframe.to_sql中,我僅看到if_exists'append'選項,但是在重復的唯一鍵上仍會繼續嗎?

考慮使用總是被熊貓替換的臨時表(具有最終表的確切結構),然后在游標調用中運行INSERT IGNORE

dataframe.to_sql('myTempTable', con, if_exists ='replace')

cur = con.cursor()
cur.execute("INSERT IGNORE INTO myFinalTable SELECT * FROM myTempTable")
con.commit()

在當前版本的pandas (0.20.3)之前,在熊貓中無法執行此操作。

文檔中所述, if_exists選項if_exists適用於表(不適用於行)。

if_exists : {‘fail’, ‘replace’, ‘append’}, default ‘fail’

fail :如果存在,則什么也不做。

replace :如果存在 ,則將其刪除,重新創建並插入數據。

append :如果存在 ,則插入數據。 如果不存在則創建。

通過循環

一次插入一行將減慢該過程

for x in xrange(data_frame.shape[0]):
    try:
        data_frame.iloc[x:x+1].to_sql(con=sql_engine, name="table_name", if_exists='append')
    except IntegrityError:
        # Your code to handle duplicates
        pass 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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