我在DataFrame中有一个只包含0或1的系列。我想得到每个'簇'的长度列表为0.这是一个玩具模型:
a=pd.DataFrame({'x':[1,1,0,0,1,0]})
我期望的是[2,1]
要做到这一点,我可以做到以下几点:
a[a['x']==0].index
然后使用groupby查找已在SO上学习的连续索引。那么有更有效的方法吗?
答案 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
是否编码相同。