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