2012-06-11 44 views
44

bir sütun kaydırmaya nasıl Pandalar DataFrame bir sütun kaydırmak istiyorum ama devamlı DF yeniden yazmak zorunda kalmadan belgelerinden bunu yapmak için bir yöntem bulmak mümkün olmamıştır. Bunun nasıl yapıldığını bilen var m? DataFrame:Pandalar DataFrame

## x1 x2 
##0 206 214 
##1 226 234 
##2 245 253 
##3 265 272 
##4 283 291 

İstenilen çıktı: Sütunlar kaybetmek istemiyorsanız

## x1 x2 
##0 206 nan 
##1 226 214 
##2 245 234 
##3 265 253 
##4 283 272 
##5 nan 291 

cevap

85
In [18]: a 
Out[18]: 
    x1 x2 
0 0 5 
1 1 6 
2 2 7 
3 3 8 
4 4 9 

In [19]: a.x2 = a.x2.shift(1) 

In [20]: a 
Out[20]: 
    x1 x2 
0 0 NaN 
1 1 5 
2 2 6 
3 3 7 
4 4 8 
+3

. Vardiya kullanırken pandaların indeksi genişletmek için kolay bir yolu var mı? –

+0

@WaylonWalker Bu, numpy: 'df ['x2'] = np.roll (df ['x2'], 1)' dır – ayhan

1

Eğer senin dataframe sonu geçmiş kayması , basitçe ilk gerekli sayıda ekleme :

1

İthalat

import pandas as pd 
import numpy as np 

ilk DataFrame sonunda (df) en NaN, NaN,... ile yeni bir satır ekleyin.

s1 = df.iloc[0] # copy 1st row to a new Series s1 
s1[:] = np.NaN  # set all values to NaN 
df2 = df.append(s1, ignore_index=True) # add s1 to the end of df 

Yeni DF df2 oluşturacaktır. Belki daha zarif bir yol var ama bu işe yarıyor.

Şimdi de yönelmek mümkün: sonuç ## 5 eksik

df2.x2 = df2.x2.shift(1) # shift what you want