## 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 **