Python Pandas中Sum函数多条件筛选报错的解决办法
解决Pandas条件统计的TypeError问题
错误根源
这是运算符优先级导致的问题:&(按位与)的优先级高于比较运算符>,你的代码会先执行15 & frames['ratio'],试图将浮点数数组与整数做位运算,直接触发类型错误。本质是两个条件没有正确分组,导致运算顺序混乱。
正确代码写法
给每个比较条件单独套上括号,确保先算出每个条件的布尔结果,再用&进行组合:
total_enhancements = ((frames['dif'] > 15) & (frames['ratio'] > 0.05)).sum()
也可以用numpy的逻辑与函数实现相同逻辑:
import numpy as np total_enhancements = np.logical_and(frames['dif'] > 15, frames['ratio'] > 0.05).sum()
补充说明
从你提供的frames数据来看,所有dif和ratio都是负数,所以最终统计结果会是0,但修复后的代码逻辑完全正确,不会再报错。
内容的提问来源于stack exchange,提问作者span_path
相关产品推荐
相关产品推荐

