返回数据框的值不同的列

时间:2018-10-02 19:05:33

标签: python-3.x pandas

我有两个数据框,例如下面的df1和df2示例。我想比较数据框之间的值,并返回数据框在列中具有不同值的列。因此,在下面的示例中,它将返回B列。所有提示都非常重要。

df1

A B C
1 2 3
1 1 1

df2

A B C
1 1 3
1 1 1

2 个答案:

答案 0 :(得分:3)

使用!=或ne()比较数据框将返回一个布尔数据框,您可以在该布尔数据框上使用any()查找任何True值。这将返回一个布尔序列,您可以对其进行索引。

s = (df1 != df2).any()
s[s].index

Index(['B'], dtype='object')

答案 1 :(得分:1)

在上面的示例中,将eqall一起使用

df1.eq(df2).all().loc[lambda x : ~x].index
Out[720]: Index(['B'], dtype='object')