import pandas as pd
temp1 = pd.DataFrame(index=arange(10), columns=['a','b'])
temp1['a'] = [1,2,2,3,3,4,4,4,9,11]
temp1['b'] = 'B'
temp2 = pd.DataFrame(index=arange(10), columns=['a','b'])
temp2['a'] = [1,2,3,4,5,6,7,8,9,10]
temp2['b'] = 'B'
如上面的脚本所示,我想从temp1
中选取a
未找到temp2
列的行。我可以在R中使用%in%
轻松完成,我怎么能在熊猫中做到这一点?
输出应该是一行,a
列是11
而列b
是B
答案 0 :(得分:0)
您可以使用isin
获取 所见的索引,然后否定布尔索引:
temp1[~temp1.a.isin(temp2.a)]
答案 1 :(得分:0)
您可以使用isin
执行布尔索引:
isin
将产生一个布尔索引:
In [95]:
temp1.a.isin(temp2.a)
Out[95]:
0 True
1 True
2 True
3 True
4 True
5 True
6 True
7 True
8 True
9 False
Name: a, dtype: bool
然后可以将其用作最终输出中的掩码:
In [94]:
# note the ~ this negates the result so equivalent of NOT
temp1[~temp1.a.isin(temp2.a)]
Out[94]:
a b
9 11 B