如何根据 pandas Dataframe 中的给定索引获取接下来的 5 条记录

How to fetch next 5 records based on given index in pandas Dataframe

我想获取特定索引之后的下 5 条记录。

例如,这是我的数据框:

    Id  Name        code
    1   java         45
    2   python       78
    3   c            65
    4   c++          25
    5   html         74
    6   css          63
    7   javascript   45 
    8   php          44
    9   Ajax         88
    10  jQuery       92

当我将索引值提供为 3 时,代码必须从 3 中获取接下来的 5 个值。所以结果应该是这样的:

   Id  Name        code
    3   c            65
    4   c++          25
    5   html         74
    6   css          63
    7   javascript   45 

我不知道该怎么做。我的代码无法正常工作。

我正在使用此代码获取接下来的 5 条记录:

data = df.iloc[df.index.get_loc(indexid):+5]

我会做:

idx = df.reset_index()['Id'].eq(8).idxmax()
ranges = np.r_[idx:idx+5] % len(df)

df.iloc[ranges]

输出:

   Id    Name  code
7   8     php    44
8   9    Ajax    88
9  10  jQuery    92
0   1    java    45
1   2  python    78

你很接近,还需要将 5 添加到第一个位置,所以使用:

#if Id is not index
#df = df.set_index('Id')

p = df.index.get_loc(3)
df = df.iloc[p:p+5]
print (df)
          Name  code
Id                  
3            c    65
4          c++    25
5         html    74
6          css    63
7   javascript    45

修正你的代码

idx=df.index.get_indexer([3])[0]
df.iloc[idx:idx+5]
Out[9]: 
          Name  code
Id                  
3            c    65
4          c++    25
5         html    74
6          css    63
7   javascript    45