ValueError: You must specify a period or x must be a pandas object with a DatetimeIndex with a freq not set to None

ValueError: You must specify a period or x must be a pandas object with a DatetimeIndex with a freq not set to None

您好,在此先感谢您的帮助!

我收到 ValueError:您必须指定句点或 x 必须是 pandas 对象,其 DatetimeIndex 的频率未设置为 None当我尝试进行从 GitHub 提取的时间序列分解时。我想我对错误有一个基本的了解,但是当我直接从计算机上的文件中提取数据而不是从 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();

试试这个:

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();

输出: