【发布时间】:2020-05-21 20:05:23
【问题描述】:
我有两个 csv 文件,其中有一个名为“名称”的公共列。文件 2 将不断更新并在列中随机添加新值。我如何编写脚本来比较两列并找到差异,而不管新值放在 file2 中的什么位置。
其他解决方案只有在新值位于列末尾而不是在列内随机时才会发现差异。
我尝试过的代码(只在列底部输出新值,而不是在列中随机输出时):
df1 = pd.read_csv('file1.csv')
df2 = pd.read_csv('file2.csv')
new_df = (df1[['Name']].merge(df2[['Name']],on='Name',how = 'outer',indicator = True)
.query("_merge != 'both'")
.drop('_merge',axis = 1))
new_df.to_csv('file4.csv')
文件1:
Name
gfd454
3v4fd
th678iy
文件2:
Name
gfd454
fght45
3v4fd
th678iy
输出应该是:
Name
fght45
【问题讨论】:
-
请提供示例输入和输出以制作minimal reproducible example
-
@G.Anderson 完成
-
请使用您之前打开的问题进行澄清,而不是打开重复的问题
-
@G.Anderson 不幸的是它没有。这些选项仅在将它们添加到列的末尾时才会发现差异,但是这些值是随机添加的,因此如果将其随机添加到列中而不是末尾,则不会检测到
标签: python pandas csv concat difference