抑制 Pandas 的 to_markdown() 方法中的科学计数法

4

关于在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个回答

8
我在编写问题时找到了答案。 df.to_markdown() 在底层使用 tabulate。因此,我们可以使用 tabulate readme 中提到的 floatfmt 参数来禁用格式化。

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

产出
|    |           val |
|---:|--------------:|
|  0 | 30000000000.0 |

正如@oneextrafact在他们的回答中提到的那样,您可以使用floatfmt='.0f'来控制显示的小数位数。


3
为了扩展@dahn的回答,如果您不想要小数点,请使用以下格式字符串:
print(df.to_markdown(floatfmt='.0f'))

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