Метод max аксессора rolling
Метод max аксессора rolling применяется к объекту скользящего окна
и возвращает максимальное значение для каждой позиции окна.
Метод не принимает дополнительных параметров и вычисляет максимум
по всем элементам текущего окна.
Синтаксис
df.rolling(window).max()
Пример
Давайте вычислим максимум в скользящем окне размера 3 для столбца 'a':
import pandas as pd
df = pd.DataFrame({
'a': [1, 5, 3, 8, 2],
'b': [10, 20, 30, 40, 50]
})
res = df['a'].rolling(3).max()
print(res)
Результат выполнения кода:
0 NaN
1 NaN
2 5.0
3 8.0
4 8.0
dtype: float64
Пример
Применим метод max ко всей таблице DataFrame.
Результатом будет таблица с максимумами для каждого столбца:
import pandas as pd
df = pd.DataFrame({
'a': [1, 5, 3, 8, 2],
'b': [10, 20, 30, 40, 50]
})
res = df.rolling(2).max()
print(res)
Результат выполнения кода:
a b
0 NaN NaN
1 5.0 20.0
2 5.0 30.0
3 8.0 40.0
4 8.0 50.0
Пример
Используем метод max с окном, размер которого равен длине данных.
В этом случае результат будет содержать максимум по всем данным
только в последней позиции:
import pandas as pd
ser = pd.Series([10, 20, 30, 40, 50])
res = ser.rolling(5).max()
print(res)
Результат выполнения кода:
0 NaN
1 NaN
2 NaN
3 NaN
4 50.0
dtype: float64
Пример
Метод max можно комбинировать с другими операциями,
например, с цепочкой методов для фильтрации данных:
import pandas as pd
df = pd.DataFrame({
'a': [1, 5, 3, 8, 2],
'b': [10, 20, 30, 40, 50]
})
res = df.rolling(3).max().dropna()
print(res)
Результат выполнения кода:
a b
2 5.0 30.0
3 8.0 40.0
4 8.0 50.0