首页 > 解决方案 > 仅当上一个 > 当前时求和

问题描述

我遇到的问题是,只有当先前的值大于我的当前值时,我才想继续总结这些值。

标签: pythonpython-3.xpandasdataframe

解决方案


这可以通过使用groupby、使用diffcumsum创建附加键来完成,然后我们只需要cumsum逆序的值

df['finalvalue']=df.iloc[::-1,:].groupby([df.id,df.value.diff().lt(0).cumsum()]).value.cumsum()
df
Out[208]: 
                    timestamp       id  value  finalvalue
0 2019-11-04  14:00:10.432783  device1   3000        9000
1 2019-11-04  12:20:03.946156  device1   6000        6000
2 2019-11-04  11:19:03.946156  device1   1000        5000
3 2019-11-04  10:19:03.946156  device1   4000        4000
4 2019-11-04  09:19:03.946156  device2   1000        5000
5 2019-11-04  08:19:03.946156  device2   4000        4000

推荐阅读