猿问

需要计算连续索引的运行

我需要计算至少有 4 个连续值符合 Pandas 标准的实例。下面的代码给了我一个 Int64Index:


    IN: vals = chunk[chunk[col] > ninetieth].index

    OUT: Int64Index([427, 429, 430, 431, 436, 470, 471, 472, 473, 478, 518, 519, 520,

        521, 522, 565, 566, 567, 568, 569],

       dtype='int64')

我可以通过这种方式得到我想要的:


count = 0

i = 0

while i < range(len(vals)):

    try:

        if vals[i] + 3 == vals[i + 3]:

            count += 1

            i += 3

        else: i += 1

    except: break

但是必须有一种更简单、不那么可怕的方法,对吗?


ETA:在进一步澄清之后,每次运行至少 4 个连续值时,计数应该增加,并且在出现间隙之前不会再次增加。


猛跑小猪
浏览 142回答 1
1回答
随时随地看视频慕课网APP

相关分类

Python
我要回答