在pandas中使用科学计数法。

18
我在pandas中找到了很多关于如何抑制科学计数法的答案,但是如何启用呢?我找到了选项pd.set_option('precision', 2),但它不能将大数字转换为科学计数法。例如,我想将数字123066.14格式化为1.23E+5。我正在使用pandas.DataFrame,在导出/打印时设置整个列的格式会很有用。
1个回答

25

好的,我弄清楚了,你可以使用set_option函数,并传递一个格式字符串到选项'display.float_format'

In [76]:
pd.set_option('display.float_format', '{:.2g}'.format)

In [78]:
pd.Series(data=[0.00000001])

Out[78]:
0   1e-08
dtype: float64

编辑

以符合您所需的输出:

In [79]:
pd.set_option('display.float_format', '{:.2E}'.format)
pd.Series(data=[0.00000001])

Out[79]:
0   1.00E-08
dtype: float64

2
顺便说一下,我发现使用 :.2E 是更好的格式化方式。它使用大写的 E,同时确保小数点后有 2 位数字。g 模式将隐藏第二个 0 - sougonde
无论出于何种原因,小写的e/E都比g/G多保留一位数字。使用大写的E或小写的e取决于输出中是否使用大写的E。 - fantabolous

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接