Вычисление корреляции по нескольким строкам - PullRequest
0 голосов
/ 07 декабря 2018

Я пытаюсь вычислить автокорреляцию с разными лагами в нескольких строках.

Теперь я получил код, который вычисляет автокорреляцию для одной строки:

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

Теперь вывод:

output

Однако, как вы можете видеть, он правильно вычисляет автокорреляции для первой строки, но копирует ее в другую строку.Я хочу сделать расчет для строки.

Как я могу настроить свой код так, чтобы он был выходным?Кроме того, в моем коде вы видите, что я определяю каждый столбец отдельно.Может быть, идея сделать его более эффективным и сделать это в одну строку.

С нетерпением ждем отзывов,

Стивен

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...