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 ожидает, чтоВы откладываете, возвращая
NotImplemented, когда любые Series присутствуют в inputs. Pandas извлечёт массивы и снова вызовет ufunc.Вы определяете кортеж
_HANDLED_TYPESв качестве атрибута класса. Pandas проверяет это, чтобы определить, является ли ufunc допустимым для имеющихся типов.
См. Функции NumPy для получения дополнительной информации.
По умолчанию ExtensionArrays не являются хешируемыми. Неизменяемые подклассы могут переопределить это поведение.
Атрибуты
Экземпляр 'ExtensionDtype'.
Количество байтов, необходимых для хранения этого объекта в памяти.
Extension Array может быть только одномерным.
Возвращает кортеж измерений массива.
Методы
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])Возвращает скалярный результат выполнения операции сокращения.
Возвращает значения для сортировки.
Возвращает массив и значение отсутствия, подходящие для факторизации.
© 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