Spec-Zone.ru › pandas 1

pandas.Series.asfreq

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

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

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

Если индекс этого Series является 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

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

См. также

reindex

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

Примечания

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

Примеры

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

>>> index = pd.date_range('1/1/2000', periods=4, freq='T')
>>> 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/1.5.0/reference/api/pandas.Series.asfreq.html

Spec-Zone.ru

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