python - 连续 True 区间的开始和结束索引

标签 python pandas series

我有以下 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)]

关于python - 连续 True 区间的开始和结束索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51461280/

相关文章:

python - Lambda 用例混淆

python - 将一串表情符号拆分为单个表情符号字符

python - 如何计算减少点的个数?

java - JFreeChart XYSeries 作为字符串

python - 使用 python Xpath 删除换行符和空格解析 XML

python - 如何自定义条形注释以不显示选定值

python - 类型错误 : Timestamp subtraction

python - 列表的列,将列表转换为字符串作为新列

Python Pandas : Breaking a list or series into columns of different sizes

python - 如何从有条件的 pandas 系列中删除字符?