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

如何在DataFrame填充对角线NaN时保留数值的科学计数法格式

问题原因

你使用np.fill_diagonal(granger_df.values, np.nan)修改值时,直接操作了DataFrame底层的numpy数组,会触发pandas的自动类型/显示格式推断,导致原本的科学计数法显示被重置为普通小数格式。

最优实现方式

推荐直接使用pandas原生索引赋值的方法修改对角线值,不会触动底层存储的格式规则,能完整保留原有显示效果:

# 获取DataFrame对角线对应的行列索引
row_idx, col_idx = np.diag_indices_from(granger_df)
# 批量给对角线位置赋值NaN
granger_df.loc[row_idx, col_idx] = np.nan

如果修改后仍出现格式异常,可以手动指定pandas全局浮点数显示规则,强制保留科学计数法:

# 可按需调整格式字符串,例如{:.3e}代表保留3位小数的科学计数法
pd.set_option('display.float_format', '{:.2e}'.format)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 11:24:03