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

Pandas按条件创建新列:A列为空取B值否则取A值,现有代码不生效如何解决

错误原因

  • 你写的if data['A'] is None是对整个A列的Series对象做判断,只会判断这个Series本身是否为None,不会逐行校验每一个元素是否为空
  • pandas里的默认空值是NaN,和Python原生的None不是同一对象,就算逐行遍历用is None也无法识别pandas的空值,必须用pandas自带的.isna()方法做空值判断

正确实现方法

方法1:用fillna(最简洁,完全匹配你的需求)

直接调用A列的fillna方法,空值位置会自动填充B列的对应值:

data['C'] = data['A'].fillna(data['B'])

方法2:用np.where(适合后续需要扩展更复杂判断逻辑的场景)

import numpy as np
data['C'] = np.where(data['A'].isna(), data['B'], data['A'])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 07:24:02