2017-07-07 68 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'。 –