我有两个数据帧,df1
和df2
,其中一个值在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
如何获取已更改列的列名?
答案 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')