使用相同的密钥在pandas系列中分组连续元素

时间:2014-01-23 14:02:00

标签: python group-by pandas

我在DataFrame中有一个只包含0或1的系列。我想得到每个'簇'的长度列表为0.这是一个玩具模型:

a=pd.DataFrame({'x':[1,1,0,0,1,0]})

我期望的是[2,1]

要做到这一点,我可以做到以下几点:

a[a['x']==0].index

然后使用groupby查找已在SO上学习的连续索引。那么有更有效的方法吗?

1 个答案:

答案 0 :(得分:1)

您可以使用itertools.groupby获得此结果。

from itertools import groupby

data = [1, 1, 0, 0, 1, 0]
grouper = (list(s) for _, s in groupby(data))
lengths = [len(s) for s in grouper if s[0] == 0]
print(lengths)

不确定groupby中的pandas是否编码相同。