2013-11-20 1 views
37

Ben bir panda veri karesi var. Sütunlarımdan birini 'gecikmek' istiyorum. Örneğin, 'gdp' sütununun tamamını birer birer yukarı kaydırmak ve sonra kalan tüm satırları kalan satırların altından kaldırmak, böylece tüm sütunlar eşit uzunluktadır.python: pandalarda veri aktarma sütununda kaydırma sütunu bir

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 

Neyse bunu yapmak için?

cevap

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

klasik kaldırın. Son satırı kaldırma dahil bir cevap. iyi cevap! –

6

vardiya kolon gsyh up: o zaman

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

ve en son satırı

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