2013-11-20 173 views
37

我有一個熊貓數據框。我想'滯後'我的專欄之一。意思是,例如,將整個列'gdp'向上移動一個,然後刪除剩餘行底部的所有多餘數據,以便所有列再次具有相同的長度。python:將熊貓數據框中的列向上移動一個

df = 
    y gdp cap 
0 1 2 5 
1 2 3 9 
2 8 7 2 
3 3 4 7 
4 6 7 7 

df_lag = 
    y gdp cap 
0 1 3 5 
1 2 7 9 
2 8 4 2 
3 3 7 7 

無論如何要做到這一點?

回答

70
In [44]: df.gdp = df.gdp.shift(-1) 

In [45]: df 
Out[45]: 
    y gdp cap 
0 1 3 5 
1 2 7 9 
2 8 4 2 
3 3 7 7 
4 6 NaN 7 

In [46]: df[:-1]                                                                            
Out[46]: 
    y gdp cap 
0 1 3 5 
1 2 7 9 
2 8 4 2 
3 3 7 7 
+0

經典。包括刪除最後一行的答案。好答案! –

6

移柱GDP同比:

df.gdp = df.gdp.shift(-1) 

,然後取下最後一排

2
df.gdp = df.gdp.shift(-1) ## shift up 
df.gdp.drop(df.gdp.shape[0] - 1,inplace = True) ## removing the last row 
相關問題