Python iloc-索引器(“位置索引器超出范围”),即使它';在范围之内
我试图从特定索引中获取行(这些索引位于列表中)。即使这些索引(列表中的索引)在范围内,我仍然会得到一个索引器 df的索引计数为10872(最高值为2600) 列表的计数为628(最大值为2500) list=df.loc[df[col]=value].index.tolist df.iloc[[list]]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]
我想打印出数据,然后最终从每个特定索引中获得接下来的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