【发布时间】:2019-03-07 23:08:48
【问题描述】:
我有两个数据框,例如下面的 df1 和 df2 示例。我想比较数据框之间的值,并返回数据框在列中具有不同值的列。因此,在下面的示例中,它将返回 B 列。非常感谢任何提示。
df1
A B C
1 2 3
1 1 1
df2
A B C
1 1 3
1 1 1
【问题讨论】:
标签: 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
【问题讨论】:
标签: python-3.x pandas
使用的比较dataframes!=或ne()返回一个boolean dataframe,您可以使用任何()查找任何真值。这返回一个布尔系列,您可以自行索引。
s = (df1 != df2).any()
s[s].index
Index(['B'], dtype='object')
【讨论】:
在上面的例子中使用eq带all
df1.eq(df2).all().loc[lambda x : ~x].index
Out[720]: Index(['B'], dtype='object')
【讨论】: