Python pandas使用lambda多条件筛选数据失败如何调整?
问题原因
- pandas 中对布尔 Series 做逐元素逻辑运算时,不能使用 Python 原生的
and/or关键字,这两个关键字仅支持单个布尔值的逻辑判断,需要改用按位运算符&(逻辑与)、|(逻辑或)。 - 按位运算符的优先级高于比较运算符,因此每个独立的判断条件需要用小括号包裹,避免运算顺序错误。
修正后代码
newdf.loc[lambda newdf: (newdf['yearly_premium'] > 2784) & (newdf['Total_Claim_Amount'] < 1021.654), :]
额外说明
如果后续需要扩展更多条件,每新增一个条件都要单独用小括号包裹,不同条件之间用对应的位运算符连接即可。
内容的提问来源于stack exchange,提问作者Ahmed JAÏEM
相关产品推荐
相关产品推荐

