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

2024-06-10 22:09:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个熊猫数据帧,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。你知道吗

我该怎么做?你知道吗

提前谢谢!你知道吗


Tags: 数据dftail返回值个值k86e
2条回答

使用负索引并将其传递给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行开始,从最后一行结束,但不包括它,这也被称为开放的、封闭的间隔。你知道吗

关于切片表示法有一个相关的SO question。你知道吗

还有python docs

df.iloc[-6:-1,2]
Out[54]: 
3    153
4    223
5    166
6    163
7    169

如果只需要值:

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

相关问题 更多 >