是否有一种首选方法可以将numpy数组的数据类型固定为int(或int64或其他任何类型),同时仍将数组中的元素列为numpy.NaN
特别是,我正在将内部数据结构转换为数据帧。在我们的结构中,整数类型的列仍然有NaN(但列的数据类型是int)。如果我们把它变成一个数据帧,它似乎会把所有的东西都改写成一个浮点,但我们真的希望变成int
想法
尝试过的事情:
我尝试使用pandas.DataFrame下的from_records()函数,使用强制\u float=False,但这没有帮助。我还尝试使用NumPy掩码数组,使用NaN fill_值,这也不起作用。所有这些都导致列数据类型变为浮点型
NaN不能存储在整数数组中。这是目前已知的大熊猫数量限制;我一直在等待NumPy中的NA值取得进展(类似于R中的NAs),但至少需要6个月到一年,NumPy才能获得这些功能,看起来:
http://pandas.pydata.org/pandas-docs/stable/gotchas.html#support-对于整数na
(此功能是从pandas的0.24版开始添加的,但请注意,它需要使用扩展名dtype Int64(大写),而不是默认的dtype Int64(小写):
https://pandas.pydata.org/pandas-docs/version/0.24/whatsnew/v0.24.0.html#optional-整数na支持
)