python - 仅当上一个 > 当前时求和
问题描述
我遇到的问题是,只有当先前的值大于我的当前值时,我才想继续总结这些值。
解决方案
这可以通过使用groupby
、使用diff
和cumsum
创建附加键来完成,然后我们只需要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
推荐阅读
- vba - 在电子邮件正文中使用 Excel VBA IF THEN 语句
- c - 在c中使用递归函数的寻路程序
- css - 使用 SCSS 和 nuxt 进行主题化
- elasticsearch - 您可以将现有的 Elasticsearch 索引与 Elastic App 搜索挂钩吗
- r - 重新编码多个变量的 R 解决方案
- angular - 订阅另一个组件中的服务变量?
- c# - Json 反序列化动态在 .NET Core 3.1 中不起作用
- javascript - 来自 web api 的值没有被转换
- python - 为什么我在使用 np.nan 时得到 nan 作为字符串,而在使用 pd.NA 时得到了缺失值?
- python - Python,Pandas:从 Excel 文件看起来像元组来创建数据框