可空整数数据类型#
备注
IntegerArray 目前处于实验阶段。其 API 或实现可能会在未提前通知的情况下发生更改。使用 pandas.NA 作为缺失值。
在 处理缺失数据 中,我们看到 pandas 主要使用 NaN 来表示缺失数据。由于 NaN 是浮点数,这会强制一个包含任何缺失值的整数数组变为浮点数。在某些情况下,这可能影响不大。但如果您的整数列是例如标识符,则转换为浮点数可能会有问题。有些整数甚至无法表示为浮点数。
构建#
pandas 可以使用 arrays.IntegerArray 表示可能包含缺失值的整数数据。这是 pandas 内部实现的一个 extension type 。
或者字符串别名 "Int64"``(注意大写的 ``"I"),以区别于 NumPy 的 'int64' dtype:
所有类似 NA 的值都会被替换为 pandas.NA 。
这个数组可以像任何 NumPy 数组一样存储在 DataFrame 或 Series 中。
你也可以在 Series 构造函数中将类列表对象与 dtype 一起传递。
警告
目前 pandas.array() 和 pandas.Series() 在 dtype 推断方面使用不同的规则。pandas.array() 将推断出可空的整数 dtype
为了向后兼容,Series 会将这些推断为整数或浮点数 dtype。
我们建议显式提供 dtype 以避免混淆。
未来,我们可能会为 Series 提供一个推断可空整数 dtype 的选项。
操作#
涉及整数数组的操作将与 NumPy 数组类似。缺失值将被传播,如有需要,数据将被强制转换为其他 dtype。
这些 dtype 可以作为 DataFrame 的一部分进行操作。
这些 dtype 可以被合并、重塑和转换。
诸如 sum() 之类的归约和分组操作也能正常工作。
标量 NA 值#
arrays.IntegerArray 使用 pandas.NA 作为其标量缺失值。切片单个缺失元素将返回 pandas.NA 。