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

如何在为DataFrame新增列时使用And、Or等逻辑条件语句

报错原因

你写的语句存在两个问题:

  1. Pandas 中对 Series(也就是DataFrame的列)做布尔运算时,不能使用Python原生的or/and关键字,需要改用位运算符|(代表逻辑或)、&(代表逻辑且)
  2. 语义逻辑错误:df['code'] == 0 or 1的写法不管在原生Python还是Pandas中,都无法实现“值等于0或者等于1”的判断,会直接返回True

正确写法

方法1:基于np.where的多条件写法

每个独立判断条件都用括号包裹,多个条件之间用|连接即可:

df['new'] = np.where((df['code'] == 0) | (df['code'] == 1), 1, 0)

方法2:更简洁的isin写法

如果是判断值属于某个枚举集合的场景,直接用isin方法代码可读性更高,最后转整数类型即可直接得到1/0的结果:

df['new'] = df['code'].isin([0, 1]).astype(int)

注意事项

使用位运算符|/&时必须给每个独立条件加括号,否则会因为运算符优先级问题导致计算逻辑错误,依旧报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 18:36:03