pandas.api.extensions.ExtensionDtype#
- class pandas.api.extensions.ExtensionDtype[源代码][源代码]#
一个自定义数据类型,与 ExtensionArray 配对。
参见
extensions.register_extension_dtype
使用 pandas 作为类装饰器注册一个 ExtensionType。
extensions.ExtensionArray
自定义1-D数组类型的抽象基类。
备注
该接口包括以下必须由子类实现的抽象方法:
类型
名字
construct_array_type
以下属性和方法影响 pandas 操作中 dtype 的行为
_is_numeric
_is_boolean
_get_common_dtype
na_value 类属性可以用来设置此类型的默认 NA 值。默认使用
numpy.nan
。ExtensionDtypes 需要是可哈希的。基类提供了一个默认实现,该实现依赖于
_metadata
类属性。_metadata
应该是一个包含定义数据类型的字符串的元组。例如,对于PeriodDtype
,这是freq
属性。如果你有一个参数化的 dtype,你应该设置 ``_metadata`` 类属性。
理想情况下,
_metadata
中的属性将与ExtensionDtype.__init__
的参数(如果有)匹配。如果_metadata
中的任何属性没有实现标准的__eq__
或__hash__
,这里的默认实现将无法工作。例子
为了与 Apache Arrow (pyarrow) 交互,可以实现一个
__from_arrow__
方法:此方法接收一个 pyarrow 数组或 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
一个标识数据类型的字符串。
名称
字段名称的有序列表,如果没有字段则为 None。
类型
数组的标量类型,例如
int
。方法
construct_array_type
()返回与此 dtype 关联的数组类型。
construct_from_string
(字符串)从字符串构造此类型。
empty
(shape)使用给定的形状构造此数据类型的 ExtensionArray。
is_dtype
(dtype)检查是否匹配 'dtype'。