如何筛选同时包含两个指定子字符串的DataFrame列名

霞舞

霞舞

2026-06-15

136人浏览

原创

如何筛选同时包含两个指定子字符串的DataFrame列名

本文介绍如何使用Pandas高效筛选出列名中同时包含“software”和“package”(不区分大小写)的DataFrame列,避免复杂正则表达式,通过布尔索引实现简洁、可读、健壮的列过滤。

本文介绍如何使用pandas高效筛选出列名中**同时包含“software”和“package”(不区分大小写)**的dataframe列,避免复杂正则表达式,通过布尔索引实现简洁、可读、健壮的列过滤。

在实际数据分析中,常需根据列名语义动态筛选字段——例如提取所有与“软件包”相关的列(如 'Software Package'、'Local Software Packages')。此时,关键在于同时满足多个子字符串存在性条件,而非任一匹配(如 | 正则逻辑)。错误地使用 regex='software.*package|package.*software' 不仅冗长,还可能因顺序或空格导致漏匹配;而基于字符串方法的布尔掩码则更直观、稳定且性能更优。

推荐做法是分别构建两个不区分大小写的布尔掩码,再用逻辑与(&)组合:

# 创建两个独立的布尔条件
m1 = df.columns.str.contains('software', case=False)  # 匹配含 "software" 的列名
m2 = df.columns.str.contains('package', case=False)   # 匹配含 "package" 的列名

# 同时满足两个条件 → 筛选目标列
filtered_df = df.loc[:, m1 & m2]

优势说明:

豆绘AI
豆绘AI

豆绘AI是国内领先的AI绘图与设计平台,支持照片、设计、绘画的一键生成。

下载
  • case=False 自动覆盖 Software/SOFTWARE/software 等变体,无需手动枚举大小写组合;
  • str.contains() 默认支持子串匹配(非全词匹配),自然适配 'Software Package'、'Software XYZ Packages' 等含空格或中间字符的场景;
  • 布尔索引运算清晰表达逻辑关系,易于调试与扩展(如后续增加 m3 = ... 条件)。

若仅需列名列表(而非子DataFrame),直接索引列索引即可:

selected_columns = df.columns[m1 & m2].tolist()
# 输出示例:['Local Software Packages', 'Software XYZ Packages', 'Software Package']

⚠️ 注意事项:

  • str.contains() 默认对 NaN 列名返回 False,若原始列名含缺失值,无需额外处理;
  • 若需精确匹配单词边界(如排除 'software_update' 或 'packaging_tool'),可启用正则并添加 \b 边界符:
    m1 = df.columns.str.contains(r'\bsoftware\b', case=False, regex=True)
    m2 = df.columns.str.contains(r'\bpackage\b', case=False, regex=True)
  • 避免在 regex= 中拼接 | 多条件(如 'software|package'),这表示“或”关系,与需求相悖。

综上,利用 Pandas 字符串方法链式构建多条件布尔掩码,是处理此类列名筛选任务最简洁、可靠且符合 Pythonic 风格的实践方式。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
Python 时间序列分析与预测
Python 时间序列分析与预测

本专题专注讲解 Python 在时间序列数据处理与预测建模中的实战技巧,涵盖时间索引处理、周期性与趋势分解、平稳性检测、ARIMA/SARIMA 模型构建、预测误差评估,以及基于实际业务场景的时间序列项目实操,帮助学习者掌握从数据预处理到模型预测的完整时序分析能力。

2025.12.04

149

15

Python 数据清洗与预处理实战
Python 数据清洗与预处理实战

本专题系统讲解 Python 在数据清洗与预处理中的核心技术,包括使用 Pandas 进行缺失值处理、异常值检测、数据格式化、特征工程与数据转换,结合 NumPy 高效处理大规模数据。通过实战案例,帮助学习者掌握 如何处理混乱、不完整数据,为后续数据分析与机器学习模型训练打下坚实基础。

2026.01.31

130

21

Python数据分析与Pandas高级实战
Python数据分析与Pandas高级实战

本专题围绕 Python 数据分析展开,系统讲解 Pandas 的高级用法,包括数据清洗、透视表、时间序列分析以及多表合并与分组操作。通过实战案例,帮助开发者掌握高效处理与分析数据的方法,提高数据处理效率与分析能力。

2026.04.13

69

25

Maven零基础入门教程
Maven零基础入门教程

本合集由PHP中文网精心整理,提供Maven零基础入门到完整使用的保姆级教程。内容涵盖环境安装、核心配置、仓库管理及项目构建等核心知识点。通过详细步骤解析与代码示例,助你快速掌握Maven的依赖管理与自动化构建,轻松解决Java项目中的各种痛点,是新手入门与进阶的必备指南。

2026.08.05

1

18

Maven安装及配置教程
Maven安装及配置教程

本合集由PHP中文网精心整理,提供Maven安装配置与环境配置详情指南。内容涵盖Maven下载、解压安装、环境变量配置、阿里云镜像加速及本地仓库修改等全流程。教程通俗易懂,帮助开发者轻松解决依赖管理难题,快速掌握Maven核心构建技能,是Java开发者的必备实战指南。

2026.08.05

0

24

Selenium WebDriver元素定位与页面操作教程
Selenium WebDriver元素定位与页面操作教程

本专题整理Selenium WebDriver元素定位、XPath、CSS Selector、等待机制、窗口切换、Frame处理、Alert弹窗、Cookie操作和文件上传等核心用法。

2026.08.05

3

26

Selenium Grid分布式测试与并行执行教程
Selenium Grid分布式测试与并行执行教程

本专题整理Selenium Grid架构、远程WebDriver、并行测试、Docker部署、Kubernetes动态Grid、浏览器矩阵和测试环境扩展方法,适合进阶自动化测试团队使用。

2026.08.05

1

18

Selenium常见报错排查与自动化测试稳定性
Selenium常见报错排查与自动化测试稳定性

本专题整理Selenium常见报错、驱动版本问题、元素找不到、点击失败、等待超时、浏览器闪退、脚本不稳定和测试用例维护方法。

2026.08.05

0

17

墨刀AI提示词教学
墨刀AI提示词教学

本合集由PHP中文网精心整理,为您提供全面的墨刀AI提示词教学。内容涵盖高质量原型撰写公式与实操窍门,助您轻松掌握AI设计工具。无论是零基础入门还是进阶技巧,都能让您快速上手,大幅提升产品设计与协作效率。

2026.08.04

11

21

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.4万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 131.8万人学习