Python iloc-索引器(“位置索引器超出范围”),即使它';在范围之内

Python iloc-索引器(“位置索引器超出范围”),即使它';在范围之内,python,pandas,Python,Pandas,我试图从特定索引中获取行(这些索引位于列表中)。即使这些索引(列表中的索引)在范围内,我仍然会得到一个索引器 df的索引计数为10872(最高值为2600) 列表的计数为628(最大值为2500) list=df.loc[df[col]=value].index.tolist df.iloc[[list]] 我想打印出数据,然后最终从每个特定索引中获得接下来的4行这里您不应该使用.iloc作为索引,.iloc用于位置,loc用于索引 所以在你的情况下,你应该 l= df.loc[df[col]

我试图从特定索引中获取行(这些索引位于列表中)。即使这些索引(列表中的索引)在范围内,我仍然会得到一个索引器

df的索引计数为10872(最高值为2600) 列表的计数为628(最大值为2500)

list=df.loc[df[col]=value].index.tolist

df.iloc[[list]]


我想打印出数据,然后最终从每个特定索引中获得接下来的4行

这里您不应该使用
.iloc
作为索引,
.iloc
用于位置,
loc
用于索引

所以在你的情况下,你应该

l= df.loc[df[col] == value].index.tolist()

df.loc[l]
比如说

df
Out[59]: 
  key
1   1
3   1
4   1
7   2
9   3
如果要使用
.iloc
获取第一行,可以

df.iloc[[0]]
Out[61]: 
  key
1   1
但是使用
loc

df.loc[[1]]
Out[62]: 
  key
1   1

错误,当您想要最后一行时,索引是9,但df没有位置9

df.iloc[9]

你为什么不直接做[code>df[df[col]==value]这将以不间断的方式为你提供相同的数据如果我这样做,我会得到一个空的数据集
IndexError: single positional indexer is out-of-bounds
df.loc[9]
Out[64]: 
key    3
Name: 9, dtype: object