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

如何使用np.where多条件将Pandas列非空值合并到新列并填充分类值

解决方法

报错原因

你使用np.where的嵌套语法错误:np.where必须传入三个参数,分别为判断条件、条件为真时的返回值、条件为假时的返回值。你在第一层np.where的第三个参数位置直接传入了(df['B']=='user2','user2','user3')三元组,三个元素和前面长度为544的布尔数组形状不匹配,因此触发报错。

修改方案

方案1:修正嵌套np.where写法

多层判断需要嵌套np.where,代码如下:

df['C'] = np.where(df['A'] == 'user1', 'user1',
                   np.where(df['B'] == 'user2', 'user2', 'user3'))

方案2:更简洁的Pandas原生写法

因为你提到A、B两列的有效值无重叠,直接用fillna拼接两列再填充默认值即可,可读性和效率更高:

df['C'] = df['A'].fillna(df['B']).fillna('user3')

两种方案都可以完全匹配你提供的样本数据预期结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 20:18:02