获得B系列的元素不在A中

时间:2014-11-18 21:55:52

标签: python pandas

找出B中不属于A的元素的最有效方法是什么?

两组的索引列将用于比较。另一栏随附结果。

以下是一个示例,请记住A系列和B系列可能会变得很大:

print a
    c2
c1    
o80  a
o81  b

print b
    c2
c1    
o83  c
o81  b

这是期望的结果:

print c
    c2
c1    
o83  c

每次比较后,结果C将附加到正在运行的结果系列中。

我可以通过combine_first,比较结果等来完成这项工作,但它看起来并不优雅和简单,并且不能很好地扩展。

那些真正有经验的人的见解?

1 个答案:

答案 0 :(得分:2)

我只想使用逻辑索引:

c1 = pandas.Series([1, 2], index=['A', 'B'], name='c1')
c2 = pandas.Series([3, 4, 5], index=['A', 'B', 'C'], name='c2')
c2[~c2.index.isin(c1.index)]

告诉我:

C    5
Name: c2, dtype: int64