Как условно сбросить максимальное максимальное начальное значение / строку в кадре данных панд? - PullRequest
0 голосов
/ 04 октября 2018

Я хочу сбросить строку, в которой датафрейм начинает оценивать rolling max.Я хочу сделать это на основе столбца, содержащего True или False.Это ожидаемый результат:

     number     condition     rolling_max
0    77         False         77
1    80         False         80
2    54         True          54 # starting max calculation from this point
3    23         False         54
4    60         False         60
5    100        False         100
6    15         False         100
7    119        False         119
8    10         True          10 # starting max calculation from this point
9    65         False         65
10   20         True          20 # starting max calculation from this point

Как я могу это сделать?

1 Ответ

0 голосов
/ 04 октября 2018

Используя cumsum, создайте ключ groupby, затем используйте cummax

df.groupby(df.condition.cumsum()).number.cummax()
Out[889]: 
0      77
1      80
2      54
3      54
4      60
5     100
6     100
7     119
8      10
9      65
10     20
Name: number, dtype: int64
...