Я пытаюсь создать автоковариацию для нескольких лагов в нескольких рядах.В этом примере я получил две строки и 11 лагов.
В моем примере я получил следующие две строки:
![enter image description here](https://i.stack.imgur.com/l2G6A.png)
в тексте:
array([[164, 148, 152, 144, 155, 125, 153, 146, 138, 190, 192, 192],
[239, 379, 105, 150, 400, 326, 134, 441, 199, 431, 203, 425]], dtype=int64)
Я хочу получить автоковариацию для каждой строки с лагом 0,1 ... 11.
На данный момент я получил следующий код:
import statsmodels as sm
import numpy as np
import pandas as pd
df = pd.read_excel("directory\\file.xlsx")
def autocov(row):
x = sm.tsa.stattools.acovf(df.T[row], unbiased=False, demean=True,
fft=None, missing='none')
autocov_df = pd.DataFrame(x)
for index,row in df.iterrows():
print(x)
Это печатает мне следующий массив:
![output](https://i.stack.imgur.com/ibOI5.png)
в тексте:
[ 447.52083333 191.93229167 94.51041667 -26.36979167 -87.58333333
-97.90104167 -121.86458333 -54.328125 -94.47916667 -31.19270833
-12.65625 16.171875 ]
[ 447.52083333 191.93229167 94.51041667 -26.36979167 -87.58333333
-97.90104167 -121.86458333 -54.328125 -94.47916667 -31.19270833
-12.65625 16.171875 ]
Однако, как вы можете видеть,он печатает одинаковые значения для обеих 2 строк.
Что я делаю неправильно в своем коде ???
Это мой предпочтительный вывод:
[ 447.52083333 191.93229167 94.51041667 -26.36979167 -87.58333333
-97.90104167 -121.86458333 -54.328125 -94.47916667 -31.19270833
-12.65625 16.171875 ]
[ 14887., -7237., 1811.,-198.5,
2903.08333333, -3346.41666667, 1140.33333333, -1207.25 ,
1141.08333333, -3307.75 , 1402.33333333, -544.41666667]