熊猫:求和列直到其他列中的条件满足

时间:2021-02-10 21:43:38

标签: python pandas

我需要对 value 列求和,直到遇到 break

df = pd.DataFrame({'value': [1,2,3,4,5,6,7,8], 'break': [0,0,1,0,0,1,0,0]})

   value  break
0      1      0
1      2      0
2      3      1
3      4      0
4      5      0
5      6      1
6      7      0
7      8      0

预期输出

   value  break
0      6      1
1      15     1

我想通过一个小组,但我似乎无处可去。我什至不需要最后的 break 列。

1 个答案:

答案 0 :(得分:2)

您在正确的轨道上,请尝试使用反向累积和进行 groupby:

(df.groupby(df['break'][::-1].cumsum()[::-1],
            as_index=False, sort=False)
   .sum()
   .query('`break` != 0')  # remove this for full data 
)

输出:

   value  break
0      6      1
1     15      1