2013-11-20 15 views
37

私はパンダのデータフレームを持っています。私は自分のコラムの1つに「遅れたい」と思っています。たとえば、列 'gdp'全体を1つ上にシフトし、残りの行の末尾にあるすべての余分なデータをすべて削除して、すべての列の長さが同じになるようにします。python:パンダのデータフレームを1列上にシフト

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 
関連する問題