一尘不染

Python-NumPy或Pandas:具有NaN值时,将数组类型保持为整数

python

有没有一种首选的方法来将numpy数组的数据类型固定为int(int64或其他),同时仍将元素内部列出为numpy.NaN

特别是,我正在将内部数据结构转换为Pandas DataFrame。在我们的结构中,我们有仍具有NaN的整数类型的列(但该列的dtype为int)。如果将其设为DataFrame,似乎将所有内容重铸为float,但我们真的很想成为int。

有什么想法吗?

尝试过的事情:

我尝试from_records()pandas.DataFrame下使用该功能coerce_float=False,但这并没有帮助。我还尝试使用带有NaN fill_value的NumPy蒙版数组,该数组也无法正常工作。所有这些导致列数据类型变为浮点型。


阅读 688

收藏
2020-02-16

共1个答案

一尘不染

此功能已添加到熊猫(从0.24版开始):https : //pandas.pydata.org/pandas-docs/version/0.24/whatsnew/v0.24.0.html#optional-integer-na-support

此时,它需要使用扩展名dtype Int64(大写),而不是默认的dtype int64(小写)。

2020-02-16