【发布时间】:2020-09-01 16:30:29
【问题描述】:
我有数据矩阵,其中每一行都被视为时间序列,但长度不同。看起来是这样的:
在文本中:
0 1 2 3 4 5 6 7 8 9
0 12 32 45 67 89 54 23.0 56.0 78.0 98.0
1 34 76 34 89 34 3 NaN NaN NaN NaN
2 76 34 54 12 43 78 56.0 NaN NaN NaN
3 76 56 45 23 43 45 67.0 76.0 67.0 8.0
4 87 9 9 0 89 90 6.0 89.0 NaN NaN
5 23 90 90 32 23 34 56.0 9.0 56.0 87.0
6 23 56 34 3 5 8 7.0 6.0 98.0 NaN
7 32 23 34 6 65 78 67.0 87.0 89.0 87.0
8 12 23 34 32 43 67 45.0 NaN NaN NaN
9 343 76 56 7 8 9 4.0 5.0 8.0 68.0
我曾尝试使用带有代码的 pandas 读取数据:
timeseries=pd.read_excel('timeseries.xlsx',header=None)
###### timeseries ##############
print(timeseries)
然后我想将每一行数据矩阵传递给时间序列分析模型,该模型将为每个时间序列生成一个值,在传递所有时间序列后,我将得到一个特征向量。
我曾尝试使用以下代码实现:
features=[]
for i,j in timeseries.iterrows():
row=timeseries.iloc[i]
model=AR(row.values)
model_fit=model.fit()
yhat=model_fit.predict(len(row),len(row))
features.append(yhat)
fvector=pd.DataFrame(features)
print(fvector)
但我认为这是错误
MissingDataError: exog 包含 inf 或 nans
据我所知,它发生在分析方法限制 NaN 值并引发此错误时,但根据我的情况,每个时间序列都需要被视为分析方法的独立输入,并且应该读取到最后一个实际值每一行。
我该如何解决这个问题?
【问题讨论】:
-
请不要发布您的数据图片,分享可以复制的实际数据。
-
完成,感谢您的建议。
-
在应用模型之前填充缺失值。许多时间序列模型不适用于 NaN 等缺失值。
-
不,无论如何我都无法插入或插补数据...是否有可能我独立解析每一行,以便 NaN 不会被 pandas 标记?
标签: python pandas dataframe time-series data-science