I have a pandas df
, which I created by using shift()
function iterating through the original df
:
for i in range(2, 4):
Use DataFrame.append with dictionary with key x
:
df = pd.DataFrame({'x':range(10)})
df1 = df.append({'x':np.nan}, ignore_index=True)
#alternative
#df1 = df.append(pd.Series([np.nan], index=['x']), ignore_index=True)
for i in range(2, 10):
df1["lag_{}".format(i)] = df1.x.shift(i)
print (df1)
x lag_2 lag_3 lag_4 lag_5 lag_6 lag_7 lag_8 lag_9
0 0.0 NaN NaN NaN NaN NaN NaN NaN NaN
1 1.0 NaN NaN NaN NaN NaN NaN NaN NaN
2 2.0 0.0 NaN NaN NaN NaN NaN NaN NaN
3 3.0 1.0 0.0 NaN NaN NaN NaN NaN NaN
4 4.0 2.0 1.0 0.0 NaN NaN NaN NaN NaN
5 5.0 3.0 2.0 1.0 0.0 NaN NaN NaN NaN
6 6.0 4.0 3.0 2.0 1.0 0.0 NaN NaN NaN
7 7.0 5.0 4.0 3.0 2.0 1.0 0.0 NaN NaN
8 8.0 6.0 5.0 4.0 3.0 2.0 1.0 0.0 NaN
9 9.0 7.0 6.0 5.0 4.0 3.0 2.0 1.0 0.0
10 NaN 8.0 7.0 6.0 5.0 4.0 3.0 2.0 1.0