有的时候会经常遇到条件过滤的场景,这个时候可能经常使用isin或者是~来进行一步操作,而不是写条件语句的方式,这样来提高效率和简洁度。

1、直接根据条件进行索引,isin()接受一个列表,判断该列中元素是否在列表中

import numpy as np
import pandas as pd
df=pd.DataFrame(np.random.randn(4,4),columns=['A','B','C','D'])
df
Out[189]: A         B         C         D
0  0.289595  0.202207 -0.850390  0.197016
1  0.403254 -1.287074  0.916361  0.055136
2 -0.359261 -1.266615 -0.733625 -0.790208
3  0.164862 -0.649637  0.716620  1.447703
df['E'] = ['aa', 'bb', 'cc', 'cc']
df
Out[191]: A         B         C         D   E
0  0.289595  0.202207 -0.850390  0.197016  aa
1  0.403254 -1.287074  0.916361  0.055136  bb
2 -0.359261 -1.266615 -0.733625 -0.790208  cc
3  0.164862 -0.649637  0.716620  1.447703  cc
df.E.isin(['aa','cc'])
Out[192]:
0     True
1    False
2     True
3     True
Name: E, dtype: bool
df[df.E.isin(['aa','cc'])]
Out[193]: A         B         C         D   E
0  0.289595  0.202207 -0.850390  0.197016  aa
2 -0.359261 -1.266615 -0.733625 -0.790208  cc
3  0.164862 -0.649637  0.716620  1.447703  cc

2、根据多条件进行索引,此时用&(交集)或者|(并集)进行连接

df[df.E.isin(['aa'])|df.E.isin(['cc'])]
Out[194]: A         B         C         D   E
0  0.289595  0.202207 -0.850390  0.197016  aa
2 -0.359261 -1.266615 -0.733625 -0.790208  cc
3  0.164862 -0.649637  0.716620  1.447703  cc
df[df.E.isin(['aa'])]
Out[195]: A         B        C         D   E
0  0.289595  0.202207 -0.85039  0.197016  aa

3、通过字典的形式传递多个条件{‘某列’:[条件],‘某列’:[条件],}

df['D'] = [1,2,3,4]
df[df.isin({'D':[0,3],'E':['aa','cc']})]
Out[200]: A   B   C    D    E
0 NaN NaN NaN  NaN   aa
1 NaN NaN NaN  NaN  NaN
2 NaN NaN NaN  3.0   cc
3 NaN NaN NaN  NaN   cc

4、~相当于isnotin

df[~(df.E=='cc')]
Out[202]: A         B         C  D   E
0  0.289595  0.202207 -0.850390  1  aa
1  0.403254 -1.287074  0.916361  2  bb

