Fix Python – How to shift a column in Pandas DataFrame

Question

Asked By – root

I would like to shift a column in a Pandas DataFrame, but I haven’t been able to find a method to do it from the documentation without rewriting the whole DF. Does anyone know how to do it?
DataFrame:

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

Desired output:

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

Now we will see solution for issue: How to shift a column in Pandas DataFrame


Answer

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

This question is answered By – eumiro

This answer is collected from stackoverflow and reviewed by FixPython community admins, is licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0