У меня есть фрейм данных с 2 столбцами
df = pd.DataFrame(np.random.randint(0,100,size=(100, 2)), columns=list('AB'))
A B
0 11 10
1 61 30
2 24 54
3 47 52
4 72 42
... ... ...
95 61 2
96 67 41
97 95 30
98 29 66
99 49 22
100 rows × 2 columns
Теперь я хочу создать третий столбец, который является скользящим окном max столбца 'A', НО максимум должен быть ниже, чем соответствующий значение в col 'B'. Другими словами, я хочу, чтобы значение 4 (с использованием размера окна 4) в столбце «A» было ближе к значению в столбце «B», но меньше, чем B
Так, например, в строке 3 47 52 новое значение, которое я ищу, это не 61, а 47, потому что это самое высокое значение 4, которое не превышает 52
псевдокод
df['C'] = df['A'].rolling(window=4).max() where < df['B']