过滤熊猫中的连续索引

时间:2015-09-29 16:36:58

标签: python pandas indexing

我有一个很大的数据帧,我需要创建一个新的数据帧,只有一个索引连续到另一个索引的数据。 例如:

import pandas as pd
import numpy as np
indexer = [0,1,3,5,6,8,10,12,13,17,18,20,22,24,25,26]
df  = pd.DataFrame(range(50,66), index=indexer, columns = ['A'])

因此,在这种情况下,所需的输出是:

     A
0   50
1   51
5   53
6   54
12  57
13  58
17  59
18  60
24  63
25  64
26  65

在熊猫中有没有快速的方法?或者需要在每一行上使用某种循环和函数来完成它?

1 个答案:

答案 0 :(得分:3)

您无法移动索引,因此首先需要重置它。然后使用loc操作以及上下一班测试。请记住将索引设置回原始索引。

df.reset_index(inplace=True)
>>> df.loc[(df['index'] == df['index'].shift(1) + 1) 
           | (df['index'] == df['index'].shift(-1) - 1), :].set_index('index')
        A
index    
0      50
1      51
5      53
6      54
12     57
13     58
17     59
18     60
24     63
25     64
26     65