根据布尔掩码获取熊猫列名称

时间:2019-01-24 12:08:57

标签: python pandas

我有两个数据帧,df1df2,其中一个值在df2中已更改。 我正在尝试获取更改后的值的列名。

df1

    type method
0  variable   method1
1  variable   method1
2  variable   method1
3  variable   method1

df2

        type method
0    variable   method1
1    variable   method1
2    variable   method1
3  timeseries   method1

找到更改:

changes = df1.ne(df2)

更改:

    type  method
0  False   False
1  False   False
2  False   False
3   True   False

如何获取已更改列的列名?

2 个答案:

答案 0 :(得分:4)

使用DataFrame.any测试每列至少一个True,然后过滤列名称:

print (changes.any())
type       True
method    False
dtype: bool

print (changes.columns[changes.any()])
Index(['type'], dtype='object')

答案 1 :(得分:3)

在那附近;只需使用any,然后从您的一个数据帧中索引columns

res = df1.columns[df1.ne(df2).any()]
# Index(['type'], dtype='object')