在下面的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个小数位?
答案 0 :(得分:1)
尝试字符串格式,
df.round(2).applymap('{:.2f}'.format)
答案 1 :(得分:0)
您可以使用lambda表达式将字符串格式映射到列:
df[1] = df[1].apply(lambda x: f"{x:.2f}")