ValueError:您必须指定一个句点或 x 必须是具有 DatetimeIndex 且频率未设置为 None 的 pandas 对象

Xav*_*zet 2 python time-series matplotlib pandas statsmodels

您好,提前感谢您的帮助!

当我尝试执行从 GitHub 提取的时间序列分解时,出现ValueError: You Mustspecify a period or x must be a pandas object with a DatetimeIndex with a freq not set to None 。我想我对该错误有了基本的了解,但是当我直接从我的计算机上的文件中提取数据而不是从 GitHub 中提取数据时,我没有收到此错误。为什么只有当我从 GitHub 提取数据时才会出现此错误?我应该如何更改我的代码才能不再出现此错误?

import pandas as pd
import numpy as np 
%matplotlib inline
from statsmodels.tsa.seasonal import seasonal_decompose

topsoil = pd.read_csv('https://raw.githubusercontent.com/the- 
datadudes/deepSoilTemperature/master/meanDickinson.csv',parse_dates=True)

topsoil = topsoil.dropna()
topsoil.head()

topsoil.plot();

result = seasonal_decompose(topsoil['Topsoil'],model='ad')


from pylab import rcParams
rcParams['figure.figsize'] = 12,5
result.plot();
Run Code Online (Sandbox Code Playgroud)

Sco*_*ton 8

尝试这个:

import pandas as pd
import numpy as np 
%matplotlib inline
from statsmodels.tsa.seasonal import seasonal_decompose

topsoil = pd.read_csv('https://raw.githubusercontent.com/the-datadudes/deepSoilTemperature/master/meanDickinson.csv',parse_dates=True)

topsoil = topsoil.dropna()
topsoil.head()

topsoil.plot();

topsoil['Date'] = pd.to_datetime(topsoil['Date'])
topsoil = topsoil.set_index('Date').asfreq('D')
result = seasonal_decompose(topsoil, model='ad')

from pylab import rcParams
rcParams['figure.figsize'] = 12,5
result.plot();
Run Code Online (Sandbox Code Playgroud)

输出:

在此输入图像描述