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

使用DataFrame.map()时如何避免生成NaN值?实战场景答疑

解决pandas中map方法导致非匹配值变为NaN的问题

你当前的问题是:用map()方法时,因为字典只定义了"Shoes"对应的映射值,导致所有"Shirt"对应的Color被替换成NaN,而你希望仅修改"Shoes"的Color为"Blue",同时保留"Shirt"原有的Color值。

下面是两种可行的解决方法:

方法1:用loc直接定位修改(推荐)

直接定位到Item为"Shoes"的行,修改对应的Color列值,这种方式更直观高效,不会影响其他行的数据:

fr1.loc[fr1["Item"] == "Shoes", "Color"] = "Blue"

方法2:map()结合fillna()补全原数据

如果一定要用map(),可以用fillna()把原来的Color值填充到map产生的NaN位置:

x = {"Shoes": "Blue"}
fr1["Color"] = fr1["Item"].map(x).fillna(fr1["Color"])

这两种方法都能得到你预期的结果:"Shoes"的Color变为"Blue","Shirt"的Color保留原来的"Red"和"Yellow"。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 08:35:12