我需要对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
列。
你做对了,试试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