pandas 自相关中不附加在 for 循环中的列表

List which doesn't append in a for loop in pandas autocorrelation

我有一个如下所示的数据系列:

            Date         Open         High          Low    Adj Close    Change
4844  26/10/2020  3441.419922  3441.419922  3233.939941  3269.959961 -5.243488
4845  02/11/2020  3296.199951  3529.050049  3279.739990  3509.439941  6.076183
4846  09/11/2020  3583.040039  3645.989990  3511.909912  3585.149902  0.058850
4847  16/11/2020  3600.159912  3628.510010  3543.840088  3557.540039 -1.198015
4848  20/11/2020  3579.310059  3581.229980  3556.850098  3557.540039 -0.611940

我正在尝试创建一个新列表,其中包含通过 for 循环的各种回顾期的自相关系数。我试过这个:

import pandas as pd
Df = pd.read_csv("SP500 Weekly Data.csv", delimiter=",")
Df.fillna('')
Df['Change'] = ((Df['Adj Close'] - Df['Open']) / Df['Adj Close']*100)
   
for t in range(1,20):
    wk = []
    auto = Df['Change'].autocorr(t).astype(float)
    wk.append(auto)
print(wk)

但我从打印中得到的不是值列表,而是最后一个值:

[0.002519726414980291]

起初我认为这是返回值的类型[我得到了一个''numpy.float64'对象不可迭代'错误与.extend()],但.append()似乎没有在每个循环中添加到列表中。

感谢任何帮助,以及对我所犯错误的任何建议,以便下次注意!谢谢

在您的代码中,wk 列表每次都被初始化为空,因此您需要像下面那样将它放在循环之外才能工作。

import pandas as pd
Df = pd.read_csv("SP500 Weekly Data.csv", delimiter=",")
Df.fillna('')
Df['Change'] = ((Df['Adj Close'] - Df['Open']) / Df['Adj Close']*100)

wk = []   
for t in range(1,20):
    auto = Df['Change'].autocorr(t).astype(float)
    wk.append(auto)
print(wk)