选择符合Pandas条件的行上方的行

时间:2017-04-27 11:20:59

标签: python pandas numpy

我有这样的数据框。如果满足某个条件,我想选择上面的行。例如,如果数字> 2,然后我想和约翰,理查德和保罗一起挑选行。即数字最多可导致三行的行。我也想挑选迈尔斯上面的5行。即迈尔斯,杰西卡,阿什顿,小时候,杰森。

   name     number
   Adrian     1
   Peter      2
   John       1  
   Richard    2
   Paul       3 
   Ashley     1
   Winchester 0
   Jason      1
   Whiley     2 
   Ashton     3
   Jessica    4
   myers      5

输出可能如下所示

 name    number
 John       1
 Richard    2
 Paul       3
 Jason      1
 Whiley     2 
 Ashton     3
 Jessica    4
 myers      5

2 个答案:

答案 0 :(得分:4)

这种笨拙的作品:

def get_number(n):
    position = df[df['number']==n].index[0]
    find = range(position - (n-1), position + 1)
    return df.loc[find]

print get_number(3)

答案 1 :(得分:1)

def Select_no(n):
    position = df[df['number']==n].index[0]
    find = range(position - (n-1), position + 1)
    return df.loc[find]

df1 = Select_no(3)
df2 = df[7:]
df1 = df1.append(df2)

如果您希望索引从0开始,您也可以df1.reset_index(inplace=True)enter image description here