在 Pandas 中抑制 to_markdown() 中的科学记数法

时间:2021-03-19 18:01:38

标签: python pandas dataframe

一般来说,关于在 Pandas 中抑制科学记数法存在许多问题

然而,它们似乎都不适用于 to_markdown 函数。例如:

import pandas as pd

df = pd.DataFrame({'val': 3e10}, index=[0])  # print(df) gives 3.000000e+10
pd.set_option('float_format', '{:f}'.format) # print(df) gives 30000000000.000000

然而,df.to_markdown() 仍然会产生

|    |   val |
|---:|------:|
|  0 | 3e+10 |

如何禁用 to_markdown() 中的科学记数法?

2 个答案:

答案 0 :(得分:2)

我在写问题的过程中找到了答案。

df.to_markdown() uses tabulate 在幕后。因此,我们可以使用 tabulate readme 中提到的 floatfmt 参数来禁用格式:

print(df.to_markdown(floatfmt=''))

收益

|    |           val |
|---:|--------------:|
|  0 | 30000000000.0 |

答案 1 :(得分:0)

以@dahn 的回答为基础,如果您不想要小数点,请使用以下格式字符串:

print(df.to_markdown(floatfmt='.0f'))