pandas.api.extensions.ExtensionDtype #

pandas.api.extensions。ExtensionDtype [来源] #

自定义数据类型,与 ExtensionArray 配对。

也可以看看

extensions.register_extension_dtype

使用 pandas 注册一个 ExtensionType 作为类装饰器。

extensions.ExtensionArray

自定义一维数组类型的抽象基类。

笔记

该接口包括以下必须由子类实现的抽象方法:

  • 类型

  • 姓名

  • 构造数组类型

以下属性和方法影响 pandas 操作中数据类型的行为

  • _是_数字

  • _is_布尔值

  • _get_common_dtype

na_value属性可用于设置此类型的默认 NA 值。numpy.nan默认使用。

ExtensionDtypes 必须是可散列的。基类提供了默认实现,该实现依赖于_metadata类属性。_metadata应该是一个包含定义数据类型的字符串的元组。例如,PeriodDtype这就是freq属性。

如果您有参数化数据类型,则应该设置“_metadata”类属性

理想情况下,中的属性_metadata将与您的参数ExtensionDtype.__init__(如果有)相匹配。如果 中的任何属性_metadata未实现标准 __eq____hash__,则此处的默认实现将不起作用。

例子

为了与 Apache Arrow (pyarrow) 交互,__from_arrow__可以实现一个方法:此方法接收 pyarrow Array 或 ChunkedArray 作为唯一参数,并预计为此 dtype 和传递的值返回适当的 pandas ExtensionArray:

>>> import pyarrow
>>> from pandas.api.extensions import ExtensionArray
>>> class ExtensionDtype:
...     def __from_arrow__(
...         self,
...         array: pyarrow.Array | pyarrow.ChunkedArray
...     ) -> ExtensionArray:
...         ...

出于性能原因,此类不继承自“abc.ABCMeta”。接口所需的方法和属性引发 pandas.errors.AbstractMethodError并且没有register提供用于注册虚拟子类的方法。

属性

index_class

遇到此数据类型时从 Index.__new__ 返回的 Index 子类。

kind

字符代码('biufcmMOSUV'之一),默认'O'

na_value

用于此类型的默认 NA 值。

name

标识数据类型的字符串。

names

字段名称的有序列表,如果没有字段则为 None。

type

数组的标量类型,例如int

方法

construct_array_type()

返回与此数据类型关联的数组类型。

construct_from_string(细绳)

从字符串构造此类型。

empty(形状)

使用给定的形状构造此 dtype 的 ExtensionArray。

is_dtype(数据类型)

检查我们是否匹配“dtype”。