我想重置数据帧开始评估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
我该怎么做?
答案 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