今天有个同学问到,not in 的逻辑,想用 SQL 的select c_xxx_s from t1 left join t2 on t1.key=t2.key where t2.key is NULL 在 Python 中的逻辑来实现,实现了 left join 了(直接用join方法),但是不知道怎么实现where key is NULL。

其实,实现not in的逻辑,不用那么复杂,直接用isin函数再取反即可,下面就是isin函数的详解。

import pandas;

df = pandas.DataFrame({

'A': [1, 2, 3],

'B': ['a', 'b', 'f']

})

#如果是一个序列或者数组,

#那么判断该位置的值,是否在整个序列或者数组中

df.isin(

[1, 3, 12, 'a']

)

A      B

0   True   True

1  False  False

2   True  False

df = pandas.DataFrame({

'A': [1, 2, 3],

'B': [1, 4, 7]

})

#如果是一个dirt,

#那么就会首先判断对应的index是否存在,

#如果存在,那么就会判断对应的位置,在该列是否存在

df.isin({

'A': [1, 3],

'B': [4, 7, 12]

})

A      B

0   True  False

1  False   True

2   True   True

#如果不存在,那么全部为False,例如B列没有,那么全部为False

df.isin({

'A': [1, 3],

'C': [4, 7, 12]

})

A      B

0   True  False

1  False  False

2   True  False

df = pandas.DataFrame({

'A': [1, 2, 3],

'B': ['a', 'b', 'f']

})

other = pandas.DataFrame({

'A': [1, 3, 3, 2],

'B': ['e', 'f', 'f', 'e']

})

#如果是一个DataFrame,

#首先就是列名要存在,

#并且需要df中行列位置和B对应的行列位置一一匹配,才返回TRUE

df.isin(other)

A      B

0   True  False

1  False  False

2   True   True

other = pandas.DataFrame({

'C': [1, 3, 3, 2],

'D': ['e', 'f', 'f', 'e']

})

#因为AB列皆不在,因此都为False

df.isin(other)

A      B

0  False  False

1  False  False

2  False  False

嗯嗯?还没有讲到not in?哦哦,没有isnotin函数,取反的方法就是在函数前面加个 ~ ,好销魂的一飘。

~df.isin(other)

python中isin函数_pandas中的isin函数详解相关推荐

  1. Python的Django框架中forms表单类的使用方法详解2

    用户表单是Web端的一项基本功能,大而全的Django框架中自然带有现成的基础form对象,本文就Python的Django框架中forms表单类的使用方法详解. Form表单的功能 自动生成HTML ...

  2. python数组相减_对Python 中矩阵或者数组相减的法则详解

    对Python 中矩阵或者数组相减的法则详解 最近在做编程练习,发现有些结果的值与答案相差较大,通过分析比较得出结论,大概过程如下: 定义了一个计算损失的函数: def error(yhat,labe ...

  3. python调用包中的方法_python 中不同包 类 方法 之间的调用详解

    目录结构如下: 在hello.py中导入ORM.py这个文件的时候,采用 import ORMPackage.ORM 或者 import ORM u = User(id = 123, name='co ...

  4. 站长在线Python精讲:在Python中使用正则表达式的sub()方法替换字符串详解

    欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是<在Python中使用正则表达式的sub()方法替换字符串详解>. 在Python中使用正则表达式的sub()方法替换字符串. ...

  5. python中requests库的用途-python中requests库session对象的妙用详解

    在进行接口测试的时候,我们会调用多个接口发出多个请求,在这些请求中有时候需要保持一些共用的数据,例如cookies信息. 妙用1 requests库的session对象能够帮我们跨请求保持某些参数,也 ...

  6. python random randint_python中random.randint和random.randrange的区别详解

    在python中,通过导入random库,就能使用randint 和 randrange 这两个方法来产生随机整数.那这两个方法的区别在于什么地方呢?让我们一起来看看! 区别: randint 产生的 ...

  7. python os模块安装方法_基于python中pygame模块的Linux下安装过程(详解)

    一.使用pip安装Python包 大多数较新的Python版本都自带pip,因此首先可检查系统是否已经安装了pip.在Python3中,pip有时被称为pip3. 1.在Linux和OS X系统中检查 ...

  8. Python中第三方库Requests库的高级用法详解

    Python中第三方库Requests库的高级用法详解 虽然Python的标准库中urllib2模块已经包含了平常我们使用的大多数功能,但是它的API使用起来让人实在感觉不好.它已经不适合现在的时代, ...

  9. python中randint是什么意思_python中random.randint和random.randrange的区别详解

    在python中,通过导入random库,就能使用randint 和 randrange 这两个方法来产生随机整数.那这两个方法的区别在于什么地方呢?让我们一起来看看! 区别: randint 产生的 ...

  10. 站长在线Python精讲:在Python中使用正则表达式的split()方法分割字符串详解

    欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是<在Python中使用正则表达式的split()方法分割字符串详解>. 使用正则表达式分割字符串 在Python中使用正则表达 ...

最新文章

  1. C#使用BerkeleyDB操作简介
  2. 3d卷积神经网络_HSNets:使用卷积神经网络从2D轮廓预测3D人体模型
  3. 【RL】快速强化学习实战案例
  4. 神策数据成为 Adjust 在中国首家数据分析合作伙伴
  5. springboot加入com.fasterxml.jackson.core-jackson-databind依赖后报错Error creating bean with name ‘requestM
  6. 浅谈 Spring 框架注解的用法分析
  7. 前端学习(2041)vue之电商管理系统电商系统之只是在发布阶段生效
  8. asterisk使用MYSQL认证的配置方法
  9. sql 百分号_SQL思维导图和代码分享
  10. CTO职场解惑指南系列(一)
  11. 【软考】(五)网络互联设备
  12. 如何增加Win2003, Win2008下的文件类型下载
  13. Android开发 环境搭建(ubuntu)
  14. 漫谈Web Feed、RSS、原文链接和转贴
  15. 【偶遇小bug】浏览器无法翻译此网页解决
  16. 君正T21 SDK编译注意事项
  17. VMware(威睿)后端开发笔试题总结
  18. 第六章:纯策略纳什均衡【小结】
  19. 羊吃人,把人们赶走,
  20. eCPRI带宽与CPRI带宽需求为什么相差4倍?

热门文章

  1. 2021-2027全球与中国聊天机器人生成器软件市场现状及未来发展趋势
  2. HDC开发者盛典 | 破解创业老板高效制果汁奥秘挑战!赢取代金券、按摩枕、收纳袋等礼品~
  3. android编程strings,Android开发: strings.xml文件中的错误
  4. Snap是如何用“苹果战略”突破Facebook封锁的?
  5. vue 监听返回按钮
  6. 服务器安装snmp协议,snmp协议在windows下的安装与配置
  7. 【教程】如何让ChatGPT生成图片?最新指令分享
  8. Web漏洞的挖掘与利用
  9. 渡我不渡她用计算机怎么弹,抖音渡我不渡她手势舞分解 渡我不渡她手势舞教程...
  10. display:flex属性 justify-content: space-between和flex-flow:wrap一起使用的问题