Pandas 样式器不保持舍入
Pandas styler does not maintain rounding
我想四舍五入 Pandas DataFrame 然后给它添加一个标题,但是 Pandas style.set_caption 命令破坏了四舍五入。
示例:
pd.DataFrame(np.array([[0.555,0.444],[0.333,0.222]])).round(decimals = 2).style.set_caption("hello")
结果:
hello
0 1
0 0.560000 0.440000
1 0.330000 0.220000
如何在维护路由的同时添加标题?
当然已经保持了四舍五入。它只是不打印 2 位小数。这是两个完全不同的概念,如果您正在处理浮点数据,理解这一点很重要。您可以使用 pd.options.display.float_format
更改 pandas 显示浮点数的方式。
另请注意,一般情况下,计算时最好保留所有小数位,显示时四舍五入即可。如果您的值为 0.555,那么您应该使用 0.555 进行计算,并让正在执行的打印将其显示为 0.56。人类关心限制小数位。计算机不会。
答案是Styler.format
。例如:
df = pd.DataFrame(np.array([[0.555,0.444],[0.333,0.222]]))
df.style.set_caption("hello").format('{:.2f}')
对于Pandas 1.3.0+,你可以通过precision=2
:
df.style.set_caption("hello").format(precision=2)
输出:
我想四舍五入 Pandas DataFrame 然后给它添加一个标题,但是 Pandas style.set_caption 命令破坏了四舍五入。
示例:
pd.DataFrame(np.array([[0.555,0.444],[0.333,0.222]])).round(decimals = 2).style.set_caption("hello")
结果:
hello
0 1
0 0.560000 0.440000
1 0.330000 0.220000
如何在维护路由的同时添加标题?
当然已经保持了四舍五入。它只是不打印 2 位小数。这是两个完全不同的概念,如果您正在处理浮点数据,理解这一点很重要。您可以使用 pd.options.display.float_format
更改 pandas 显示浮点数的方式。
另请注意,一般情况下,计算时最好保留所有小数位,显示时四舍五入即可。如果您的值为 0.555,那么您应该使用 0.555 进行计算,并让正在执行的打印将其显示为 0.56。人类关心限制小数位。计算机不会。
答案是Styler.format
。例如:
df = pd.DataFrame(np.array([[0.555,0.444],[0.333,0.222]]))
df.style.set_caption("hello").format('{:.2f}')
对于Pandas 1.3.0+,你可以通过precision=2
:
df.style.set_caption("hello").format(precision=2)
输出: