Spec-Zone.ru › pandas 0.24

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

Предоставлен базовый метод отображения, показывающий тип, (усечённые) данные, длину и тип данных. Он может быть настроен или заменён путём переопределения:

  • __repr__ : Базовый метод отображения для ExtensionArray.
  • _formatter : Вывод скаляров внутри Series или DataFrame.

Некоторые методы требуют приведения ExtensionArray к массиву ndarray с типами Python с self.astype(object), что может быть дорогостоящим. Если производительность является проблемой, мы настоятельно рекомендуем переопределить следующие методы:

  • fillna
  • dropna
  • unique
  • factorize / _values_for_factorize
  • argsort / _values_for_argsort
  • searchsorted

Остальные методы, реализованные в этом классе, должны быть производительными, так как они лишь комбинируют абстрактные методы. Тем не менее, может быть доступна более эффективная реализация, и эти методы могут быть переопределены.

Можно реализовать методы для обработки массивов с сокращениями.

  • _reduce

Можно реализовать методы для обработки парсинга из строк, которые будут использоваться в методах, таких как pandas.io.parsers.read_csv.

  • _from_sequence_of_strings

Этот класс не наследуется от ‘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]) Возвращает копию массива.
dropna() Возвращает ExtensionArray без значений NA.
factorize([na_sentinel]) Кодирование массива расширения как перечислимого типа.
fillna([value, method, limit]) Заполнение значений NA/NaN с использованием указанного метода.
isna() Одномерный массив, указывающий, отсутствует ли каждое значение.
repeat(repeats[, axis]) Повторение элементов ExtensionArray.
searchsorted(value[, side, sorter]) Поиск индексов, куда следует вставить элементы для поддержания порядка.
shift([periods, fill_value]) Сдвиг значений на нужное количество позиций.
take(indices[, allow_fill, fill_value]) Извлечение элементов из массива.
unique() Вычисление ExtensionArray уникальных значений.

© 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.24.2/reference/api/pandas.api.extensions.ExtensionArray.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API