2015-09-03 39 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的问题。

相关问题