You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何统计pandas DataFrame中两列均为指定值的行数并解决条件判断报错

报错原因

  • Python原生的and/or/not逻辑运算符仅支持单个布尔值计算,作用于pandas的Series对象时,会尝试将整个序列转换为单个布尔值,因此触发The truth value of a Series is ambiguous报错。
  • 多条件组合时需要使用pandas支持的按位运算符:逻辑与用&,逻辑或用|,逻辑非用~,且每个独立判断条件必须用括号包裹,避免运算符优先级冲突。

最简实现方案

不需要使用groupby,直接通过布尔序列求和即可实现需求,两种常用写法:

  1. 多条件直接组合写法,适合列数较少的场景:
rows = ((data['col1'] == 0) & (data['col2'] == 0)).sum()
  1. 通用批量判断写法,适合需要判断多列同时等于指定值的场景:
# 要同时判断多少列符合要求,就把对应列名放在第一个列表中即可
rows = data[['col1', 'col2']].eq(0).all(axis=1).sum()

两种写法返回结果都是符合条件的总行数,执行性能远高于groupby方案。

内容的提问来源于stack exchange,提问作者Zuzu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.18 03:24:03