Pandas:dataframe cumsum,如果其他列为false,则重置

Pandas:dataframe cumsum,如果其他列为false,则重置,pandas,numpy,dataframe,cumsum,Pandas,Numpy,Dataframe,Cumsum,我有一个2列的数据框架,这里的目标很简单;如果行-列设置为False,则重置df.cumsum() df 结果如下: df 如果我像本文中所描述的那样在数据帧上循环,我可以获得想要的结果,但是我正在寻找一种使用pandas标准函数的更矢量化的方法,如何: df['cSum'] = df.groupby((df.condition == 0).cumsum()).value.cumsum() 输出: value condition cSum 0 1 1

我有一个2列的数据框架,这里的目标很简单;如果行-列设置为False,则重置df.cumsum()

df

结果如下:

df

如果我像本文中所描述的那样在数据帧上循环,我可以获得想要的结果,但是我正在寻找一种使用pandas标准函数的更矢量化的方法,如何:

df['cSum'] = df.groupby((df.condition == 0).cumsum()).value.cumsum()
输出:

   value  condition  cSum
0      1          1     1
1      2          1     3
2      3          1     6
3      4          0     4
4      5          1     9

您将连续的行分组在一起,直到在
条件
列中遇到
0
,然后在每个组中分别应用
cumsum

这正是我试图解决的问题,但是接受的解决方案在当前版本的pandas中会引发错误。你知道怎么修吗?
df['cSum'] = df.groupby((df.condition == 0).cumsum()).value.cumsum()
   value  condition  cSum
0      1          1     1
1      2          1     3
2      3          1     6
3      4          0     4
4      5          1     9