你好,
最近大熊猫引入了可为空整数 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 的布尔值不明确”
这是预期的吗?
这是预期的吗?
我会说是的,因为可空整数不是 NumPy 类型。
我同意,这基本上是设计使然,意味着事情按预期工作。 NumPy 可能在某个时候理解这一点并非不可能,但不太可能很快发生。
通过使用新的UInt8
,您在某种意义上选择了NaN
确实与 NA 不同,而 Pandas 现在确实有pd.NA
以使这种区别更加清晰。
@Kreol64我打开了 pandas-dev/pandas#37460 以在熊猫方面讨论这个问题