讲师中心 微信公众号
AI工具推荐 视频效率加速

Pandas 中按行执行布尔运算的高效方法

雨伟小哥_2047

雨伟小哥_2047

发布时间:2026-02-15 13:43:10

|

573人浏览过

|

来源于php中文网

原创

Pandas 中按行执行布尔运算的高效方法

本文介绍如何在 pandas dataframe 中高效、向量化地实现“按行逻辑或”(any)操作,快速生成新布尔列,避免低效的 python 循环。

本文介绍如何在 pandas dataframe 中高效、向量化地实现“按行逻辑或”(any)操作,快速生成新布尔列,避免低效的 python 循环。

在数据处理中,经常需要基于多列布尔值按行进行逻辑聚合——例如判断某一行中是否至少有一个值为 True,并据此生成新列。这种需求看似简单,但若误用全局聚合函数(如未指定轴的 df.any()),极易得到错误结果:默认 axis=0 会对每列单独计算,返回一个布尔 Series,而非逐行判断。

正确做法是显式指定 axis=1,使 DataFrame.any() 沿行方向(即对每一行的多个列值)执行逻辑或运算。该操作完全向量化,底层由 NumPy 高效实现,时间复杂度为 O(n×m),远优于 apply(lambda x: x.any(), axis=1) 或显式 for 循环。

以下是一个完整示例:

import pandas as pd

# 构造示例 DataFrame
df = pd.DataFrame({
    'a': [True,  False, False],
    'b': [False, True,  False],
    'c': [True,  False, False]
})

# ✅ 正确:按行判断 a/b/c 中是否任一为 True
df['d'] = df[['a', 'b', 'c']].any(axis=1)

print(df)

输出:

      a      b      c      d
0  True  False   True   True
1 False   True  False   True
2 False  False  False  False

? 关键说明:

  • df.any(axis=1) 默认作用于所有布尔/可转换列;若 DataFrame 含非布尔列(如数值、字符串),建议显式传入列子集 df[['a','b','c']].any(axis=1),避免隐式类型转换异常或意外包含无关列。
  • axis=1 表示“跨列操作”,即对每一行内指定列的值做逻辑或;axis=0(默认)则是“跨行操作”,对每列内所有值做逻辑或。
  • 类似地,all(axis=1) 可实现“行内全为 True 才返回 True”的逻辑与操作。

⚠️ 注意事项:

  • 若列中存在缺失值(NaN),any() 默认将 NaN 视为 False(即不阻断 True 传播);若需严格处理空值,可先使用 fillna(False) 显式清洗。
  • 对于超大规模数据(千万级行),确保列数据类型为 boolean 或 bool(而非 object),以获得最佳性能——可通过 df.astype({'a': 'boolean'}) 启用支持三态逻辑(True/False/)的 nullable 布尔类型。

总之,df[cols].any(axis=1) 是实现按行布尔聚合最简洁、最高效的内置方案,兼具可读性与性能,应作为首选范式。

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

热门AI工具

更多
PixPix
PixPix Hot

PixPix是一款面向电商视觉生产的AI商品图生成工具。

讯飞智作

讯飞智作是一款AI视频创作工具,AI文本配音工具,数字人课程、营销视频制作。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

Flowith
Flowith Hot

Flowith是一款基于画布和智能体工作流的 AI 协作工作空间。

小橡皮AI

一款AI工具,主要用于小橡皮一键去AI味,将机器味重的内容改得更有活人感,防止因为 AI 内容被平台打上 AI 标签,以及限流,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

咔片AIPPT

一款在线AI演示文稿制作工具,可根据主题和内容需求辅助生成PPT结构与页面,提高演示材料制作效率。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

UP简历
UP简历 Hot

一款AI办公效率工具,主要用于基于AI技术的免费在线简历制作工具,适合需要提升相关任务效率的用户。

相关专题

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

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

340

2025.12.04

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

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

272

2026.01.31

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

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

771

2026.04.13

数据类型有哪几种
数据类型有哪几种

数据类型有整型、浮点型、字符型、字符串型、布尔型、数组、结构体和枚举等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

3311

2023.10.31

php数据类型
php数据类型

本专题整合了php数据类型相关内容,阅读专题下面的文章了解更多详细内容。

554

2025.10.31

c语言 数据类型
c语言 数据类型

本专题整合了c语言数据类型相关内容,阅读专题下面的文章了解更多详细内容。

562

2026.02.12

java中boolean的用法
java中boolean的用法

在Java中,boolean是一种基本数据类型,它只有两个可能的值:true和false。boolean类型经常用于条件测试,比如进行比较或者检查某个条件是否满足。想了解更多java中boolean的相关内容,可以阅读本专题下面的文章。

2150

2023.11.13

java boolean类型
java boolean类型

本专题整合了java中boolean类型相关教程,阅读专题下面的文章了解更多详细内容。

163

2025.11.30

Docker Desktop怎么设置端口映射
Docker Desktop怎么设置端口映射

本专题聚焦Docker Desktop容器端口映射与访问配置,整理从创建容器、设置端口绑定到验证本地服务访问的操作流程。针对端口被占用、映射配置错误、容器服务无法访问等情况,也提供相应的检查方向,方便用户完成端口配置。

0

2026.11.03

热门下载

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

精品课程

更多
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn