NumPy 或 Pandas:在具有 NaN 值的同时将数组类型保持为整数

2023-11-26

是否有一种首选方法来保留 a 的数据类型numpy数组固定为int (or int64或其他),同时仍然有一个元素被列为numpy.NaN?

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

想法?

尝试过的事情:

我尝试使用from_records()pandas.DataFrame 下的函数,其中coerce_float=False但这并没有帮助。我还尝试使用 NumPy 掩码数组和 NaN fill_value,但这也不起作用。所有这些导致列数据类型变成浮点型。


NaN不能存储在整数数组中。这是目前 pandas 的一个已知限制;我一直在等待 NumPy 中的 NA 值(类似于 R 中的 NA)取得进展,但 NumPy 获得这些功能至少需要 6 个月到一年的时间,看来:

http://pandas.pydata.org/pandas-docs/stable/gotchas.html#support-for-integer-na

(此功能已从 pandas 0.24 版本开始添加,但请注意,它需要使用扩展 dtype Int64(大写),而不是默认的 dtype int64(小写):https://pandas.pydata.org/pandas-docs/version/0.24/whatsnew/v0.24.0.html#optional-integer-na-support )

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

NumPy 或 Pandas:在具有 NaN 值的同时将数组类型保持为整数 的相关文章

随机推荐