python pandas多条件筛选实现方式

 更新时间:2025年09月02日 09:22:15   作者:AGMTI  
用户在使用pandas进行多条件筛选时发现无现成方法,自行编写函数实现,数据为虚构,供参考学习,鼓励支持脚本之家

python pandas多条件筛选

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

  • 代码为:
import pandas as pd

def df_screen(df,cd):
    '''表筛选
        df:pd.DataFrame
        cd: {字段:[条件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)

注意:数据为虚构

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • django 实现编写控制登录和访问权限控制的中间件方法

    django 实现编写控制登录和访问权限控制的中间件方法

    今天小编就为大家分享一篇django 实现编写控制登录和访问权限控制的中间件方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • python sitk.show()与imageJ结合使用常见的问题

    python sitk.show()与imageJ结合使用常见的问题

    这篇文章主要介绍了python sitk.show()与imageJ结合使用常见的问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-04-04
  • Python OpenCV读取中文路径图像的方法

    Python OpenCV读取中文路径图像的方法

    这篇文章主要介绍了Python OpenCV读取中文路径图像的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07
  • Python曲线拟合详解

    Python曲线拟合详解

    这篇文章主要介绍了关于python曲线拟合,scipy.optimize中,curve_fit函数可调用非线性最小二乘法进行函数拟合,文中有详细的代码作为参考,需要的朋友可以阅读参考
    2023-04-04
  • 解析python 中/ 和 % 和 //(地板除)

    解析python 中/ 和 % 和 //(地板除)

    这篇文章主要介绍了python 中/ 和 % 和 //(地板除)的区别及简介,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2020-06-06
  • python requests模拟登陆github的实现方法

    python requests模拟登陆github的实现方法

    这篇文章主要介绍了python requests模拟登陆github的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • python3使用Pillow、tesseract-ocr与pytesseract模块的图片识别的方法

    python3使用Pillow、tesseract-ocr与pytesseract模块的图片识别的方法

    这篇文章主要介绍了python3使用Pillow、tesseract-ocr与pytesseract模块的图片识别的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • Django 中的Timezone 处理操作

    Django 中的Timezone 处理操作

    这篇文章主要介绍了Django 中的Timezone 处理操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04
  • opencv转换颜色空间更改图片背景

    opencv转换颜色空间更改图片背景

    这篇文章主要为大家详细介绍了opencv转换颜色空间更改图片背景,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-08-08
  • Django多app路由分发(纯后端)

    Django多app路由分发(纯后端)

    本文主要介绍了Django多app路由分发,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05

最新评论