我的输入数据长这样:
cat start target
0 1 2016-09-01 00:00:00 4.370279
1 1 2016-09-01 00:00:00 1.367778
2 1 2016-09-01 00:00:00 0.385834
我希望使用"start"表示开始日期,使用"target"表示系列值来构建一个系列。iterrows()可以正确地提取"imp"的值,但是当将其附加到time_series时,只有第一个值被传递到所有系列点。为什么"data=imp"每次都会提取第0行?
t0 = model_input_test['start'][0] # t0 = 2016-09-01 00:00:00
num_ts = len(model_input_test.index) # num_ts = 1348
time_series = []
for i, row in model_input_test.iterrows():
imp = row.loc['target']
print(imp)
index = pd.DatetimeIndex(start=t0, freq='H', periods=num_ts)
time_series.append(pd.Series(data=imp, index=index))
这里可以看到一个截图。
时间序列系列“time_series”应该长这样:
2016-09-01 00:00:00 4.370279
2016-09-01 01:00:00 1.367778
2016-09-01 02:00:00 0.385834
但最终看起来像这样:
2016-09-01 00:00:00 4.370279
2016-09-01 01:00:00 4.370279
2016-09-01 02:00:00 4.370279
我正在Sagemaker上使用Jupyter conda_python3。
time_series
不是pd.Series
,而是pd.Series
实例的list
。编辑:您需要遍历行吗?您是否考虑过类似于pd.Series(data=model_input_test['target'], index=index)
的东西? - Tomas Farias