我正在完成时间序列预测的 udemy 课程。我对编码非常陌生。
当谈到分割数据时,课程为我指明了手动识别数据分割位置的方向。有没有一种方法可以自动分割此数据,例如测试始终是最近 12 个月的数据。
目前我有这个:
# Set one year for testing
train = df1.iloc[:115]
test = df1.iloc[115:]
数据集非常简单,只有一个时间作为索引和一列总计。
自动?不,因为有大量不同的数据集,无法使用相同的例程解析所有数据集。但如果您的数据已排序,那么您自己计算索引就相当容易了:
让我们首先找出所有日期与最后一个日期之间的差异
diff = df.iloc[-1]['date'] - df['date']
0 63 days
1 56 days
2 49 days
3 42 days
4 35 days
5 28 days
6 21 days
7 14 days
8 7 days
9 0 days
Name: date, dtype: timedelta64[ns]
然后找到1个月以上最后一个日期的索引:
more_than_month = diff < np.timedelta64(31, 'D')
0 False
1 False
2 False
3 False
4 False
5 True
6 True
7 True
8 True
9 True
Name: date, dtype: bool
index = more_than_month.argmax()
答案:
np.int64(5)