pandas.api.extensions.ExtensionArray#
- class pandas.api.extensions.ExtensionArray[源代码]#
自定义一维数组类型的抽象基类。
Pandas会将此类的实例识别为具有自定义类型的适当数组,并且不会试图将它们强制为对象。它们可以直接存储在
DataFrame
或Series
。注意事项
该接口包括以下必须由子类实现的抽象方法:
_from_sequence
_from_factorized
__getitem__
__len__
__eq__
数据类型
N字节
ISNA
拿走
复制
_concat_same_type
提供了显示类型、(截断的)数据、长度和数据类型的默认REPR。它可以通过以下方式进行自定义或替换:
__repr__ :Extension数组的默认epr。
_Formatter:打印Series或DataFrame中的标量。
某些方法需要将Extension数组强制转换为一组包含
self.astype(object)
,这可能是昂贵的。如果性能令人担忧,我们强烈建议您优先使用以下方法:填充物
Dropna
独一无二的
因数分解/_Values_for_Factorize
Argsort、argmax、argmin/_VALUES_FOR_ARSORT
搜索排序
在这个类上实现的其余方法应该是可执行的,因为它们只组成抽象方法。尽管如此,可能会有更有效的实现,并且这些方法可以被覆盖。
可以实现处理数组缩减的方法。
_reduce
可以实现一些方法来处理从字符串进行的解析,这些字符串将用于
pandas.io.parsers.read_csv
。_from_sequence_of_strings
出于性能原因,此类不是从‘abc.ABCMeta’继承的。接口引发所需的方法和属性
pandas.errors.AbstractMethodError
而且没有register
提供了用于注册虚拟子类的方法。ExtensionArray限制为1维。
它们可以由无、一个或多个NumPy数组支持。例如,
pandas.Categorical
是由两个数组支持的扩展数组,一个用于代码,一个用于类别。IPv6地址数组可以由具有两个字段的NumPy结构化数组支持,一个用于低64位,一个用于高64位。或者,它们可能由某种其他存储类型支持,如Python列表。Pandas对数据的存储方式没有任何假设,只是可以将其转换为NumPy数组。Extension数组接口不会对此数据的存储方式强加任何规则。但是,目前支持数据不能存储在称为.values
或._values
以确保与Pandas内部完全兼容。但其他名字,如.data
,._data
,._items
..可以自由使用。如果实现NumPy的
__array_ufunc__
界面,Pandas期待着你通过返回来推迟
NotImplemented
当有任何系列出现在 inputs 。Pandas将提取数组并再次调用ufunc。您可以定义一个
_HANDLED_TYPES
元组作为类的属性。Pandas会检查这一点,以确定ufunc对于当前的类型是否有效。
看见 NumPy泛函 想要更多。
默认情况下,ExtensionArray不可哈希。不变的子类可能会覆盖此行为。
属性
“ExtensionDtype”的实例。
在内存中存储此对象所需的字节数。
扩展数组仅允许为一维。
返回数组维度的元组。
方法:
argsort
\([ascending, kind, na_position] )返回对此数组进行排序的索引。
astype
\(dtype[, copy] )强制转换为具有‘dtype’的NumPy数组或Extension数组。
copy
\()返回数组的副本。
dropna
\()返回不带NA值的Extension数组。
factorize
\([na_sentinel] )将扩展数组编码为枚举类型。
fillna
\([value, method, limit] )使用指定的方法填充NA/NaN值。
equals
\(其他)如果另一个数组与此数组等价,则返回。
insert
\(位置,项目)在给定位置插入项目。
isin
\(值)对给定值中的集合包容进行逐点比较。
isna
\()指示是否缺少每个值的一维数组。
ravel
\([order] )在此数组上返回平面化视图。
repeat
\(重复[, axis] )重复Extension数组的元素。
searchsorted
\(值[, side, sorter] )查找应插入元素以维持顺序的索引。
shift
\([periods, fill_value] )按所需数量移动值。
take
\(索引,*[, allow_fill, fill_value] )从数组中获取元素。
tolist
\()返回值列表。
unique
\()计算唯一值的Extension数组。
view
\([dtype] )返回阵列上的视图。
_concat_same_type
\(至_连接)连接此数据类型的多个数组。
_formatter
\([boxed] )标量值的格式化函数。
_from_factorized
\(值,原始)分解后重新构造扩展数组。
_from_sequence
\(标量,*[, dtype, copy] )从标量序列构造一个新的Extension数组。
_from_sequence_of_strings
\(字符串,*[, ...] )从字符串序列构造一个新的Extension数组。
_reduce
\(名称,*[, skipna] )返回执行约简操作的标量结果。
返回值以进行排序。
返回适合因式分解的数组和缺失值。