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

Pandas DataFrame中如何将NaN值替换为唯一引用编号

问题原因

你代码的错误出在str(ah_df['Index Values'])这一步:该操作会将整个Index Values列的Pandas Series对象整体转换为字符串,返回的是Series的打印格式化内容(包含行号、全列数值、换行符等),并非逐行提取对应单元格的索引值进行拼接,因此才会出现不符合预期的输出结果。

修正方案

方案1(更简洁,无需额外创建索引列)

直接对行索引做类型转换后拼接即可,无需额外存储索引列:

# 直接基于行索引生成唯一引用
ah_df.loc[ah_df["Planning Reference"].isnull(), 'Planning Reference'] = "Unknown Ref" + ah_df.index.astype(str)

方案2(沿用你已创建的Index Values列)

仅需要将对整列的str()调用改为Pandas逐元素类型转换方法astype(str)即可:

ah_df.loc[ah_df["Planning Reference"].isnull(), 'Planning Reference'] = "Unknown Ref" + ah_df['Index Values'].astype(str)

补充:生成完全连续的引用编号

如果你的原DataFrame索引不连续,希望生成的缺失引用编号是连续递增的,可以使用以下写法:

missing_mask = ah_df["Planning Reference"].isnull()
ah_df.loc[missing_mask, 'Planning Reference'] = "Unknown Ref" + pd.Series(range(missing_mask.sum()), index=ah_df[missing_mask].index).astype(str)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 01:54:02