Spec-Zone.ru › pandas 2

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

  • interpolate

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

  • __repr__ : По умолчанию repr для ExtensionArray.

  • _formatter : Вывод скаляров внутри Series или DataFrame.

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

  • fillna

  • _pad_or_backfill

  • dropna

  • unique

  • factorize / _values_for_factorize

  • argsort, argmax, argmin / _values_for_argsort

  • searchsorted

  • map

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

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

  • _accumulate

  • _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,… могут быть свободно использованы.

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

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

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

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

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

Примеры

Пожалуйста, обратитесь к следующему:

pandas-dev/pandas

Атрибуты

dtype

Экземпляр ExtensionDtype.

nbytes

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

ndim

Extension Arrays разрешено быть только одномерными.

shape

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

Методы

argsort(*[, ascending, kind, na_position])

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

astype(dtype[, copy])

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

copy()

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

dropna()

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

duplicated([keep])

Возвращает булевый массив, обозначающий дублирующиеся значения.

factorize([use_na_sentinel])

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

fillna([value, method, limit, copy])

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

equals(other)

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

insert(loc, item)

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

interpolate(*, method, axis, index, limit, ...)

См. DataFrame.interpolate.__doc__.

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])

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

_accumulate(name, *[, skipna])

Возвращает ExtensionArray, выполняющий операцию накопления.

_concat_same_type(to_concat)

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

_explode()

Преобразует каждый элемент типа список в строку.

_formatter([boxed])

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

_from_factorized(values, original)

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

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

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

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

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

_hash_pandas_object(*, encoding, hash_key, ...)

Метод для hash_pandas_object.

_pad_or_backfill(*, method[, limit, ...])

Заполняет значения методом сдвига вперёд или назад, используется в Series/DataFrame ffill и bfill.

_reduce(name, *[, skipna, keepdims])

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

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

Spec-Zone.ru

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