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

Python Pandas中用fillna()/replace()替换列中NAN为字典值的问题

解决pandas中fillna()无法填充字典对象的问题

嘿,我明白你遇到的问题了——直接用fillna(Bvalue)没法把NaN替换成目标字典,其实是因为pandas对fillna()的value参数有特殊的处理逻辑:如果传入的是字典,pandas会把它当成列名到填充值的映射表,而不是把这个字典当作单个值去填充缺失项。你的列是A和B,字典里的key是'KEY'和'VALUE',完全不匹配,所以代码自然不会生效啦。

下面给你两个简单可行的解决方案:

方案1:用apply()逐个处理元素

我们可以遍历B列的每个元素,判断如果是NaN就替换成目标字典,否则保留原内容:

import pandas as pd

Bvalue = {'KEY':1,'VALUE':2}
Temp_Data_DF['B'] = Temp_Data_DF['B'].apply(lambda x: Bvalue if pd.isna(x) else x)

方案2:用replace()直接替换NaN

replace()方法可以直接指定把np.nan替换成你想要的字典对象,操作更简洁:

import pandas as pd
import numpy as np

Bvalue = {'KEY':1,'VALUE':2}
Temp_Data_DF['B'] = Temp_Data_DF['B'].replace(np.nan, Bvalue)

效果验证

运行上面任意一段代码后,你的DataFrame就会变成你期望的样子:

A                     B
0  1  {'KEY': 1, 'VALUE': 2}
1  2  {'KEY': 1, 'VALUE': 2}
2  3  {'KEY': 1, 'VALUE': 2}

小补充

如果你的DataFrame里的"NAN"是字符串类型(不是pandas默认的缺失值np.nan),那得先把它转换成真正的缺失值再填充:

Temp_Data_DF['B'] = Temp_Data_DF['B'].replace('NAN', np.nan)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:13:20