Numpy: 可空整数转换

创建于 2020-10-28  ·  3评论  ·  资料来源: numpy/numpy

你好,

最近大熊猫引入了可为空整数 dtype:
https://pandas.pydata.org/pandas-docs/stable/user_guide/integer_na.html

我希望 numpy 自动将此类数组转换为浮点类型并填充 np.nan。 但是,出于某种原因,它将其转换为对象:

pd.DataFrame({'col': [1, np.nan, 3]}).astype('UInt8').values.dtype

这会导致这样的错误

np.nanmax(pd.DataFrame({'col': [1, np.nan, 3]}).astype('UInt8').values)

返回“类型错误:NA 的布尔值不明确”

这是预期的吗?

所有3条评论

这是预期的吗?

我会说是的,因为可空整数不是 NumPy 类型。

我同意,这基本上是设计使然,意味着事情按预期工作。 NumPy 可能在某个时候理解这一点并非不可能,但不太可能很快发生。

通过使用新的UInt8 ,您在某种意义上选择了NaN确实与 NA 不同,而 Pandas 现在确实有pd.NA以使这种区别更加清晰。

@Kreol64我打开了 pandas-dev/pandas#37460 以在熊猫方面讨论这个问题

此页面是否有帮助?
0 / 5 - 0 等级