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。这背后的原因是什么?
答案 0 :(得分:6)
这取决于数字的表示方式。浮点数为IEEE-754,它定义了代表NaN
或"非数字的特定位模式。"整数通常具有更简单的表示,并且没有NaN
的概念。
Pandas文档包含问题的more extended discussion。