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

Pandas ExcelWriter导出Excel丢失有效NaN值及定向保留方案咨询

问题根因

pandas调用read_json接口时会默认将JSON中的字符串"NaN"自动识别为pandas空值类型NaN,调用to_excel导出时默认空值对应空白单元格,因此会出现NaN值丢失的现象。

基础解决方案:全列保留NaN显示

仅需要在to_excel方法中添加na_rep参数,指定空值的导出展示内容即可,修改对应代码行:

# 原代码
# df.to_excel(writer, header=True, sheet_name='Pandas_Test',index=False)
# 修改后代码
df.to_excel(writer, header=True, sheet_name='Pandas_Test',index=False, na_rep='NaN')

添加参数后所有空值都会导出为字符串NaN,不会出现空白单元格。

进阶解决方案:指定列定向保留NaN显示

如果仅需要部分列保留NaN显示、其他列空值仍保持空白,可提前对目标列的空值做替换处理,不需要添加na_rep参数,操作示例:

# 定义需要保留NaN的列列表
keep_nan_cols = ['triggered_value']
# 仅替换目标列的空值为字符串"NaN"
for col in keep_nan_cols:
    df[col] = df[col].fillna('NaN')

# 导出时不需要加na_rep参数
df.to_excel(writer, header=True, sheet_name='Pandas_Test',index=False)

如果需要保留原数据的类型不受影响,可复制副本做导出处理:

export_df = df.copy()
keep_nan_cols = ['triggered_value']
for col in keep_nan_cols:
    export_df[col] = export_df[col].fillna('NaN')

export_df.to_excel(writer, header=True, sheet_name='Pandas_Test',index=False)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 04:45:02