我们在使用pandas操作表格时,通常会使用到筛选功能,但我在网上查找了很多资料,pandas貌似没有相应的方法,因此我自己写了一个方法,代码为:

import pandas as pddef df_screen(df,cd):'''表筛选df:pd.DataFramecd: {字段:[条件1,条件2],} 数据格式字典'''df_cy = df.copy() idx_z = [ True for i in df_cy.index]orcom  = lambda a,b: [ any([a[i],b[i]]) for i in range(len(a))] # 列表a与列表b两两 或 比较addcom  = lambda a,b: [ all([a[i],b[i]]) for i in range(len(a))] # 列表a与列表b两两 与 比较for z in cd:if isinstance(cd[z],list):for index,c in enumerate(cd[z]):if index!=0:idx_c = orcom(idx_c,list(df_cy[z] == c))else:idx_c = list(df_cy[z] == c)else:idx_c = list(df_cy[z] == cd[z])idx_z = addcom(idx_z ,idx_c)return df_cy.loc[idx_z,:]

数据准备:

test = pd.DataFrame({'车型': ['皓影', '皓影', '皓影', '皓影', '皓影', '皓影', '皓影', '皓影', '皓影', '皓影', '本田CR-V', '本田CR-V', '本田CR-V', '本田CR-V', '本田CR-V', '本田CR-V', '本田CR-V', '本田CR-V'], '新能源类型': ['传统燃料', '传统燃料', '传统燃料', '常规混合动力', '传统燃料', '传统燃料', '传统燃料', '传统燃料', '常规混合动力', '常规混合动力', '传统燃料', '传统燃料', '传统燃料', '传统燃料', '常规混合动力', '常规混合动力', '插电式混合动力', '插电式混合动力'], '销量': [4, 176, 1, 35, 3, 1, 774, 38, 167, 17, 8, 1, 267, 3, 35, 3, 2, 1]})


函数调用

cd = {"车型":["皓影","本田CR-V"], # 需要筛选的字段及筛选的内容"新能源类型":["传统燃料","常规混合动力"]}
df_screen(test,cd)

注意:数据为虚构

python pandas多条件筛选相关推荐

  1. python多条件筛选数据-Python实现多条件筛选目标数据功能【测试可用】

    本文实例讲述了Python实现多条件筛选目标数据功能.分享给大家供大家参考,具体如下: python中提供了一些数据过滤功能,可以使用内建函数,也可以使用循环语句来判断,或者使用pandas库,当然在 ...

  2. Python Pandas 列数据筛选方法汇总

    Pandas 列数据筛选方法汇总 数据准备: 一.筛选得到指定的列 1.1 根据 label 选择特定的几列 1.2 选择单列的两种方式 1.3 通过正则表达式选择列 二.同时对 行 和 列 进行筛选 ...

  3. Pandas多条件筛选

    多条件筛选 gg = g[(g["x偏移"]<1) & (g["x偏移"]>-1)] [pandas中应用正则表达式的应用]

  4. Python Pandas 行数据筛选方法汇总

    Pandas 行数据筛选 一.准备数据 二.通过逻辑规则筛选(大于/小于等) 三.删除重复元素 三.显示最前面 / 最后面的 n 行 3.1 显示前面 n 行 3.2 显示后面 n 行 四.随机抽取 ...

  5. python numpy 多条件筛选

    numpy 条件筛选 np.where – array中满足条件的索引 import numpy as npa = np.arange(10) print(np.where(a>5)) prin ...

  6. python按指定条件筛选_求Python筛选数字集合内满足指定条件的数据方法,python筛选,唯一匹配是指mdash...

    求Python筛选数字集合内满足指定条件的数据方法,python筛选,唯一匹配是指&mdash 唯一匹配是指----任何找出来的一对数中,位于一个集合中的数只能和另一个集合中的唯一 一个数匹配 ...

  7. pandas 多条件筛选DataFrame

    可直接去看 pandas文档 Indexing and selecting data ##df[(条件1)&(条件2)&(条件3)&...](只能筛选行) df[(df[&qu ...

  8. python pandas loc 条件_python – pandas:填写nans给出的条件

    我正在努力寻找一些似乎微不足道的东西,但显然不是.一般情况:数据 – pandas数据帧 – 包含(以及其他)TOTAL_VISITS和NUM_PRINTS列. 目标:给定num_prints参数,找 ...

  9. python实现按条件筛选数据

    客户需求 查看某一个销售人员的销售额 数据存储情况如下图所示: 代码实现查看丽丽的销售额 import pandas as pddf1 = pd.read_excel("test.xlsx& ...

最新文章

  1. Java基础笔记17
  2. ML之PLiR之Glmnet:利用Glmnet算法求解ElasticNet回归类型问题(实数值评分预测)
  3. Linux运维并行批量操作命令pssh的使用
  4. php的cms是什么意思,phpcms是什么系统
  5. 数组随机排序(随手记)
  6. 简单盘点手游开发引擎
  7. css 背景色渐变 background linear-gradient
  8. 世界是数字的读后感:
  9. wpa_supplicant使用
  10. 智能家居 (9) ——人脸识别摄像头安装实现监控功能
  11. 使用webots对并联结构进行仿真
  12. SILK 和 ISAC 对 丢包的容错(接上一个保密文章)
  13. element-ui+vue给登录界面创建一个走马灯幻灯片切换
  14. 基于协同过滤算法的商品推荐购物电商系统
  15. python游戏编程书_Python游戏编程快速上手 第4版 (斯维加特著) 中文pdf扫描版[41MB]...
  16. Python中面向对象(学习笔记)
  17. Win32API UNICODE编码宽字节
  18. 阿里P9架构师简述从单机至亿级流量大型网站系统架构的演进过程
  19. 在vue中使用Google Recaptcha验证
  20. python-查找字符串

热门文章

  1. ttlink无线打印服务器,TTLINK TT-180U1打印机服务器 TCP/IP添加打印机的教程
  2. matlab绘图——根据方程组绘图和心形图绘制
  3. vue base64导出(pdfexcel ) 打印(pdf)
  4. python mysql_config not found_解决问题:OSError: mysql_config not found
  5. 电脑连不上网,WiFi没有显示出来
  6. Python数据提取-lxml模块
  7. 关于四叶玫瑰花数的问题
  8. Intel i226芯片4端口千兆以太网卡 2.5GPoE工业相机图像采集卡介绍
  9. uniapp设置整个页面背景颜色渐变,设置单个页面背景颜色
  10. JavaSE——IO流