我有一个由0和1组成的矩阵,希望对每一列进行cumsum运算,当观察到0时重置为0。例如,如果我们有以下矩阵:
df = pd.DataFrame([[0,1],[1,1],[0,1],[1,0],[1,1],[0,1]],columns = ['a','b'])
print(df)
a b
0 0 1
1 1 1
2 0 1
3 1 0
4 1 1
5 0 1
我希望得到的结果是:
print(df)
a b
0 0 1
1 1 2
2 0 3
3 1 0
4 2 1
5 0 2
然而,当我尝试使用 df.cumsum() * df
时,我能够正确地识别出0元素,但计数器并没有重置:
print(df.cumsum() * df)
a b
0 0 1
1 1 2
2 0 3
3 2 0
4 3 4
5 0 5