pandas is in和not in的使用说明
作者:yyyyyyyyyyang 发布时间:2023-04-04 22:06:11
标签:pandas,is,in,not,in
简介
pandas按条件筛选数据时,除了使用query()方法,还可以使用isin和对isin取反进行条件筛选.
代码
import pandas as pd
df = pd.DataFrame({'a':[1, 2, 3, 4, 5, 6],
'b':[1, 2, 3, 4, 5, 6],
'c':[1, 2, 3, 4, 5, 6]})
filter_condition = {'a':[1, 2, 3]}
df_in = df[df.isin(filter_condition)['a']]
df_notin = df[~df.isin(filter_condition)['a']]
df.isin(filter_condition)
a b c
0 True True False
1 True True False
2 True False False
3 False False False
4 False False False
5 False False False
使用总结
pandas使用isin时,返回DataFrame中存储的数据为是否满足筛选条件的boolean,可以通过boolean对DataFrame对数据进行筛选。
补充:pandas中isin()函数及其逆函数使用
我使用这个函数就是用来清洗数据,删选过滤掉DataFrame中一些行。
布尔索引
这里你需要知道DateFrame中布尔索引这个东西,可以用满足布尔条件的列值来过滤数据,如下
>>> df=pd.DataFrame(np.random.randn(4,4),columns=['A','B','C','D'])
>>> df
A B C D
0 -0.018330 2.093506 -0.086293 -2.150479
1 0.104931 -0.271810 -0.054599 0.361612
2 0.590216 0.218049 0.157213 0.643540
3 -0.254449 -0.593278 -0.150455 -0.244485
>>> df.A>0#布尔索引
0 False
1 True
2 True
3 False
Name: A, dtype: bool
#布尔索引应用
>>> df[df.A>0]
A B C D
1 0.104931 -0.271810 -0.054599 0.361612
2 0.590216 0.218049 0.157213 0.643540
>>>
isin()
添加一列E
>>> df['E']=['a','a','c','b']
>>> df
A B C D E
0 -0.018330 2.093506 -0.086293 -2.150479 a
1 0.104931 -0.271810 -0.054599 0.361612 a
2 0.590216 0.218049 0.157213 0.643540 c
3 -0.254449 -0.593278 -0.150455 -0.244485 b
>>> df.E.isin(['a','c'])
0 True
1 True
2 True
3 False
Name: E, dtype: bool
>>> df.isin(['b','c'])#整个df也同样适用
A B C D E
0 False False False False False
1 False False False False False
2 False False False False True
3 False False False False True
#应用
>>> df[df.E.isin(['a','c'])]
A B C D E
0 -0.018330 2.093506 -0.086293 -2.150479 a
1 0.104931 -0.271810 -0.054599 0.361612 a
2 0.590216 0.218049 0.157213 0.643540 c
>>>
isin()接受一个列表,判断该列中元素是否在列表中。
同时对多个列过滤,可以如下使用
df[df[某列].isin(条件)&df[某列].isin(条件)]
#应用
>>> df.D=[0,1,0,2]
>>> df[df.E.isin(['a','d'])&df.D.isin([0,])]
A B C D E
0 -0.01833 2.093506 -0.086293 0 a
也可以
不推荐,你试一下就知道
df.isin({
'某列':[条件],
'某列':[条件],
})
#应用
>>> df.D=[0,1,0,2]
>>> df
A B C D E
0 -0.018330 2.093506 -0.086293 0 a
1 0.104931 -0.271810 -0.054599 1 a
2 0.590216 0.218049 0.157213 0 c
3 -0.254449 -0.593278 -0.150455 2 b
>>> df[df.isin({'D':[0,3],'E':['a','d']})]
A B C D E
0 NaN NaN NaN 0.0 a
1 NaN NaN NaN NaN a
2 NaN NaN NaN 0.0 NaN
3 NaN NaN NaN NaN NaN
#没错这不适合选出一行
>>> df.isin({'D':[0,3],'E':['a','d']})
A B C D E
0 False False False True True
1 False False False False True
2 False False False True False
3 False False False False False
isin()的逆函数
告诉你没有isnotin,它的反函数就是在前面加上 ~ ,其他用法同上。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。
来源:https://blog.csdn.net/weixin_42764612/article/details/89600903
![](https://www.aspxhome.com/images/zang.png)
![](https://www.aspxhome.com/images/jiucuo.png)
猜你喜欢
- 一.使用DOM生成和读取XML文件 实例一: <?php //Creates XML string and XML document
- 最近项目中需要实现两组图片对比,并能将两者的区别标识出来。在网上搜索一大堆找到一篇大神的文章,最终实现该功能,在这里记录下:想要实现此dem
- 很有创意的鼠标指针风筝,看起来非常有意思。在网络上看到的,一下也想不起来是那里的了,所以特别说一下图片是来自网络的,版权归作者所有。
- 毫无疑问,这个世界设计无处不在,优美的设计会得到会心的微笑和由衷的赞赏。然而,想从事设计或在设计边缘的人们未必有机会学习专业的设计。实际上,
- 刚开始时,这个表的字段很少(10个以内),前开发者把这个表的所有存储过程与触发器以及表函数全是写死了。用户每添加一些字段,都需要手动去更改这
- 快照复制是在数据库之间对数据以及数据库对象进行复制并进行同步,以确保多个数据库之间一致性的一个法宝。简单的说,快照复制就是实现把一个数据库服
- 本文实例讲述了PHP判断是否微信访问的方法。分享给大家供大家参考,具体如下:在开发中有时需要禁止或者仅允许微信浏览器进行访问,则此时就需要对
- 为什么使用三方支付? 再没有三方支付平台之前,用户发起支付请求的时候,用户要去和银行签约(转账),特别的不方便,为了解决这些问题,就有了三
- 1提取 PDF 内容# pip install PyPDF2 安装 PyPDF2import PyPDF2from PyPDF2
- TensorFlow训练网络有两种方式,一种是基于tensor(array),另外一种是迭代器两种方式区别是:第一种是要加载全部数据形成一个
- 本文实例为大家分享了python实现电子书翻页的具体代码,供大家参考,具体内容如下1.题目:电子书翻页:(1)自动翻页:每次默认读三行,读完
- 1.安装anaconda(anaconda内置python在内的许多package,所以不用另外下载python)可以点击下面的清华开源软件
- Flask是一个Python编写的Web 微框架,让我们可以使用Python语言快速实现一个网站或Web服务。本文参考自Flask官方文档,
- 栈是一种后进先出(LIFO)的数据结构,在实际生活和工作中也很常见。比如,在餐厅里的一摞盘子,总是从上面先取,也就是最后放到上面的先被取走。
- 花了两周时间,利用工作间隙时间,开发了一个基于Django的项目任务管理Web应用。项目计划的实时动态,可以方便地被项目成员查看(^_^又重
- torch.matmul()语法torch.matmul(input, other, *, out=None) → Ten
- # -*- coding:utf-8 -*-# python3.3.3import sys,time,re,urllib.par
- 万众瞩目的 Firefox 3 从昨天开始可以下载了,用“铺天盖地”四个字来形容她的宣传一点都不为过。大多数的广告还是她的fans自发进行的
- ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。E
- 获取CPU信息我们先来获取CPU的信息:>>> import psutil>>> psutil.cpu_