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

Pandas中如何将另一列的值赋值给指定列的空单元格

pandas 空值列按同行另一列值填充实现方案

针对district列空值取对应行city列值填充的需求,直接使用pandas内置方法即可实现,无需手写逐行循环,执行效率高、代码简洁。

核心实现代码

最推荐使用fillna方法,语义直观可读性强:

df["district"] = df["district"].fillna(df["city"])

也可以使用combine_first方法实现完全一致的效果:

df["district"] = df["district"].combine_first(df["city"])

逻辑说明

  • 当fillna接收Series类型作为填充参数时,会自动按照行索引匹配对应位置的值,仅对值为NaN的单元格执行填充,district列原本非空的取值会完全保留,完全匹配需求逻辑。
  • 两种方法运行后得到的结果完全一致,日常开发优先选fillna写法即可,其他协作者能快速识别代码意图。

特殊场景适配

如果你的district列空值不是标准NaN格式(比如是空字符串、"缺失"这类自定义的空值标记),可以先将这类值统一替换为标准空值,再执行填充操作:

import numpy as np
# 把自定义空值标记替换为标准NaN后再填充
df["district"] = df["district"].replace(["", "NaN", "缺失", "无"], np.nan).fillna(df["city"])

执行完上述代码后,得到的结果和预期完全一致:

codecitydistrict
01LondonWestminster
03MadridMadrid
04RomeTrevi
07BerlinBerlin
08BarcelonaBadalona

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 11:45:29