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)

注意:数据为虚构

总结

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

相关文章

  • 在Python中字典按值排序的实现方法

    在Python中字典按值排序的实现方法

    这篇文章主要介绍了在Python中字典按值排序的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • python 自定义装饰器使用及原理详解(最新推荐)

    python 自定义装饰器使用及原理详解(最新推荐)

    本文详细介绍了Python装饰器的原理和使用方法,包括简单的装饰器、带参数的装饰器、原函数的传参、保留原函数元数据以及类装饰器,通过这些讲解,读者可以全面了解装饰器的强大功能和应用技巧,感兴趣的朋友一起看看吧
    2025-02-02
  • 提升Python编程效率的列表操作方法示例

    提升Python编程效率的列表操作方法示例

    这篇文章主要为大家介绍了提升Python编程效率的列表操作方法示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-10-10
  • Pycharm鼠标光标切换实现方式

    Pycharm鼠标光标切换实现方式

    文章介绍了在使用Windows 10时,如果光标变成特殊形状(如箭头带有一个问号),可以通过点击键盘上的Insert键来切换回正常光标,此外,还介绍了如何使用快捷键(Win+Shift+S)来截取屏幕
    2026-01-01
  • Python 中eval()函数的正确使用及其风险分析(使用示例)

    Python 中eval()函数的正确使用及其风险分析(使用示例)

    eval()是一个功能强大的工具,但使用时必须非常小心,了解其工作原理和潜在的风险是确保安全使用的关键,通过遵循上述建议,可以在享受eval()带来的便利的同时,最大限度地减少安全风险,本文介绍Python 中`eval()`函数的正确使用及其风险分析,感兴趣的朋友一起看看吧
    2024-07-07
  • Python性能优化之让你的代码运行速度提升10倍的技巧分享

    Python性能优化之让你的代码运行速度提升10倍的技巧分享

    在日常开发中,我们常常会遇到Python代码运行缓慢的问题,通过一些巧妙的优化技巧,我们完全可以让代码的运行速度提升数倍甚至数十倍,下面小编就为大家介绍一下吧
    2025-11-11
  • Python Selenium异常处理的实例分析

    Python Selenium异常处理的实例分析

    在本篇内容里小编给大家分享了关于Python Selenium异常处理的实例分析内容,对此有兴趣的朋友们可以学习参考下。
    2021-02-02
  • python编写简单端口扫描器

    python编写简单端口扫描器

    这篇文章主要为大家详细介绍了python编写简单端口扫描器,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-09-09
  • python:目标检测模型预测准确度计算方式(基于IoU)

    python:目标检测模型预测准确度计算方式(基于IoU)

    今天小编就为大家分享一篇python:目标检测模型预测准确度计算方式(基于IoU),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01
  • 如何让利用Python+AI使静态图片动起来

    如何让利用Python+AI使静态图片动起来

    这篇文章主要介绍了如何让利用Python+AI使静态图片动起来,基于的GAN生成对抗网络围绕主题实现静态图片动起来的效果。具有一定的参考价值,需要的小伙伴可以参考一下
    2022-06-06

最新评论