在 pandas 中使用 DataFrame.to_markdown 时如何控制浮动格式?

mga*_*lgs 4 dataframe pandas

我正在尝试使用DataFrame.to_markdown包含我想要四舍五入的浮点值的数据框。如果没有to_markdown(),我可以设置pd.options.display.float_format并且一切正常,但to_markdown似乎不尊重该选项。

重现:

import pandas as pd

df = pd.DataFrame([[1, 2, 3], [42.42, 99.11234123412341234, -23]])
pd.options.display.float_format = '{:,.0f}'.format
print(df)
print()
print(df.to_markdown())
Run Code Online (Sandbox Code Playgroud)

输出:

   0  1   2
0  1  2   3
1 42 99 -23

|    |     0 |       1 |   2 |
|---:|------:|--------:|----:|
|  0 |  1    |  2      |   3 |
|  1 | 42.42 | 99.1123 | -23 |
Run Code Online (Sandbox Code Playgroud)

(将表中的 42.42 和 99.1123to_markdown与普通旧 df 中的 42 和 99 进行比较)

这是一个错误还是我缺少有关如何使用的信息to_markdown

ano*_*n01 7

看起来 pandas 使用tabulate来进行这种格式化。如果已安装,您可以使用类似以下内容:

df.to_markdown(floatfmt=".0f")
Run Code Online (Sandbox Code Playgroud)

输出:

|    |   0 |   1 |   2 |
|---:|----:|----:|----:|
|  0 |   1 |   2 |   3 |
|  1 |  42 |  99 | -23 |
Run Code Online (Sandbox Code Playgroud)

  • 啊啊啊,我错过了:`**kwargs:这些参数将传递给 tabulate`。谢谢! (2认同)