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

Метод resample

Метод resample применяется к DataFrame с временным индексом и выполняет преобразование частоты дискретизации данных. Первым параметром передаётся строка с желаемой частотой, например, 'M' для месяца или 'D' для дня. Вторым параметром можно указать функцию агрегации, либо применить цепочку методов после вызова resample.

Синтаксис

df.resample(rule, axis=0, closed=None, label=None, convention='start', kind=None, loffset=None, base=None, on=None, level=None, origin='start_day', offset=None)

Пример

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

import pandas as pd import numpy as np index = pd.date_range('2026-01-01', periods=24, freq='H') df = pd.DataFrame({'a': range(24), 'b': range(10, 34)}, index=index) res = df.resample('D').sum() print(res)

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

a b 2026-01-01 276 516

Пример

Передискретизируем данные с почасовой на еженедельную частоту с вычислением среднего значения:

import pandas as pd import numpy as np index = pd.date_range('2026-01-01', periods=168, freq='H') df = pd.DataFrame({'a': range(168), 'b': range(10, 178)}, index=index) res = df.resample('W').mean() print(res)

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

a b 2026-01-04 84.000000 94.0 2026-01-11 91.000000 99.0

Пример

Выполним передискретизацию с использованием разных функций агрегации для разных столбцов:

import pandas as pd import numpy as np index = pd.date_range('2026-01-01', periods=48, freq='H') df = pd.DataFrame({'a': range(48), 'b': range(10, 58)}, index=index) res = df.resample('D').agg({'a': 'sum', 'b': 'mean'}) print(res)

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

a b 2026-01-01 276 28.5 2026-01-02 852 56.5

Пример

Используем параметр closed для управления тем, какой интервал включается в группу:

import pandas as pd import numpy as np index = pd.date_range('2026-01-01', periods=12, freq='H') df = pd.DataFrame({'a': range(12)}, index=index) res = df.resample('D', closed='left').sum() print(res)

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

a 2026-01-01 66

Пример

Используем параметр label для управления меткой результата передискретизации:

import pandas as pd import numpy as np index = pd.date_range('2026-01-01', periods=12, freq='H') df = pd.DataFrame({'a': range(12)}, index=index) res = df.resample('D', label='right').sum() print(res)

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

a 2026-01-02 66

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

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