Метод max аксессора expanding
Метод max аксессора expanding применяется к Series
или DataFrame и возвращает накопленный максимум для
расширяющегося окна. Это означает, что для каждого элемента
вычисляется максимум среди всех предыдущих значений, включая
текущий. Метод полезен для отслеживания рекордных значений
в потоке данных.
Основные параметры метода:
- numeric_only (bool, по умолчанию False) - если True, вычисления выполняются только для числовых столбцов.
- engine (str, по умолчанию None) - определяет движок для вычислений ('cython' или 'numba').
- engine_kwargs (dict, по умолчанию None) - дополнительные параметры для движка.
Синтаксис
series.expanding().max()
df.expanding().max()
Пример
Давайте создадим Series и вычислим накопленный максимум:
import pandas as pd
ser = pd.Series([3, 1, 4, 1, 5, 9, 2])
res = ser.expanding().max()
print(res)
Результат выполнения кода:
0 3.0
1 3.0
2 4.0
3 4.0
4 5.0
5 9.0
6 9.0
dtype: float64
Пример
Теперь применим метод к таблице DataFrame:
import pandas as pd
df = pd.DataFrame({
'a': [2, 8, 3, 6, 1],
'b': [5, 4, 7, 2, 9]
})
res = df.expanding().max()
print(res)
Результат выполнения кода:
a b
0 2.0 5.0
1 8.0 5.0
2 8.0 7.0
3 8.0 7.0
4 8.0 9.0
Пример
Используем параметр numeric_only для фильтрации столбцов:
import pandas as pd
df = pd.DataFrame({
'a': [1, 5, 2, 4],
'b': ['x', 'y', 'z', 'w'],
'c': [10, 8, 6, 12]
})
res = df.expanding().max(numeric_only=True)
print(res)
Результат выполнения кода:
a c
0 1.0 10.0
1 5.0 10.0
2 5.0 10.0
3 5.0 12.0
Пример
Применим метод к данным с пропущенными значениями:
import pandas as pd
import numpy as np
ser = pd.Series([5, np.nan, 7, 2, np.nan, 8])
res = ser.expanding().max()
print(res)
Результат выполнения кода:
0 5.0
1 5.0
2 7.0
3 7.0
4 7.0
5 8.0
dtype: float64