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

act*_*ner 4 python dataframe pandas

我有一个Pandas数据帧,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
Run Code Online (Sandbox Code Playgroud)

我知道为了获得第2列的最后5个值,我必须这样做:

df[2].tail()
Run Code Online (Sandbox Code Playgroud)

这将返回值157, 169, 163, 166, 233.

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

我怎样才能做到这一点?

提前致谢!

EdC*_*ica 5

使用负索引并将这些索引传递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
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用上述索引感兴趣的col:

In [6]:

df.iloc[-6:-1]['2']
Out[6]:
3    153
4    223
5    166
6    163
7    169
Name: 2, dtype: int64
Run Code Online (Sandbox Code Playgroud)

以下也可以使用,因为它使用列的序号位置

df.iloc[-6:-1,2]
Run Code Online (Sandbox Code Playgroud)

对于语法iloc手段iloc[start:end]在这种情况下,我们可以通过负指数来表示我们想从第6行,从月底开始,并在最后一行结束,但不包括它,这也被称为开,闭区间.

关于切片符号有一个相关的SO问题.

还有python文档