如何比较 Python pandas 中的两个数据帧并输出差异?

时间:2021-04-12 10:43:33

标签: python pandas dataframe

我有两个列数相同但行数不同的 df。

df1

   col1  col2
0     a    1,2,3,4
1     b    1,2,3
2     c    1

df2

   col1  col2
0     b    1,3
1     c    1,2
2     d    1,2,3
3     e    1,2

df1 是现有列表,df2 是更新列表。预期结果是 df2 中以前不在 df1 中的任何结果。

预期结果:

   col1  col2
0     c    2
1     d    1,2,3
2     e    1,2

我试过了

mask = df1['col2'] != df2['col2'] 

但它不适用于不同的 df 行。

1 个答案:

答案 0 :(得分:1)

通过col2列中的拆分值使用DataFrame.explode,然后将DataFrame.mergeright join和指示参数一起使用,仅通过boolean indexing过滤具有{{1}的行}} 和最后一个聚合 right_only:

join