我有一个pandas df,它是我使用shift()函数迭代原始df创建的
for i in range(2, 4):
df["lag_{}".format(i)] = df.x.shift(i)因此,将会有实际的x列和具有移位的x值的lag2-lag10列。我已经为回归模型训练了这个数据集,以进行一步预测。我想在数据帧的末尾添加新的行,其中x的NaN值和从最后一个位置移位的值,以便能够使用这些新的滞后来拟合模型,以预测这个新的NaN值。如何在熊猫身上做到这一点?谢谢!
Upd:有df的图片,未加粗- df,加粗-要获取的所需行:

发布于 2020-04-16 15:45:42
结合使用带有关键字x的字典和DataFrame.append
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.0https://stackoverflow.com/questions/61244876
复制相似问题