鉴于此数据框:
C
index
0 9
1 0
2 1
3 5
4 0
5 1
6 2
7 20
8 0
如何将其拆分为
组[9, 0]
,[1, 5, 0]
,[1, 2, 20, 0]
?我们的想法是找到所有以0结尾的序列并将它们组合在一起。序列的大小可能不同,最后的序列可能不会以0结尾。第一个元素永远不会是0。
我的最终结果如下:
C_new
9
6
23
我找到这些群体,然后总结它们。
答案 0 :(得分:1)
Series
使用groupby
:
print (df['C'].shift(1).eq(0).cumsum())
0 0
1 0
2 1
3 1
4 1
5 2
6 2
7 2
8 2
Name: C, dtype: int32
df = df['C'].groupby(df['C'].shift(1).eq(0).cumsum()).sum()
print (df)
C
0 9
1 6
2 23
Name: C, dtype: int64