2015-06-04 52 views
4

我有一個熊貓據幀,DF如下:Python:跳過最後一個數據框後,如何獲取Pandas數據框中的前5個值?

 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 

我知道,爲了得到說的最後5個值列2,我所要做的:

df[2].tail() 

這將返回值157, 169, 163, 166, 233。然而,我想跳過最後一個值= 157,並獲得157之前的最後五個值,例如, 169, 163, 166, 233, 153

我該怎麼做?

在此先感謝!

回答

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 

然後,您可以索引感興趣使用上述山坳:

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

+0

謝謝!你能解釋一下iloc [-6:-1]究竟是什麼嗎? – activelearner

3
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) 
+0

謝謝!你能解釋一下iloc [-6:-1,2]究竟是什麼嗎? – activelearner

相關問題