[英]Count consecutive number of ones in a pandas series
如果我有以下熊貓系列:
import pandas as pd
s = pd.Series([0,1,1,0,1,0,0,1,1,0,1,1,1])
我想要一個連續計數的列表,即在這種情況下所需的輸出是
[2,1,2,3]
如何獲得上述輸出?
讓我們嘗試使用cumsum
創建新密鑰
s[s==1].groupby(s.eq(0).cumsum()).sum()
1 2
2 1
4 2
5 3
dtype: int64
#s[s == 1].groupby(s.eq(0).cumsum()).sum().tolist()
#[2, 1, 2, 3]
以下應該工作:
[len(i) for i in ''.join([str(i) for i in list(s)]).split('0') if '1' in i]
輸出:
[2, 1, 2, 3]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.