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”。