pandas.api.extensions.ExtensionArray
-
class pandas.api.extensions.ExtensionArray[source] -
Абстрактный базовый класс для пользовательских одномерных типов массивов.
pandas будет распознавать экземпляры этого класса как правильные массивы с пользовательским типом и не будет пытаться преобразовать их в объекты. Они могут храниться непосредственно внутри
DataFrameилиSeries.Введено в версии 0.23.0.
Примечания
Интерфейс включает следующие абстрактные методы, которые должны быть реализованы подклассами:
- _from_sequence
- _from_factorized
- __getitem__
- __len__
- dtype
- nbytes
- isna
- take
- copy
- _concat_same_type
Дополнительный метод доступен для удовлетворения внутренних, частных API-блоков pandas.
- _formatting_values
Некоторые методы требуют приведения ExtensionArray к ndarray Python-объектов с
self.astype(object), что может быть дорогостоящим. Если производительность является проблемой, настоятельно рекомендуется переопределить следующие методы:- fillna
- unique
- factorize / _values_for_factorize
- argsort / _values_for_argsort
Этот класс не наследуется от ‘abc.ABCMeta’ по соображениям производительности. Методы и свойства, необходимые для интерфейса, вызывают
pandas.errors.AbstractMethodErrorи не предоставляется методregisterдля регистрации виртуальных подклассов.ExtensionArrays ограничены одним измерением.
Они могут быть основаны на нуле, одном или нескольких массивах NumPy. Например,
pandas.Categorical— это массив расширений, поддерживаемый двумя массивами, один для кодов, а другой — для категорий. Массив адресов IPv6 может быть основан на структурированном массиве NumPy с двумя полями, одно для младших 64 бит и одно для старших 64 бит. Или они могут быть основаны на другом типе хранения, например, Python-списках. Pandas не делает предположений о том, как хранятся данные, только о том, что их можно преобразовать в массив NumPy. Интерфейс ExtensionArray не накладывает никаких правил на то, как хранятся эти данные. Однако в настоящее время данные для хранения не могут быть сохранены в атрибутах, называемых.valuesили._values, чтобы обеспечить полную совместимость с внутренними компонентами pandas. Но другие имена, такие как.data,._data,._items, … могут быть свободно использованы.Атрибуты
dtypeЭкземпляр ‘ExtensionDtype’. nbytesКоличество байтов, необходимых для хранения этого объекта в памяти. ndimМассивы расширения разрешены только одномерными. shapeВозвращает кортеж размерностей массива. Методы
argsort([ascending, kind])Возвращает индексы, которые отсортировали бы этот массив. astype(dtype[, copy])Преобразовать в массив NumPy с ‘dtype’. copy([deep])Возвращает копию массива. factorize([na_sentinel])Кодировать массив расширений как перечисляемый тип. fillna([value, method, limit])Заполнить значения NA/NaN с использованием указанного метода. isna()Булевый массив NumPy, указывающий, отсутствует ли каждое значение. take(indices[, allow_fill, fill_value])Извлечь элементы из массива. unique()Вычислить массив расширений уникальных значений.
© 2008–2012, AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team
Licensed under the 3-clause BSD License.
https://pandas.pydata.org/pandas-docs/version/0.23.4/generated/pandas.api.extensions.ExtensionArray.html