小编nan*_*ohn的帖子

每次有 0 时,Python pandas cumsum 都会重置

我有一个包含 0 和 1 的矩阵,并且想要在每列上做一个 cumsum,只要观察到零,它就会重置为 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
Run Code Online (Sandbox Code Playgroud)

我想要的结果是:

print(df)
   a  b
0  0  1
1  1  2
2  0  3
3  1  0
4  2  1
5  0  2
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试时df.cumsum() * df,我能够正确识别 0 元素,但计数器不会重置:

print(df.cumsum() * df)
   a  b
0  0  1
1  1  2
2  0  3
3  2  0
4 …
Run Code Online (Sandbox Code Playgroud)

python pandas cumsum

9
推荐指数
2
解决办法
6554
查看次数

标签 统计

cumsum ×1

pandas ×1

python ×1