2016-10-27 100 views
2

我想获取对数据框唯一的列。比较2个数据帧的列

DF_A有10列 DF_B有3列(DF_A中的所有三个匹配列名称)。

我用的是前:

cols_to_use = DF_A.columns - DF_B.columns。

由于我的熊猫更新,我得到这个错误: 类型错误:无法与此索引类型进行

什么我应该现在做的呢?

谢谢!

+0

试试这个:'cols_to_use = DF_A.columns.difference(DF_B.columns)' – MaxU

回答

1

您可以使用difference方法:

演示:

In [12]: df 
Out[12]: 
    a b c d 
0 0 8 0 3 
1 3 4 1 7 
2 0 5 4 0 
3 0 9 7 0 
4 5 8 5 4 

In [13]: df2 
Out[13]: 
    a d 
0 4 3 
1 3 1 
2 1 2 
3 3 4 
4 0 3 

In [14]: df.columns.difference(df2.columns) 
Out[14]: Index(['b', 'c'], dtype='object') 

In [15]: cols = df.columns.difference(df2.columns) 

In [16]: df[cols] 
Out[16]: 
    b c 
0 8 0 
1 4 1 
2 5 4 
3 9 7 
4 8 5 
+0

有道理 - 谢谢! – user1911092