Метод mean
Метод mean применяется к объекту Resampler,
который создаётся методом resample у DataFrame
или Series с временным индексом. Он вычисляет среднее
арифметическое значение для каждого интервала передискретизации.
Метод не принимает дополнительных параметров и возвращает
DataFrame или Series со средними значениями
по каждому интервалу.
Синтаксис
resampler.mean()
Пример
Давайте создадим временной ряд с ежедневными данными и вычислим среднее значение за недельные интервалы:
import pandas as pd
dates = pd.date_range('2023-01-01', periods=14, freq='D')
df = pd.DataFrame({
'a': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],
'b': [10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, 130, 140]
}, index=dates)
res = df.resample('W').mean()
print(res)
Результат выполнения кода:
a b
2023-01-01 4.0 40.0
2023-01-08 11.0 110.0
Пример
Рассмотрим применение метода mean к отдельной колонке Series:
import pandas as pd
dates = pd.date_range('2023-01-01', periods=10, freq='D')
ser = pd.Series([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], index=dates)
res = ser.resample('2D').mean()
print(res)
Результат выполнения кода:
2023-01-01 1.5
2023-01-03 3.5
2023-01-05 5.5
2023-01-07 7.5
2023-01-09 9.5
Freq: 2D, dtype: float64
Пример
Метод mean игнорирует пропущенные значения NaN при вычислении среднего:
import pandas as pd
import numpy as np
dates = pd.date_range('2023-01-01', periods=6, freq='D')
df = pd.DataFrame({
'a': [1, 2, np.nan, 4, 5, 6],
'b': [10, 20, 30, np.nan, 50, 60]
}, index=dates)
res = df.resample('2D').mean()
print(res)
Результат выполнения кода:
a b
2023-01-01 1.500000 15.0
2023-01-03 4.000000 30.0
2023-01-05 5.500000 55.0
Пример
Вычислим среднее значение за месячные интервалы с использованием левой границы интервала:
import pandas as pd
dates = pd.date_range('2023-01-15', periods=40, freq='D')
df = pd.DataFrame({
'a': range(1, 41),
'b': range(10, 410, 10)
}, index=dates)
res = df.resample('M', label='left').mean()
print(res)
Результат выполнения кода:
a b
2022-12-31 8.235294 82.352941
2023-01-31 24.500000 245.000000