My original Dataframe (df):
column1 column2 0 1 a 1 2 b 2 3 c 3 4 d 4 5 e 5 6 f
I want to shift the values down by 6 like so:
column1 column2 0 1 2 3 4 5 6 1 a 7 2 b 8 3 c 9 4 d 10 5 e 11 6 f
When I use df = df.shift(6), I end up loosing data.
I found this post (How to shift a column in Pandas DataFrame without losing value) but it only seems to work if the values are shifted down by 1.
How can I shift multiple spots down while retaining the data?
Advertisement
Answer
You can try
df.index = df.index+6
df = df.reindex(np.arange(12))
column1 column2
0 NaN NaN
1 NaN NaN
2 NaN NaN
3 NaN NaN
4 NaN NaN
5 NaN NaN
6 1.0 a
7 2.0 b
8 3.0 c
9 4.0 d
10 5.0 e
11 6.0 f