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