Spec-Zone.ru › pandas 0.24

pandas.arrays.TimedeltaArray.take

TimedeltaArray.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.

Для многих ExtensionArrays будут два представления 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.TimedeltaArray.take.html

Spec-Zone.ru

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