如何有条件地重置熊猫数据帧中的滚动最大初始值/行?

时间:2018-10-04 15:10:09

标签: pandas dataframe max

我想重置数据帧开始评估rolling max的行。我想基于包含TrueFalse的列来执行此操作。这是预期的输出:

     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 :(得分:3)

使用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