pandas.api.extensions.ExtensionDtype#

class pandas.api.extensions.ExtensionDtype[源代码]#

一个自定义数据类型,将与Extension数组成对出现。

参见

extensions.register_extension_dtype

向Pandas注册一个ExtensionType作为类修饰符。

extensions.ExtensionArray

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

注意事项

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

  • 类型

  • 名字

  • construct_array_type

以下属性和方法会影响Pandas操作中的dtype行为

  • _is_numeric

  • _is_boolean

  • _get_common_dtype

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

ExtensionDtype必须是可哈希的。基类提供默认实现,该实现依赖于 _metadata 类属性。 _metadata 应为包含定义数据类型的字符串的元组。例如,使用 PeriodDtype 这就是 freq 属性。

If you have a parametrized dtype you should set the ``_metadata`` class property

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

要与ApacheArrow(Pyrow)交互,请使用 __from_arrow__ 方法可以实现:此方法接收作为唯一参数的pyrow数组或Chunked数组,并期望为此dtype返回适当的Pandas ExtensionArray和传递的值:

class ExtensionDtype:

    def __from_arrow__(
        self, array: Union[pyarrow.Array, pyarrow.ChunkedArray]
    ) -> ExtensionArray:
        ...

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

属性

kind 

字符代码(‘biufcmMOSUV’之一),默认为‘O’

na_value 

用于此类型的默认NA值。

name 

标识数据类型的字符串。

names 

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

type 

数组的标量类型,例如

方法:

construct_array_type \()

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

construct_from_string \(字符串)

从字符串构造此类型。

empty \(形状)

构造具有给定形状的此数据类型的Extension数组。

is_dtype \(dtype)

检查我们是否匹配‘dtype’。