2015-05-28 31 views
2

我經常被大熊貓中非常小的浮點數值所迷惑,這些值是「實際爲零」。將小數字顯示爲零

例如,很難第一眼就看到發生了什麼事情有以下Series

are_they_zero 
a -5.960464e-08 # This number is small 
b -2.384186e+07 # This one isn't 
c 2.384186e-07 
d -5.960464e+08 
e 8.940697e-08 

有沒有辦法告訴大熊貓以示像5.960464e-080數字?

(顯然,這將取決於應用程序,這是否是一個好主意或沒有,但假設一下,在我的情況,它是。)

+1

假設你使用IPython的,還有就是'%精度'魔術 – JohnE

+0

@JohnE我是:你可以把這個擴展成一個答案並舉個例子嗎? – LondonRob

+0

其實,我只是在玩它而已,可能對大熊貓沒什麼用處。它僅在打印單個值時有效,但在打印多個值(系列,數組,數據框)時不起作用。無論如何,只需在提示符處輸入'?precision'即可查看更多信息。 – JohnE

回答

5

您可以使用set_option'display.chop_threshold'來處理這個檢查:

In [20]: 
pd.set_option('display.chop_threshold', 0.001) 
df 

Out[20]: 
    are_they_zero 
a    0 
b -2.384186e+07 
c    0 
d -5.960464e+08 
e    0 
+0

這完全是我在找的東西 – LondonRob

+0

不用擔心,我不確定這是否存在,所以我想我會查找它,它確實存在,做了你想要的 – EdChum

0

你可以做的build in round()使用,因爲這似乎是浮動。

作爲替代方案,試圖像(僞)

if c < 2.3e-05: 
    c = 0