Skip to main content
 首页 » 编程设计

python之为什么 float64 允许 NA,而 int32 不允许

2025年05月04日16qlqwjy

df = pd.DataFrame({a:[1,2], b:[None,3]}) 
df.dtypes 

输出:

a      int64 
b    float64 

然后:

df.b.astype(int) 

输出:

*** ValueError: Cannot convert NA to integer 

一般来说,我希望如果一种数字类型接受 NA(例如 float64),那么所有类型都会接受 NA。这背后的原因是什么?

请您参考如下方法:

这是基于数字的表示方式。花车是IEEE-754 ,它定义了表示 NaN 或“不是数字”的特定位模式。整数通常有更简单的表示,并且没有 NaN 的概念。

Pandas 文档包含一个 more extended discussion的问题。