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

使用numpy.select为DataFrame按两列条件新增列遇问题求助

问题解决

你的代码存在语法和逻辑问题,修正后即可实现需求:

错误点说明

  • assign是DataFrame的方法,需用**括号()**调用,而非方括号[]
  • np.select参数格式错误:第一个参数是条件列表,第二个是对应值列表,多条件逻辑与需加括号包裹
  • 条件判断误用赋值符号=,应使用等于判断==
  • 逻辑对应关系搞反,且无需额外的'null'默认值

正确实现方式

方式1:布尔运算实现(更简洁)

利用布尔值转整数的特性(True对应1,False对应0),取反即可满足需求:

df['test'] = ~((df['trs'] == 'iw') & (df['rp'] == 'yu')).astype(int)
# 等价写法
df['test'] = ((df['trs'] != 'iw') | (df['rp'] != 'yu')).astype(int)

方式2:正确使用np.select

如果坚持用np.select,需按正确参数格式编写:

import numpy as np

conditions = [
    (df['trs'] == 'iw') & (df['rp'] == 'yu')
]
values = [0]
df = df.assign(test=np.select(conditions, values, default=1))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 12:10:18