如何获取切换标志值和标志切换之间的行数总和 [英] How to get the Toggle flag value and sum of rows between the flag toggle

查看:37
本文介绍了如何获取切换标志值和标志切换之间的行数总和的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

继续我之前的问题 我需要更多帮助.

In continuation to my previous Question I need some more help.

数据框就像

id  power   flag
0   20      0
1   25      0
2   26      1
3   30      1
4   18      0
5   30      0
6   19      0
7   21      1
8   23      0

我正在尝试将标志状态值与切换计数一起使用,表示标志切换状态.输出应该是这样的

I am trying to have the flag state value along with the toggle count, Means flag toggling state. The output should look like this

    Sum of power       flag_state
0   45 (20 +25)           0
1   56 (26 + 30)          1
2   67 (18 +30 +19)       0
3   21 (21)               1
4   23 (23)               0

有人可以帮忙吗?

推荐答案

Create helper Series with shiftcumsum 并聚合 sum, last通过第一个 reset_index:

Create helper Series with shift and cumsum and aggregate sum, last remove helper first level of MultiIndex by first reset_index:

df1 = (df.groupby([df['flag'].ne(df['flag'].shift()).cumsum(), 'flag'])['power']
         .sum()
         .reset_index(level=0, drop=True)
         .reset_index(name='sum of power'))
print (df1)
   flag  sum of power
0     0            45
1     1            56
2     0            67
3     1            21
4     0            23

这篇关于如何获取切换标志值和标志切换之间的行数总和的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