如何为Pandas dataframe实现“in”和“not in”

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (6109)

如何实现SQL的等价物INNOT IN?

我有一个包含所需值的列表。下面是一个场景:

df = pd.DataFrame({'countries':['US','UK','Germany','China']})
countries = ['UK','China']

# pseudo-code:
df[df['countries'] not in countries]

我目前的做法如下:

df = pd.DataFrame({'countries':['US','UK','Germany','China']})
countries = pd.DataFrame({'countries':['UK','China'], 'matched':True})

# IN
df.merge(countries,how='inner',on='countries')

# NOT IN
not_in = df.merge(countries,how='left',on='countries')
not_in = not_in[pd.isnull(not_in['matched'])]

但这似乎是个可怕的传说。有人能改进吗?

提问于
用户回答回答于

我通常对这样的行进行泛型过滤:

criterion = lambda row: row['countries'] not in countries
not_in = df[df.apply(criterion, axis=1)]

热门问答

程序员过节指南:如何用代码做一个月饼?

YINUXY

腾讯科技有限公司 · 高级架构工程师 (已认证)

一名摸着石头过河的资深小白
推荐
首先来张效果图把: image.png 实现步骤 1、首先我们需要导入画图和数据计算的相关库。 #导入画图和数据计算的相关库 import numpy as np from numpy import sin, cos, pi import matplotlib.pyplot ...... 展开详请

腾讯 99 公益日,技术如何改变公益未来?

在5G时代,会给公益发展趋势带来三个改变:一是公益的广度,传统的公益有了技术的支撑,参与范围会更广;二是基于5G的超快速度,公益会更高效;三是公益的深度会增加,以前做公益、做支援更容易被局限于时空。当然不管技术怎么改变,我们都是想让社会更美好,热爱公益的心和对待社会的温度是不变的...... 展开详请

作为人类高质量程序员,必须掌握哪些算法?

IT小马哥

北京天谱同盛教育科技有限公司 · JAVA高级研发经理 (已认证)

想做个有钱人,却误入程序世界的一个小码农。
推荐
程序 = 数据结构 + 算法 。数据是程序的中心。数据结构和算法两个概念间的逻辑关系贯穿了整个程序世界,首先二者表现为不可分割的关系。没有数据间的有机关系,程序根本无法设计。换言之数据结构是底层,算法就是高层。数据结构为算法提供服务。算法围绕数据结构操作。可以说没有算法的程序是没...... 展开详请

程序员如何维持对编程的热情?

一方面多上github,多实践新的开源项目。思考我能从这些开源项目中学到什么来改进自己的工作。新事物总能给人带来新的乐趣。另一方面定位问题,思考解决方案的过程在未解决问题以前总是无趣的。只有解决的瞬间才有最棒的成就感。长期做自己能力范围外的事容易有挫折感,比如思考数周没有方案的事...... 展开详请

程序员读别人的代码是一种什么样的心理体验?

推荐
以下案例为反面教材,大家不要模仿∠( ᐛ 」∠)_ 我接手了这个项目,发现整个系统对外交互的接口就这一个orderController(里面不止订单维度的接口。。。) 它果然幸不辱命2370行代码。(我看不下去了就新增了一个PartnerController,希望我走后con...... 展开详请

《黑神话:悟空》有哪些值得关注的游戏技术?

MintimateMintimate's Blog的作者嗷
推荐
还记得2013年的《斗战神》么?由冯骥(Yocar)作为主策划,杨奇作为美术设计一款优秀游戏。当时优秀的剧情,和游戏体验一骑绝尘。而现在,又是冯骥和杨奇大佬作为策划,开发《黑神话:悟空》更是未来可期。优秀的剧情不多说,网上解析很多,我们看看《黑神话:悟空》的游戏引擎。 这次我重点...... 展开详请

所属标签

扫码关注云+社区

领取腾讯云代金券