Метод min
Метод min применяется к объекту Rolling,
который создаётся через аксессор rolling у
DataFrame или Series. Он возвращает
минимальное значение в каждом скользящем окне.
Метод не принимает дополнительных параметров,
так как окно уже задано при создании объекта
Rolling.
Синтаксис
df.rolling(window).min()
ser.rolling(window).min()
где window - размер скользящего окна.
Метод возвращает объект того же типа, что и исходный,
с вычисленными минимальными значениями.
Для первых элементов, где окно не заполнено,
возвращается NaN.
Пример
Создадим Series и найдём минимум в скользящем окне размером 3:
import pandas as pd
ser = pd.Series([5, 2, 8, 1, 9, 3])
res = ser.rolling(3).min()
print(res)
Результат выполнения кода:
0 NaN
1 NaN
2 2.0
3 1.0
4 1.0
5 1.0
dtype: float64
Первые два элемента - NaN, так как для них окно не заполнено.
Третий элемент - минимум из 5, 2, 8, четвёртый - из 2, 8, 1,
и так далее.
Пример
Применим метод min к DataFrame с несколькими столбцами:
import pandas as pd
df = pd.DataFrame({
'a': [5, 2, 8, 1, 9],
'b': [10, 20, 5, 15, 7]
})
res = df.rolling(2).min()
print(res)
Результат выполнения кода:
a b
0 NaN NaN
1 2.0 10.0
2 2.0 5.0
3 1.0 5.0
4 1.0 7.0
Для каждого столбца вычисляется минимум в окне размером 2.
Первый элемент - NaN, второй - минимум из 5 и 2
для столбца 'a', и из 10 и 20 для столбца 'b', и так далее.
Пример
Используем метод min с параметром center
при создании окна для центрирования:
import pandas as pd
ser = pd.Series([4, 7, 2, 9, 5])
res = ser.rolling(3, center=True).min()
print(res)
Результат выполнения кода:
0 NaN
1 2.0
2 2.0
3 2.0
4 NaN
dtype: float64
При центрированном окне значения рассчитываются относительно центрального элемента.
Крайние элементы остаются NaN, так как для них окно выходит за границы.