[英]Count groups of consecutive values in pandas
我有一個帶有 0 和 1 的 dataframe,我想用Pandas解決方案(不是 itertools,不是 Z23EEEB4347BDD26BFC6B7EE9A37 迭代)計算 1 組(不介意 0)。
其他 SO 帖子建議基於shift()
/ diff()
/ cumsum()
的方法,當 dataframe 中的前導序列以 0 開頭時,這似乎不起作用。
df = pandas.Series([0,1,1,1,0,0,1,0,1,1,0,1,1]) # should give 4
df = pandas.Series([1,1,0,0,1,0,1,1,0,1,1]) # should also give 4
df = pandas.Series([1,1,1,1,1,0,1]) # should give 2
任何想法?
讓我們使用cumsum
識別 1 的不同組,然后使用nunique
計算唯一組的數量
m = df.eq(0)
m.cumsum()[~m].nunique()
結果
case 1: 4
case 2: 4
case 3: 2
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.