是否有一种首选方法可以将numpy数组的数据类型固定为int(int64或其他),同时仍将内部元素列为numpy.NaN?
numpy
int
int64
numpy.NaN
特别是,我正在将内部数据结构转换为 Pandas DataFrame。在我们的结构中,我们有仍然有 NaN 的整数类型列(但列的 dtype 是 int)。如果我们将其设为 DataFrame,似乎会将所有内容重铸为浮点数,但我们真的很想成为int.
想法?
尝试的事情:
我尝试使用from_records()pandas.DataFrame 下的函数,coerce_float=False但这并没有帮助。我还尝试使用 NumPy 掩码数组和 NaN fill_value,这也不起作用。所有这些都导致列数据类型变为浮点数。
from_records()
coerce_float=False
此功能已添加到 pandas(从版本 0.24 开始): https ://pandas.pydata.org/pandas- docs/version/0.24/whatsnew/v0.24.0.html#optional-integer-na- support
此时,它需要使用扩展 dtype Int64(大写),而不是默认的 dtype int64(小写)。