Spec-Zone.ru › pandas 2

pandas.DataFrame.asfreq

DataFrame.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 к новому индексу с дополнительной логикой заполнения.

Примечания

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

Примеры

Начните с создания серии с 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

Увеличьте частоту выборки серии до 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.DataFrame.asfreq.html

Spec-Zone.ru

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