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

如何在Pandas DataFrame中取消科学计数法并保留独特小数精度?

解决Pandas DataFrame取消科学计数法并保留独特小数精度的问题

你当前使用的pd.set_option("display.float_format", lambda x: "%.2f" % x)会强制所有浮点数显示为2位小数,无法满足每个值按实际精度显示的需求。以下是两种可行的解决方案:

方法1:使用Python内置的g格式符

g格式符会自动去掉浮点数末尾的零和不必要的小数点,同时默认避免对常规数值使用科学计数法:

pd.set_option("display.float_format", lambda x: "{:g}".format(x))

效果示例:

  • 数值1.0会显示为1
  • 数值123.89保持显示为123.89
  • 数值19.4保持显示为19.4
  • 对于极端数值(如1e15)可能仍会触发科学计数法,若需强制避免,可结合条件判断自定义格式:
pd.set_option("display.float_format", lambda x: "{:.15f}".format(x).rstrip('0').rstrip('.') if '.' in "{:.15f}".format(x) else "{:.15f}".format(x))

方法2:使用Numpy的format_float_positional函数

该函数能更精准地控制浮点数格式化,强制使用小数形式而非科学计数法,并自动去除末尾无效零:

import numpy as np
pd.set_option("display.float_format", lambda x: np.format_float_positional(x, trim='-'))

这个方法对极小/极大数值的兼容性更好,比如0.000001会显示为0.000001而非科学计数法形式。

恢复默认设置

若后续需要回到Pandas默认的显示格式,执行以下代码即可:

pd.reset_option("display.float_format")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 22:25:18