Chcę obliczyć współczynniki autokorelacji długości opóźnienia pośród kolumn ramki danych Pandas DataFrame. Fragment moich danych wynosi:Obliczanie autokorelacji pandasów DataFrame wzdłuż każdej kolumny
RF PC C D PN DN P
year
1890 NaN NaN NaN NaN NaN NaN NaN
1891 -0.028470 -0.052632 0.042254 0.081818 -0.045541 0.047619 -0.016974
1892 -0.249084 0.000000 0.027027 0.067227 0.099404 0.045455 0.122337
1893 0.653659 0.000000 0.000000 0.039370 -0.135624 0.043478 -0.142062
Wraz roku, chcę obliczyć autokorelacji lag jednym dla każdej kolumny (RF, PC, etc ...).
Aby obliczyć autokorelacje, wyodrębniłem dwie serie czasowe dla każdej kolumny, której dane początkowe i końcowe różniły się o jeden rok, a następnie obliczone współczynniki korelacji z numpy.corrcoef
.
Na przykład, napisałem:
numpy.corrcoef(data[['C']][1:-1],data[['C']][2:])
(cała DataFrame nazywa data
).
Jednakże polecenie niestety wrócił:
array([[ nan, nan, nan, ..., nan, nan, nan],
[ nan, nan, nan, ..., nan, nan, nan],
[ nan, nan, nan, ..., nan, nan, nan],
...,
[ nan, nan, nan, ..., nan, nan, nan],
[ nan, nan, nan, ..., nan, nan, nan],
[ nan, nan, nan, ..., nan, nan, nan]])
Może ktoś łaskawie mi doradzić, w jaki sposób obliczyć autokorelacji?