亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在Python中使用具有相同ID的新記錄更新csv

如何在Python中使用具有相同ID的新記錄更新csv

慕桂英4014372 2023-07-05 18:04:19
我需要更新本地文件夾中具有相同 ID 的預先存在的 CSV。讓我詳細闡述一下這個問題。df1:Item_id  Country  Compay   1     Germany  sitz.co   2              likrds.co   3     Denmark  Axitr.co   4     Italy這是我的 df1,我想將此文件作為 CSV 導出到我的文件夾中。所以我這樣做了,df1.to_csv(r'folder_path\df1.csv',index=False)所以此時,我的文件夾中有 df1。假設我有 df2 和新的 item_ids 以及 df1 中的一些 item_ids。我想將 df2 附加到同一個文件中,如果該文件包含類似的 item_ids,它應該更新預先存在的記錄,并將新的 item_ids 記錄附加到該 CSV 中。df2:Item_id  Country   Compay   11    Argentina sitz.co   2     Russia    likrds.co   13    Denmark   Axitr.co   4     Italy     ghrx.codf2.to_csv(r'folder_path\df1.csv',mode='a',index=False)當我運行上面的代碼時,我的 CSV 附加了重復的記錄,但我需要根據項目 ID 使用新記錄更新記錄。所需_csv:Item_id  Country   Compay   1     Germany   sitz.co   2     Russia    likrds.co   3     Denmark   Axitr.co   4     Italy     ghrx.co   11    Argentina sitz.co   13    Denmark   Axitr.co
查看完整描述

2 回答

?
收到一只叮咚

TA貢獻1821條經驗 獲得超5個贊

glob這是使用和 的解決方案groupby+last:


import glob

list_of_files = glob.glob(r'folder_path\*.csv')

dfs = [pd.read_csv(i) for i in list_of_files]

output = pd.concat(dfs).groupby("Item_id",as_index=False).last()

   Item_id    Country     Compay

0        1    Germany    sitz.co

1        2     Russia  likrds.co

2        3    Denmark   Axitr.co

3        4      Italy    ghrx.co

4       11  Argentina    sitz.co

5       13    Denmark   Axitr.co

如果你只有 2 個數據框:


l = [df1,df2]

output = pd.concat(l).groupby("Item_id",as_index=False).last()


查看完整回答
反對 回復 2023-07-05
?
慕哥9229398

TA貢獻1877條經驗 獲得超6個贊

用于設置和DataFrame.set_index的索引,然后使用:df1df2Item_idDataFrame.combine_first

df = df2.set_index('Item_id')\

? ? ? ? .combine_first(df1.set_index('Item_id')).reset_index()

結果:


print(df)

? ?Item_id? ? Country? ? ?Compay

0? ? ? ? 1? ? Germany? ? sitz.co

1? ? ? ? 2? ? ?Russia? likrds.co

2? ? ? ? 3? ? Denmark? ?Axitr.co

3? ? ? ? 4? ? ? Italy? ? ghrx.co

4? ? ? ?11? Argentina? ? sitz.co

5? ? ? ?13? ? Denmark? ?Axitr.co


查看完整回答
反對 回復 2023-07-05
  • 2 回答
  • 0 關注
  • 164 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號