Spec-Zone.ru › pandas 0.24

pandas.arrays.DatetimeArray.take

DatetimeArray.take(indices, allow_fill=False, fill_value=None) [source]

Извлечение элементов из массива.

Параметры:
indices : sequence of integers

Индексы для извлечения.

allow_fill : bool, default False

Как обрабатывать отрицательные значения в indices.

  • False: отрицательные значения в indices обозначают позиционные индексы справа (по умолчанию). Это аналогично numpy.take().
  • True: отрицательные значения в indices обозначают пропущенные значения. Эти значения устанавливаются в fill_value. Любые другие отрицательные значения вызывают ValueError.
fill_value : any, optional

Значение заполнения для использования для индексов NA, когда allow_fill равно True. Это может быть None, в таком случае используется значение NA по умолчанию для типа, self.dtype.na_value.

Для многих ExtensionArray существуют два представления fill_value: пользовательское «упакованное» скалярное значение и низкоуровневое физическое значение NA. fill_value должно быть пользовательским вариантом, а реализация должна обрабатывать преобразование этого в физическое представление для обработки извлечения, если необходимо.

Возвращает:
ExtensionArray
Возможные исключения:
IndexError

Когда индексы выходят за пределы массива.

ValueError

Когда indices содержит отрицательные значения, отличные от -1 и allow_fill равно True.

См. также

numpy.take, pandas.api.extensions.take

Примечания

ExtensionArray.take вызывается Series.__getitem__, .loc, iloc, когда indices является последовательностью значений. Дополнительно, она вызывается Series.reindex(), или любым другим методом, вызывающим перевыравнивание, с fill_value.

Примеры

Вот пример реализации, которая полагается на приведение расширенного массива к типу object. Это использует вспомогательный метод pandas.api.extensions.take().

def take(self, indices, allow_fill=False, fill_value=None):
    from pandas.core.algorithms import take

    # If the ExtensionArray is backed by an ndarray, then
    # just pass that here instead of coercing to object.
    data = self.astype(object)

    if allow_fill and fill_value is None:
        fill_value = self.dtype.na_value

    # fill value should always be translated from the scalar
    # type for the array, to the physical storage type for
    # the data, before passing to take.

    result = take(data, indices, fill_value=fill_value,
                  allow_fill=allow_fill)
    return self._from_sequence(result, dtype=self.dtype)

© 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.arrays.DatetimeArray.take.html

Spec-Zone.ru

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