Pandas多条件筛选DataFrame出现rand_类型错误该如何解决
问题原因
- 运算符优先级不匹配:Python中位运算符
&的优先级高于>=、==这类比较运算符,你写的未加括号的df1.A >= 1 & df1.B=10会被优先执行1 & df1.B运算,触发数值与Series类型不匹配的报错。 - 相等判断语法错误:判断值相等需要使用双等号
==,你写的单等号=是赋值运算符,无法返回布尔值用于行筛选。
修复方案
给每个独立的比较条件包裹括号保证运算顺序,同时替换相等判断符号,正确代码如下:
df2 = df1[((df1.A >= 1) & (df1.B == 10)) | (df1.C >= 1)]
内容的提问来源于stack exchange,提问作者Chubaka
相关产品推荐
相关产品推荐

