My original Dataframe (df):
JavaScript
x
8
1
column1 column2
2
0 1 a
3
1 2 b
4
2 3 c
5
3 4 d
6
4 5 e
7
5 6 f
8
I want to shift the values down by 6 like so:
JavaScript
1
14
14
1
column1 column2
2
0
3
1
4
2
5
3
6
4
7
5
8
6 1 a
9
7 2 b
10
8 3 c
11
9 4 d
12
10 5 e
13
11 6 f
14
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
JavaScript
1
17
17
1
df.index = df.index+6
2
df = df.reindex(np.arange(12))
3
4
column1 column2
5
0 NaN NaN
6
1 NaN NaN
7
2 NaN NaN
8
3 NaN NaN
9
4 NaN NaN
10
5 NaN NaN
11
6 1.0 a
12
7 2.0 b
13
8 3.0 c
14
9 4.0 d
15
10 5.0 e
16
11 6.0 f
17