为了账号安全,请及时绑定邮箱和手机立即绑定

如何在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条经验 获得超4个赞

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 关注
  • 98 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信