Ich möchte die Autokorrelationskoeffizienten der Verzögerungszeit eins unter den Spalten eines Pandas DataFrame berechnen. Ein Ausschnitt meiner Daten ist:Autokorrelation von Pandas DataFrame entlang jeder Spalte berechnen
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
Entlang Jahr, ich will für jede Spalte (, RF PC, etc ...) eine Autokorrelationen Verzögerung berechnen.
Um die Autokorrelationen zu berechnen, extrahierte ich für jede Spalte zwei Zeitreihen, deren Start- und Enddaten sich um ein Jahr unterschieden, und berechnete dann die Korrelationskoeffizienten mit numpy.corrcoef
.
Zum Beispiel schrieb ich:
numpy.corrcoef(data[['C']][1:-1],data[['C']][2:])
(der gesamte Datenrahmen genannt wird data
).
jedoch leider der Befehl zurückgegeben:
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]])
Kann jemand freundlicherweise mir raten, wie Autokorrelationen berechnen?