我有一个时间序列作为pandas Series对象。我想知道我是否可以通过查看过去60天的值来预测一天的价值。出于这个原因,我想将我的时间序列转换为看起来像这样的数据框(这样我就可以将它提供给学习算法);
Day 1 Day2 ... Day 60 value
986.55 990.95 ... 1618.86 1655.5
990.95 1017.85 ... 1655.5 1669.8
1017.85 1053.68 ... 1669.8 1707.2
我该如何进行此类转换?
我的时间序列看起来像这样(索引是pandas.tseries.index.DatetimeIndex);
DATE
1991-01-02 986.55
1991-01-03 990.95
1991-01-04 1017.85
1991-01-05 1053.68
答案 0 :(得分:1)
说s
是你得到的系列。您可以通过日复一日地对系列进行切片来创建DataFrame:
df = pd.DataFrame([s[i:i+60].values for i in range(len(s)-60)])
然后重命名列:
df.columns=['Day '+str(i) for i in range(1,61)]
答案 1 :(得分:0)
doffset = pd.tseries.offsets.Day(60)
f = lambda x: pd.DataFrame(x.tolist()).T
pd.concat([f(df['value'].ix[i:i+doffset]) for i in df.index])