Spec-Zone.ru › pandas 1

pandas.api.extensions.ExtensionArray

classpandas.api.extensions.ExtensionArray[source]

Абстрактный базовый класс для пользовательских одномерных типов массивов.

pandas распознает экземпляры этого класса как правильные массивы со своим типом и не будет пытаться преобразовывать их в объекты. Они могут быть сохранены непосредственно внутри DataFrame или Series.

Примечания

Интерфейс включает следующие абстрактные методы, которые должны быть реализованы подклассами:

  • _from_sequence

  • _from_factorized

  • __getitem__

  • __len__

  • __eq__

  • 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, argmax, argmin / _values_for_argsort

  • searchsorted

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

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

  • _reduce

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

  • _from_sequence_of_strings

Этот класс не наследуется от ‘abc.ABCMeta’ по соображениям производительности. Методы и свойства, необходимые для интерфейса, вызывают pandas.errors.AbstractMethodError , и метод register для регистрации виртуальных подклассов не предоставляется.

ExtensionArrays ограничены 1 измерением.

Они могут быть поддержаны ни одним, одним или многими массивами NumPy. Например, pandas.Categorical — это массив расширений, поддерживаемый двумя массивами, один для кодов, а другой для категорий. Массив адресов IPv6 может быть поддержан структурированным массивом NumPy с двумя полями, одно для нижних 64 битов, а другое для верхних 64 битов. Или они могут быть поддержаны другим типом хранения, например, списками Python. Pandas не делает предположений о том, как хранятся данные, только что их можно преобразовать в массив NumPy. Интерфейс ExtensionArray не налагает никаких правил на то, как хранятся эти данные. Однако в настоящее время данные поддержки не могут храниться в атрибутах, называемых .values или ._values, чтобы обеспечить полную совместимость с внутренними элементами pandas. Но другие имена, как .data, ._data, ._items,… можно свободно использовать.

Если реализуется интерфейс NumPy __array_ufunc__, pandas ожидает, что

  1. Вы откладываете, возвращая NotImplemented, когда любые Series присутствуют в inputs. Pandas извлечёт массивы и снова вызовет ufunc.

  2. Вы определяете кортеж _HANDLED_TYPES в качестве атрибута класса. Pandas проверяет это, чтобы определить, является ли ufunc допустимым для имеющихся типов.

См. Функции NumPy для получения дополнительной информации.

По умолчанию ExtensionArrays не являются хешируемыми. Неизменяемые подклассы могут переопределить это поведение.

Атрибуты

dtype

Экземпляр 'ExtensionDtype'.

nbytes

Количество байтов, необходимых для хранения этого объекта в памяти.

ndim

Extension Array может быть только одномерным.

shape

Возвращает кортеж измерений массива.

Методы

argsort([ascending, kind, na_position])

Возвращает индексы, которые отсортируют этот массив.

astype(dtype[, copy])

Преобразовать в массив NumPy или ExtensionArray с 'dtype'.

copy()

Возвращает копию массива.

dropna()

Возвращает ExtensionArray без значений NA.

factorize([na_sentinel, use_na_sentinel])

Кодирует массив расширения как перечислимый тип.

fillna([value, method, limit])

Заполняет значения NA/NaN указанным методом.

equals(other)

Возвращает, эквивалентен ли другой массив этому массиву.

insert(loc, item)

Вставляет элемент в заданную позицию.

isin(values)

Точечное сравнение на предмет включения в заданные значения.

isna()

Одномерный массив, указывающий, отсутствует ли каждое значение.

ravel([order])

Возвращает сплющенную представление этого массива.

repeat(repeats[, axis])

Повторяет элементы ExtensionArray.

searchsorted(value[, side, sorter])

Находит индексы, где элементы должны быть вставлены для поддержания порядка.

shift([periods, fill_value])

Сдвигает значения на нужное количество.

take(indices, *[, allow_fill, fill_value])

Извлекает элементы из массива.

tolist()

Возвращает список значений.

unique()

Вычисляет ExtensionArray уникальных значений.

view([dtype])

Возвращает представление массива.

_concat_same_type(to_concat)

Конкатенирует несколько массивов этого типа.

_formatter([boxed])

Функция форматирования для скалярных значений.

_from_factorized(values, original)

Восстанавливает ExtensionArray после факторизации.

_from_sequence(scalars, *[, dtype, copy])

Создаёт новый ExtensionArray из последовательности скалярных значений.

_from_sequence_of_strings(strings, *[, ...])

Создаёт новый ExtensionArray из последовательности строк.

_reduce(name, *[, skipna])

Возвращает скалярный результат выполнения операции сокращения.

_values_for_argsort()

Возвращает значения для сортировки.

_values_for_factorize()

Возвращает массив и значение отсутствия, подходящие для факторизации.

© 2008–2022, 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/1.5.0/reference/api/pandas.api.extensions.ExtensionArray.html

Spec-Zone.ru

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