РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
130 of 687 menu

Метод asfreq

Метод asfreq применяется к DataFrame с индексом типа DatetimeIndex и возвращает новый объект с измененной частотой. Первым параметром передается новая частота (строка или объект DateOffset), вторым - метод заполнения пропусков. Если метод не указан, отсутствующие значения заполняются NaN. Метод часто используется для приведения данных к единой временной сетке перед анализом.

Синтаксис

df.asfreq(freq, method=None, fill_value=None)

Пример

Давайте изменим частоту индекса с дней на часы:

import pandas as pd dates = pd.date_range('2026-01-01', periods=3, freq='D') df = pd.DataFrame({ 'a': [1, 2, 3], 'b': [10, 20, 30] }, index=dates) res = df.asfreq('H') print(res)

Результат выполнения кода:

a b 2026-01-01 00:00:00 1.0 10.0 2026-01-01 01:00:00 NaN NaN 2026-01-01 02:00:00 NaN NaN 2026-01-01 03:00:00 NaN NaN 2026-01-01 04:00:00 NaN NaN 2026-01-01 05:00:00 NaN NaN 2026-01-01 06:00:00 NaN NaN 2026-01-01 07:00:00 NaN NaN 2026-01-01 08:00:00 NaN NaN 2026-01-01 09:00:00 NaN NaN 2026-01-01 10:00:00 NaN NaN 2026-01-01 11:00:00 NaN NaN 2026-01-01 12:00:00 NaN NaN 2026-01-01 13:00:00 NaN NaN 2026-01-01 14:00:00 NaN NaN 2026-01-01 15:00:00 NaN NaN 2026-01-01 16:00:00 NaN NaN 2026-01-01 17:00:00 NaN NaN 2026-01-01 18:00:00 NaN NaN 2026-01-01 19:00:00 NaN NaN 2026-01-01 20:00:00 NaN NaN 2026-01-01 21:00:00 NaN NaN 2026-01-01 22:00:00 NaN NaN 2026-01-01 23:00:00 NaN NaN 2026-01-02 00:00:00 2.0 20.0

Пример

Теперь используем параметр method для заполнения пропусков значением из предыдущей доступной строки:

import pandas as pd dates = pd.date_range('2026-01-01', periods=3, freq='D') df = pd.DataFrame({ 'a': [1, 2, 3], 'b': [10, 20, 30] }, index=dates) res = df.asfreq('H', method='ffill') print(res.head(10))

Результат выполнения кода:

a b 2026-01-01 00:00:00 1.0 10.0 2026-01-01 01:00:00 1.0 10.0 2026-01-01 02:00:00 1.0 10.0 2026-01-01 03:00:00 1.0 10.0 2026-01-01 04:00:00 1.0 10.0 2026-01-01 05:00:00 1.0 10.0 2026-01-01 06:00:00 1.0 10.0 2026-01-01 07:00:00 1.0 10.0 2026-01-01 08:00:00 1.0 10.0 2026-01-01 09:00:00 1.0 10.0

Пример

А теперь зададим заполнение пропусков конкретным значением с помощью параметра fill_value:

import pandas as pd dates = pd.date_range('2026-01-01', periods=3, freq='D') df = pd.DataFrame({ 'a': [1, 2, 3], 'b': [10, 20, 30] }, index=dates) res = df.asfreq('H', fill_value=0) print(res.head(10))

Результат выполнения кода:

a b 2026-01-01 00:00:00 1.0 10.0 2026-01-01 01:00:00 0.0 0.0 2026-01-01 02:00:00 0.0 0.0 2026-01-01 03:00:00 0.0 0.0 2026-01-01 04:00:00 0.0 0.0 2026-01-01 05:00:00 0.0 0.0 2026-01-01 06:00:00 0.0 0.0 2026-01-01 07:00:00 0.0 0.0 2026-01-01 08:00:00 0.0 0.0 2026-01-01 09:00:00 0.0 0.0

Смотрите также

  • метод resample,
    который агрегирует данные по новой частоте
  • метод reindex,
    который изменяет индекс с возможностью заполнения
  • метод ffill,
    который заполняет пропуски предыдущими значениями
  • метод interpolate,
    который интерполирует пропущенные значения
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить