我想计算一个 pandas 列的滚动最大值,其中窗口大小不同,并且是当前行索引与满足特定条件的行之间的差异。
所以,作为一个例子,我有:
df = pd.DataFrame({'a': [0,1,0,0,0,1,0,0,0,0,1,0],
'b': [5,4,3,6,1,2,3,4,2,1,7,8]})
Run Code Online (Sandbox Code Playgroud)
我想要 df.b 的滚动最大值,因为上一次 df.a == 1。即我想得到这个:
a b rm
0 0 5 NaN <- no previous a==1
1 1 4 4 <- a==1
2 0 3 4
3 0 6 6
4 0 1 6
5 1 2 2 <- a==1
6 0 3 3
7 0 4 4
8 0 2 4
9 0 1 4
10 1 7 7 <- a==1
11 0 8 8
Run Code Online (Sandbox Code Playgroud)
我的 df 有一个没有间隙的整数索引,所以我尝试这样做: …