NumPy或Pandas:保持数组类型为int,同时具有NaN值,如何实现?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (51)

是否有更好的方法来保持numpy数组固定为int(或int64(或者其他什么),同时仍然有一个元素列在numpy.NaN?

我正在将内部数据结构转换为Pandas DataFrame。在我们的结构中,我们有整数类型的列,这些列仍然有NaN的(但是列的dtype是int)。如果我们把它变成一个DataFrame,如何转换为int

有办法吗?

提问于
用户回答回答于

NaN不能存储在整数数组中。这是目前已知的熊猫限制;我一直在等待NumPy中NA值的进展(类似于NumPy中的NAS),但NumPy获得这些功能至少需要6个月到1年,似乎如下:

...

用户回答回答于

如果性能不是主要问题,则可以存储字符串。

df.col = df.col.dropna().apply(lambda x: str(int(x)) )

然后你就可以和NaN你想要多少都行。如果您真的想拥有整数,根据应用程序的不同,您可以使用-1,或0,或1234567890,或其他要表示的专用值。

扫码关注云+社区