У меня есть мультииндексный фрейм данных.Столбцы индекса: Date
и Symbol
.Я хочу сбросить строку, в которой датафрейм начинает оценивать rolling_max
из number
для каждого Symbol
.Я хочу сделать это на основе столбца, содержащего True
или False
.Если condition
равно True
для Date
, тогда rolling_max
следует сбросить и рассчитать максимальное значение из этого Date
.Если condition
равно False
, то rolling_max
должно работать «нормально» - принимая максимум сегодняшнего и вчерашнего number
для данного Symbol
.Столбец condition
не имеет никакого отношения к столбцу number
(они не зависят друг от друга).Это ожидаемый результат:
number condition rolling_max
Date Symbol
1990-01-01 A 29 False 29
1990-01-01 B 7 False 7
1990-01-02 A 13 True 13 # Reset rolling max for 'A'
1990-01-02 B 2 False 7
1990-01-03 A 11 False 13
1990-01-03 B 52 True 52 # Reset rolling max for 'B'
1990-01-04 A 30 False 30
1990-01-04 B 1 False 52
1990-01-05 A 19 True 19 # Reset rolling max for 'A'
1990-01-05 B 65 False 65
1990-01-06 A 17 False 19
1990-01-06 B 20 True 20 # Reset rolling max for 'B'
Как я могу это сделать?