【发布时间】:2020-11-16 10:47:11
【问题描述】:
我正在尝试进行一些时间序列分析,但是当我尝试绘制seasonal_decompose() 的结果时出现错误。
时间序列如下所示(它是从更大的数据框生成的):
df1
|----------------|outflow_sum|
|val_date ----|----------------|
|2020-04-01 | 249
|2019-10-01 | 19474
|2019-12-01 | 889
|2019-12-01 | 15149
|2020-04-01 | 5334
|........ | ...
|2019-12-01 | 7146
|2020-09-01 | 17898
|2020-01-01 | 110
|2020-06-01 | 750
|2020-09-01 | 25191
代码:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
from datetime import datetime
from statsmodels.tsa.stattools import adfuller
from statsmodels.tsa.seasonal import seasonal_decompose
from statsmodels.tsa.arima_model import ARIMA
from pandas.plotting import register_matplotlib_converters
register_matplotlib_converters()
df1 = df[['val_date','outflow_sum']]
df1['val_date'] = pd.to_datetime(df1['val_date'], format='%Y-%m')
df1.set_index(df1['val_date'],inplace=True)
df1.drop('val_date',axis=1, inplace=True)
当我尝试这样做时:
result = seasonal_decompose(df1,model='additive', freq = 1)
result.plot()
我得到的情节错误说: AttributeError: 'numpy.datetime64' 对象没有属性 'toordinal'
我在 Cloudera 界面中使用 Python 3。
【问题讨论】: