pandas.DataFrame.round输出不同数量的小数位数

时间:2019-08-14 13:29:15

标签: python pandas dataframe

在下面的DataFrame上调用round(2)会导致一列具有2个小数位,这与预期的一样,而另一列只有1个小数位。

import pandas as pd

df = pd.DataFrame([
    [0.829, 0.801],
    [0.997, 0.997]
])

df.round(2)

在笔记本中运行时,它输出:

      0    1
0  0.83  0.8
1  1.00  1.0

我认为这是因为0.801舍入到0.8,所以只需要一个小数位,另一行转到1.0而不是1.00

但是我想将此DataFrame输出到LaTeX表,因此我希望两列中的小数位数相同。有没有一种方法可以强制熊猫为所有列输出2个小数位?

2 个答案:

答案 0 :(得分:1)

尝试字符串格式,

df.round(2).applymap('{:.2f}'.format)

答案 1 :(得分:0)

您可以使用lambda表达式将字符串格式映射到列:

df[1] = df[1].apply(lambda x: f"{x:.2f}")