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