连续True间隔的开始和结束索引



我有以下Pandas系列:

s = pd.Series([False, True, True, False, True, True, True, False, True])

如何获得元组列表,每个元组表示连续True间隔的开始和结束索引。对于上面的片段,预期结果是:

[(1, 2), (4, 6), (8, 8)]

IIUC

t=s[s].index.to_series()
t.groupby(t.diff().ne(1).cumsum()).agg(['first','last']).apply(tuple,1).tolist()
Out[257]: [(1, 2), (4, 6), (8, 8)]

最新更新