首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >大熊猫数据栏的匹配

大熊猫数据栏的匹配
EN

Stack Overflow用户
提问于 2014-07-29 09:08:53
回答 2查看 1K关注 0票数 1
代码语言:javascript
运行
复制
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%轻松地完成它,我如何在熊猫上这样做呢?

更新01

输出应为一行,其中列a11,列bB

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-07-29 09:16:31

可以使用isin执行布尔索引:

isin将生成一个布尔索引:

代码语言:javascript
运行
复制
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

然后,可以在最后的输出中使用它作为掩码:

代码语言:javascript
运行
复制
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
票数 0
EN

Stack Overflow用户

发布于 2014-07-29 09:16:26

您可以使用isin获取所看到的索引,然后否定布尔索引:

代码语言:javascript
运行
复制
temp1[~temp1.a.isin(temp2.a)]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25011761

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档