在时间序列 ARIMA 分析中出现错误“TypeError:没有要绘制的数值数据”

问题描述 投票:0回答:1

我正在尝试遵循一个教程,其中正在使用差异数据进行 ARIMA 时间序列分析:

以下是python代码:

def difference(dataset):
    diff = list()
    for i in range(1, len(dataset)):
        value = dataset[i] - dataset[i - 1]
        diff.append(value)
    return Series(diff)

series = pd.read_csv('dataset.csv')
X = series.values  # The error in building the list can be seen here
X = X.astype('float32')
stationary = difference(X)
stationary.index = series.index[1:]
...
stationary.plot()
pyplot.show()

当过程到达绘图阶段时,我收到错误:

类型错误:没有可绘制的数字数据

回溯起来,我发现正在解析的数据结果是一个数组的集合。将集合 stationary 保存为

*.csv
文件会给我一个如下列表:

[11.]
[0.]
[16.]
[45.]
[27.]
[-141.]
[46.]

有人可以告诉我这里出了什么问题吗?

PS。我已经排除了库导入的部分

python-3.x pandas matplotlib machine-learning arima
1个回答
0
投票

pd.read_csv('dataset.csv')
返回
pandas.DataFrame
,而不是
pandas.Series

假设您的 CSV 只有一列,您可以使用

iloc
将其作为一系列,然后按照您已经做的方式绘制它:

df = pd.read_csv('dataset.csv')
series = df.iloc[:, 0]
© www.soinside.com 2019 - 2024. All rights reserved.