【Python】详解pandas的isin索引和~反向索引相关推荐

  1. python替换缺失值_详解Pandas 处理缺失值指令大全

    前言 运用pandas 库对所得到的数据进行数据清洗,复习一下相关的知识. 1 数据清洗 1.1 处理缺失数据 对于数值型数据,分为缺失值(NAN)和非缺失值,对于缺失值的检测,可以通过Python中 ...

  2. python怎么画参数函数图像_详解pandas.DataFrame.plot() 画图函数

    首先看官网的DataFrame.plot( )函数 DataFrame.plot(x=None, y=None, kind='line', ax=None, subplots=False, share ...

  3. python read_excel header_详解pandas库pd.read_excel操作读取excel文件参数整理与实例

    除了使用xlrd库或者xlwt库进行对excel表格的操作读与写,而且pandas库同样支持excel的操作:且pandas操作更加简介方便. 首先是pd.read_excel的参数:函数为: pd. ...

  4. python read_excel 参数_详解pandas库pd.read_excel操作读取excel文件参数整理与实例

    详解pandas库pd.read_excel操作读取excel文件参数整理与实例 来源:中文源码网    浏览: 次    日期:2019年11月5日 详解pandas库pd.read_excel操作 ...

  5. python中的iloc函数_详解pandas中利用DataFrame对象的.loc[]、.iloc[]方法抽取数据

    pandas的DataFrame对象,本质上是二维矩阵,跟常规二维矩阵的差别在于前者额外指定了每一行和每一列的名称.这样内部数据抽取既可以用"行列名称(对应.loc[]方法)",也 ...

  6. dataframe groupby_详解pandas中的map、apply、applymap、groupby、agg.

    一.简介 pandas提供了很多方便简洁的方法,用于对单列.多列数据进行批量运算或分组聚合运算,熟悉这些方法后可极大地提升数据分析的效率,也会使得你的代码更加地优雅简洁. 本文就将针对pandas中的 ...

  7. 【原创干货】6000字、22个案例详解Pandas数据分析/预处理时的实用技巧,超简单...

    上两篇原创的文章,小编主要是讲了数据可视化方面的内容,但是好像看得人不是很多的样子(搞得小编心里拔凉拔凉的....) [硬核干货]4500字.10个案例分享几个Python可视化小技巧,助你绘制高质量 ...

  8. 一文详解Pandas

    一文详解Pandas 一.Pandas概述 二.Pandas数据结构 2.1 Series 2.2 DataFrame数据结构 二.数学与统计计算 三.DataFrame的文件操作 3.1 读取文件 ...

  9. python选择排序从大到小_经典排序算法和Python详解之(一)选择排序和二元选择排序...

    本文源自微信公众号[Python编程和深度学习]原文链接:经典排序算法和Python详解之(一)选择排序和二元选择排序,欢迎扫码关注鸭! 扫它!扫它!扫它 排序算法是<数据结构与算法>中最 ...

  10. python input与返回值-Python 详解基本语法_函数_返回值

    Python 详解基本语法 概要: 函数的返回值是函数重要的组成部分.函数的根本在于实现程序的部分功能,所以很多时候我们需要将函数执行后的结果返回给程序再由程序作出进一步的操作.可以说是函数的返回值令 ...

最新文章

  1. S-T平面图中利用最短路求最小割(BZOJ 1001)
  2. Docker 容器技术 — Overview
  3. 代码签名证书,让软件真正拥有姓名!
  4. 青禾BBS数据库查询语句(动网)
  5. Faster RCNN杂谈
  6. 【CCCC】L2-003 月饼 (25分),贪心
  7. springboot12 MVC自动配置原理
  8. Raki的读paper小记:Empower Entity Set Expansion via Language Model Probing
  9. 小数分频器vhdl实现_小数分频VHDL代码
  10. MCU远程升级方案,可解决升级错误死机问题
  11. 手机连接wifi时使用固定mac地址
  12. SCC计算机控制,计算机控制系统功能之监督控制-电脑自学网
  13. 2021-11-09 PMIC RK817 处理POWER键流程linux 部分的简单分析,dts 中会用 interrupt-parent interrupts去处理按键的中断。
  14. java mongodb gridfs_MongoDB-4 GridFS 文件存储
  15. 单相电、三相电的功率计算方法
  16. 网易2017春招笔试——集合
  17. 毕业相关-自动问答综述
  18. 面试.net资深程序员的前5分钟
  19. [Error] 'else' without a previous 'if'
  20. 低功耗蓝牙LE Audio Profile 详细介绍

热门文章

  1. 对泊松分布的一点理解
  2. 计算机开机长响一声,电脑开机一声长响三声短响是什么原因?
  3. Oracle创建用户与授予表空间与权限
  4. 不知道这些你就OUT了,2019年最常见又实用的Android开发面试题
  5. 计算机博士复试英语自我介绍,博士复试自我介绍中英文
  6. java获取本机的外网IP地址(亲测有效)
  7. 假币问题 (n枚硬币+未知轻重+DFS)
  8. html实现简单动画,编写自己的代码库(css3常用动画的实现)
  9. 学会自己测天气系列八卦基础 01
  10. html 外联 变 内联,Html 内联元素、外联元素 和 可变元素