Python 为什么在区分时间序列时会出现长度不匹配错误?

Python 为什么在区分时间序列时会出现长度不匹配错误?,python,pandas,Python,Pandas,我试图通过以下方式区分时间序列: #statistical test for the stationarity of the time series from pandas import read_excel from pandas import Series from statsmodels.tsa.stattools import adfuller # create a differenced time series def difference(dataset): diff = l

我试图通过以下方式区分时间序列:

#statistical test for the stationarity of the time series
from pandas import read_excel
from pandas import Series
from statsmodels.tsa.stattools import adfuller
# create a differenced time series
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 = read_excel('dataset.xlsx', header=None, index_col=0, parse_dates=True, squeeze=True)
X = series.values
# difference data
stationary = difference(X)
stationary.index = series.index[1:]
我得到一个错误:

ValueError: Length mismatch: Expected axis has 1 elements, new values have 107 elements

为什么stational.index不能捕获数据集的元素?

对我来说,可能有两个原因:1)它将is视为一个对象;2) 当您进行操作时,您的逻辑出现“错误”,并且只返回长度为1的数据。您
很早就从函数返回了
i=1
。尝试对
返回序列(diff)
进行去齿处理,也许这就是原因。@mustafaydın您是对的,通过对
返回序列(diff)
进行去齿处理,问题得到了解决。谢谢