0
如何在使用Blaze的0123g將數據框存儲在postgres數據庫時忽略重複行?在使用Blaze的Odo添加到數據庫時忽略重複行
例如,我的第一3行存儲這樣的:
>>> odo(df[:3], 'postgresql:///my_db::my_table')
my_table
具有作爲主鍵列ID。如果我再添加幾個,但是這次是,包括前一行,我想跳過該行並添加其他行,而不是獲取IntegrityError
。
>>> odo(df[2:5], 'postgresql:///my_db::my_table')
IntegrityError: (psycopg2.IntegrityError) duplicate key value violates unique constraint ...
我該怎麼做?從數據庫加載ID
值和檢查重複對我來說似乎是昂貴的,如果數據庫有數百萬行。有沒有更好的選擇? 事情是這樣的:
INSERT...ON DUPLICATE KEY IGNORE
大火:0.8.3,Postgres的:9.4.4,Psycopg2:2.6.1
在寫入db之前,您可以不丟掉dups嗎? 'df.drop_duplicates()'你可以選擇傳遞你的ID列'df.drop_duplicates('ID')'實際上是想刪除重複的行? – EdChum
是的,但即使在此之後,我也不知道這些唯一ID中的一些是否已經存在於數據庫中。 – Kevad
您可以從數據庫中讀取ID並將其過濾掉 – EdChum