Я пытаюсь вычислить автокорреляцию с разными лагами в нескольких строках.
Теперь я получил код, который вычисляет автокорреляцию для одной строки:
import pandas as pd
import numpy as np
df = pd.read_excel("file.xlsx")
def autocorr(x, t):
return np.corrcoef(np.array([x[0:len(x)-t], x[t:len(x)]]))
df1 = df.copy(deep=True)
df1["output"] = autocorr(df.T[0], 1)[0, 1]
df1["output2"]= autocorr(df.T[0], 2)[0, 1]
df1["output3"]= autocorr(df.T[0], 3)[0, 1]
df1["output4"]= autocorr(df.T[0], 4)[0, 1]
df1["output5"]= autocorr(df.T[0], 5)[0, 1]
df1["output6"]= autocorr(df.T[0], 6)[0, 1]
df1["output7"]= autocorr(df.T[0], 7)[0, 1]
df1["output8"]= autocorr(df.T[0], 8)[0, 1]
df1["output9"]= autocorr(df.T[0], 9)[0, 1]
df1["output10"]= autocorr(df.T[0], 10)[0, 1]
df1["output11"]= autocorr(df.T[0], 11)[0, 1]
df1["output12"]= autocorr(df.T[0], 12)[0, 1]
df1
Теперь вывод:
Однако, как вы можете видеть, он правильно вычисляет автокорреляции для первой строки, но копирует ее в другую строку.Я хочу сделать расчет для строки.
Как я могу настроить свой код так, чтобы он был выходным?Кроме того, в моем коде вы видите, что я определяю каждый столбец отдельно.Может быть, идея сделать его более эффективным и сделать это в одну строку.
С нетерпением ждем отзывов,
Стивен