Spec-Zone.ru › pandas 2

pandas.Series.asfreq

Series.asfreq(freq, method=None, how=None, normalize=False, fill_value=None)[source]

Преобразование временного ряда к заданной частоте.

Возвращает исходные данные, приведенные к новому индексу с указанной частотой.

Если индекс этого Series/DataFrame является PeriodIndex, новый индекс является результатом преобразования исходного индекса с помощью PeriodIndex.asfreq (поэтому исходный индекс будет отображаться взаимно однозначно на новый индекс).

В противном случае, новый индекс будет эквивалентен pd.date_range(start, end, freq=freq), где start и end соответственно являются первой и последней записью в исходном индексе (см. pandas.date_range()). Значения, соответствующие любым временным интервалам в новом индексе, которые отсутствовали в исходном индексе, будут нулевыми (NaN), если не указан метод заполнения таких неизвестных (см. параметр method ниже).

Метод resample() более подходит, если необходимо выполнить операцию над каждой группой временных интервалов (например, агрегацию) для представления данных с новой частотой.

Параметры:
freq:DateOffset или строка

Частота DateOffset или строка.

method:{‘backfill’/’bfill’, ‘pad’/’ffill’}, по умолчанию None

Метод заполнения пробелов в переиндексированном Series (обратите внимание, что это не заполняет NaN, которые уже присутствовали):

  • ‘pad’ / ‘ffill’: распространяет последнее действительное значение вперед до следующего действительного

  • ‘backfill’ / ‘bfill’: использует следующее действительное значение для заполнения.

how:{‘start’, ‘end’}, по умолчанию end

Только для PeriodIndex (см. PeriodIndex.asfreq).

normalize:bool, по умолчанию False

Нужно ли сбросить индекс выходных данных до полуночи.

fill_value:скаляр, необязательно

Значение, используемое для пропущенных значений, применяется при увеличении выборки (обратите внимание, что это не заполняет NaN, которые уже присутствовали).

Возвращает:
Series/DataFrame

Объект Series/DataFrame, переиндексированный до указанной частоты.

См. также

reindex

Согласование DataFrame с новым индексом с необязательной логикой заполнения.

Заметки

Дополнительную информацию о строках частоты см. на этой ссылке.

Примеры

Начните с создания Series с 4 отметками времени по одной минуте.

>>> index = pd.date_range('1/1/2000', periods=4, freq='min')
>>> series = pd.Series([0.0, None, 2.0, 3.0], index=index)
>>> df = pd.DataFrame({'s': series})
>>> df
                       s
2000-01-01 00:00:00    0.0
2000-01-01 00:01:00    NaN
2000-01-01 00:02:00    2.0
2000-01-01 00:03:00    3.0

Увеличьте выборку Series до 30-секундных интервалов.

>>> df.asfreq(freq='30s')
                       s
2000-01-01 00:00:00    0.0
2000-01-01 00:00:30    NaN
2000-01-01 00:01:00    NaN
2000-01-01 00:01:30    NaN
2000-01-01 00:02:00    2.0
2000-01-01 00:02:30    NaN
2000-01-01 00:03:00    3.0

Увеличьте выборку снова, указав fill value.

>>> df.asfreq(freq='30s', fill_value=9.0)
                       s
2000-01-01 00:00:00    0.0
2000-01-01 00:00:30    9.0
2000-01-01 00:01:00    NaN
2000-01-01 00:01:30    9.0
2000-01-01 00:02:00    2.0
2000-01-01 00:02:30    9.0
2000-01-01 00:03:00    3.0

Увеличьте выборку снова, указав method.

>>> df.asfreq(freq='30s', method='bfill')
                       s
2000-01-01 00:00:00    0.0
2000-01-01 00:00:30    NaN
2000-01-01 00:01:00    NaN
2000-01-01 00:01:30    2.0
2000-01-01 00:02:00    2.0
2000-01-01 00:02:30    3.0
2000-01-01 00:03:00    3.0

© 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.Series.asfreq.html

Spec-Zone.ru

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