2015-09-03 40 views
1
df = pd.DataFrame({a:[1,2], b:[None,3]}) 
df.dtypes 

輸出:爲什麼float64允許NA,但是int32不是?

a  int64 
b float64 

然後:

df.b.astype(int) 

輸出:

*** ValueError: Cannot convert NA to integer 

一般來說,我會如果一個數字類型接受NA(例如float64)期望的,那麼所有的會接受NA。這背後的推理是什麼?

+2

所有[this](http://www.numpy.org/NA-overview.html#designs-that-have-been-proposed)都有一個長期的決定性原因,基本上這是目前沒有的東西, t支持整數類型 – EdChum

+0

integer使用它的所有位來表示值。 NA沒有剩下 –

回答

6

這是基於如何表示數字。浮點數爲IEEE-754,它定義了代表NaN或「不是數字」的特定位模式。整數通常具有更簡單的表示,並且沒有NaN的概念。

熊貓文檔包含more extended discussion的問題。

相關問題