鉴于此数据框:
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
我在哪里找到这些组然后总结它们。
使用groupby
人Series
:
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
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句