Python:在跳过最后一个数据帧后,如何获取数据帧中的前5个值?

Python:在跳过最后一个数据帧后,如何获取数据帧中的前5个值?,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个熊猫数据框,df如下: 0 1 2 0 k86e 201409 180 1 k86e 201410 154 2 k86e 201411 157 3 k86e 201412 153 4 k86e 201501 223 5 k86e 201502 166 6 k86e 201503 163 7 k86e 201504 169 8 k86e 201505 157 我知道为了得到第2列的最后5个值,我必须: d

我有一个熊猫数据框,df如下:

      0       1    2
0  k86e  201409  180
1  k86e  201410  154
2  k86e  201411  157
3  k86e  201412  153
4  k86e  201501  223
5  k86e  201502  166
6  k86e  201503  163
7  k86e  201504  169
8  k86e  201505  157
我知道为了得到第2列的最后5个值,我必须:

df[2].tail()
这将返回值
157、169、163、166、233

但是,我想跳过最后一个值,即=157,并获取157之前的最后五个值,例如
169、163、166、233、153

我该怎么做


提前谢谢

使用负索引并将其传递给
iloc
以对感兴趣的行进行切片:

In [5]:

df.iloc[-6:-1]
Out[5]:
      0       1    2
3  k86e  201412  153
4  k86e  201501  223
5  k86e  201502  166
6  k86e  201503  163
7  k86e  201504  169
然后,您可以使用上述方法对感兴趣的列进行索引:

In [6]:

df.iloc[-6:-1]['2']
Out[6]:
3    153
4    223
5    166
6    163
7    169
Name: 2, dtype: int64
以下内容也适用,因为它使用列的序号位置

df.iloc[-6:-1,2]
iloc
的语法意味着
iloc[start:end]
在这种情况下,我们可以传递一个负索引,表示我们希望从第6行开始,并在最后一行结束,但不包括它,这也称为打开、关闭间隔

关于切片符号有一个相关的概念

还有

如果只需要这些值:

df.iloc[-6:-1,2].values
Out[64]: array([153, 223, 166, 163, 169], dtype=int64)

谢谢你能解释一下iloc[-6:-1,2]到底做什么吗?谢谢!你能解释一下iloc[-6:-1]到底做什么吗?
df.iloc[-6:-1,2].values
Out[64]: array([153, 223, 166, 163, 169], dtype=int64)