首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >比较两个文件,更新已更改的行,并添加新行

比较两个文件,更新已更改的行,并添加新行
EN

Stack Overflow用户
提问于 2022-02-15 19:51:46
回答 1查看 112关注 0票数 1

我有两个文件,一个主文件和一个新的数据文件。新的数据文件是每天提供的,并包含最新的数据。这可以包括主文件中已经存在的重复行、带有一些新值的已更改的行以及全新的行。

如何使用所有已更改的/新行快速更新主文件?

所需输出的示例:

主文件内容:

代码语言:javascript
复制
ID,Format,Output,FontSize,isDefault
1,LP,LETTER,14,False
2,LP,LETTER,16,False
3,LP,LETTER,18,True
4,LP,LETTER,20,False

新档案内容:

代码语言:javascript
复制
ID,Format,Output,FontSize,isDefault
2,LP,LETTER,16,False
3,AU,LETTER,18,False
4,BR,LETTER,20,False
5,LP,LETTER,22,False
6,LP,LEDGER,24,False
7,LP,LEDGER,36,False

最终档案内容:

代码语言:javascript
复制
ID,Format,Output,FontSize,isDefault
1,LP,LETTER,14,False
2,LP,LETTER,16,False
3,AU,LETTER,18,False
4,BR,LETTER,20,False
5,LP,LETTER,22,False
6,LP,LEDGER,24,False
7,LP,LEDGER,36,False

如您所见,第2行是完全重复的,因此删除了;第3行和第4行有一些更新的值,这些值将被纳入最终输出;第5-7行是全新的,并添加到最终输出中。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-16 12:22:18

使用Pandas,concat文件然后是drop_duplicates

代码语言:javascript
复制
df1 = pd.read_csv('master.csv')
df2 = pd.read_csv('update.csv')

df3 = pd.concat([df2, df1]).drop_duplicates('ID').sort_values('ID').to_csv('final.csv', index=False)

final.csv

代码语言:javascript
复制
ID,Format,Output,FontSize,isDefault
1,LP,LETTER,14,False
2,LP,LETTER,16,False
3,AU,LETTER,18,False
4,BR,LETTER,20,False
5,LP,LETTER,22,False
6,LP,LEDGER,24,False
7,LP,LEDGER,36,False
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71132546

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档