Pandas:dataframe cumsum,如果其他列为false,则重置
我有一个2列的数据框架,这里的目标很简单;如果行-列设置为False,则重置df.cumsum() df 结果如下: df 如果我像本文中所描述的那样在数据帧上循环,我可以获得想要的结果,但是我正在寻找一种使用pandas标准函数的更矢量化的方法,如何: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
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