2017-07-07 105 views
2

当我使用head()或tail()但我希望数据帧保留原始值时,我希望只为数据帧中的值进行显示。如何将数值四舍五入来显示在熊猫中,同时保留原始数据中的数据?

我尝试使用圆形方法,但它更改原始数据框中的值。我不希望每次都为此目的创建一个单独的副本。

除了创建单独的副本还有其他方法吗?

编辑:我很难看一眼值,因为有些列有e^10符号。我只想看看最多两位到三位小数,并且不要盯着指数值。

编辑2:解决。感谢您及时的回复。

回答

5

您可以临时更改显示选项:

with pd.option_context('precision', 3): 
    print(df.head()) 

     0  1  2  3  4 
0 -0.462 -0.698 -2.030 0.766 -1.670 
1 0.925 0.603 -1.062 1.026 -0.096 
2 0.589 0.819 -1.040 -0.162 2.467 
3 -1.169 0.637 -0.435 0.584 1.232 
4 -0.704 -0.623 1.226 0.507 0.507 

或永久改变:

pd.set_option('precision', 3) 

一个简单的print(df.head().round(3))也将在这种情况下工作。他们不会更改DataFrame。

+0

这可能很明显,但如果精度选项设置为低于3,'print(df.head()。round(3))'将不起作用。也就是说,'precision'将覆盖'round'。 –