pandas.api.extensions.ExtensionArray#
- класс pandas.api.extensions.ExtensionArray[источник]#
Абстрактный базовый класс для пользовательских типов одномерных массивов.
pandas будет распознавать экземпляры этого класса как правильные массивы с пользовательским типом и не будет пытаться преобразовать их в объекты. Они могут храниться непосредственно внутри
DataFrameилиSeries.Атрибуты
Экземпляр ExtensionDtype.
Количество байтов, необходимых для хранения этого объекта в памяти.
Расширенные массивы допускаются только одномерными.
Возвращает кортеж размерностей массива.
Методы
argsort(*[, ascending, kind, na_position])Возвращает индексы, которые отсортируют этот массив.
astype(dtype[, copy])Приведение к массиву NumPy или ExtensionArray с 'dtype'.
copy()Возвращает копию массива.
dropna()Вернуть ExtensionArray без значений NA.
duplicated([keep])Вернуть булев массив ndarray, обозначающий дублирующиеся значения.
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(индексы, *[, allow_fill, fill_value])Извлечь элементы из массива.
tolist()Возвращает список значений.
unique()Вычислить ExtensionArray уникальных значений.
view([dtype])Возвращает представление массива.
_accumulate(name, *[, skipna])Возвращает ExtensionArray, выполняющий операцию накопления.
_concat_same_type(to_concat)Объединить несколько массивов этого типа данных.
_explode()Преобразовать каждый элемент списка в строку.
_formatter([boxed])Функция форматирования для скалярных значений.
_from_factorized(значения, оригинал)Восстановить ExtensionArray после факторизации.
_from_sequence(скаляры, *[, 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])Возвращает скалярный результат выполнения операции редукции.
Возвращает значения для сортировки.
Возвращает массив и значение для пропусков, подходящие для факторизации.
Примечания
Интерфейс включает следующие абстрактные методы, которые должны быть реализованы подклассами:
_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
_pad_or_backfill
dropna
уникальный
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, … можно свободно использовать.Если реализуется NumPy's
__array_ufunc__интерфейс, pandas ожидает, чтоВы откладываете, возвращая
NotImplementedкогда любые Series присутствуют в входные данные. Pandas извлечёт массивы и снова вызовет ufunc.Вы определяете
_HANDLED_TYPESкортеж как атрибут класса. Pandas проверяет это, чтобы определить, допустима ли ufunc для присутствующих типов.
См. Универсальные функции NumPy подробнее.
По умолчанию, ExtensionArrays не являются хэшируемыми. Неизменяемые подклассы могут переопределить это поведение.
Примеры
Пожалуйста, ознакомьтесь со следующим: