这里以一维时序为例
1.加入上一个、或几个时期的数据
shift函数可以实现,参考连接:
df['t-1']=df['t'].shift(1) #创建了和t之后一项的序列,同等长度,前面的第一个变成了NA
df['t-1']=df['t'].shift(-1) # 提前一项,最后一项为nan
2.我们可以通过滑动窗口中的值计算汇总统计信息,并将这些值作为特性包含在数据集中。也许最有用的是前几个值的平均值,也称为滚动平均值。例如,我们可以计算前两个值的平均值,然后用它来预测下一个值。对于温度数据,我们需要等待3个时间步骤,才能得到2个平均值,然后才能用这个值来预测第三个值。
rolling函数可以实现,参考连接:https://blog.csdn.net/maymay_/article/details/80241627
一个例子:
temps = DataFrame(series.values)
shifted = temps.shift(1)
window = shifted.rolling(window=2)
means = window.mean()
dataframe = concat([means, temps], axis=1)
dataframe.columns = ['mean(t-2,t-1)', 't+1']
print(dataframe.head(5))
数据:shift(1)+原时间
t-1 t
NaN 20.7
20.7 17.9
17.9 18.8
18.8 14.6
14.6 15.8
将shifted(1)的rolling之后:这里注意rolling(t-1)+Windows=2 相当于求mean(t-1,t-2)
mean(t-2,t-1) t
NaN 20.7
NaN 17.9
19.30 18.8
18.35 14.6
16.70 15.8