API · Pandas
Pandas DataFrame.corr() Funktion
Die DataFrame-Funktion corr() ermittelt die Korrelation zwischen den Spalten des DataFrame.
Auf dieser Seite
Python Pandas DataFrame.corr() berechnet paarweise Korrelationen zwischen DataFrame-Spalten und gibt sie als Korrelationsmatrix zurück. Wählen Sie mit dem Argument method zwischen pearson, kendall und spearman.
Syntax und Parameter von pandas.DataFrame.corr()
Rufen Sie die Methode für einen DataFrame auf, zum Beispiel mit df.corr(method="pearson", min_periods=1). Das Argument method legt die Korrelationsberechnung fest; standardmäßig wird pearson verwendet. Mit min_periods geben Sie die Mindestanzahl gültiger Beobachtungen an, die für ein Spaltenpaar erforderlich ist, damit ein Ergebnis berechnet wird. Der Grenzwert gilt für jedes Paar einzeln, nicht für die Anzahl der Paare in der Matrix.
Die Methode gibt einen DataFrame zurück, dessen Zeilen und Spalten den ausgewählten Eingabespalten entsprechen. Jeder Diagonaleintrag zeigt die Korrelation einer Spalte mit sich selbst. Die Einträge außerhalb der Diagonale geben Richtung und Stärke des Zusammenhangs zwischen zwei Spalten an; eine Korrelation allein belegt keine Kausalität. Verwenden Sie in Beispielen ausdrücklich numerische Spalten, damit klar ist, welche Daten in die Berechnung eingehen. Wenn Sie Methoden vergleichen, verwenden Sie dieselben Zeilen und Spalten. So lassen sich Unterschiede im Ergebnis auf die Berechnungsmethode statt auf veränderte Eingabedaten zurückführen. Prüfen Sie vor der Interpretation eines Koeffizienten, welche Beobachtungen für das jeweilige Spaltenpaar vorliegen und ob die gewählte Methode zu dem Zusammenhang passt, den Sie zusammenfassen möchten.
Eine Pearson-Korrelationsmatrix berechnen
Erstellen Sie für ein kurzes Beispiel zwei numerische Spalten und rufen Sie corr() mit der Standardmethode auf. Das Beispiel speichert die zurückgegebene Matrix in correlations, damit Sie sie weiter untersuchen oder in Ihrer Analyse verwenden können.
import pandas as pd
scores = pd.DataFrame({
"study_hours": [1, 2, 3, 4],
"score": [2, 4, 5, 8],
})
correlations = scores.corr()
print(correlations)
study_hours score
study_hours 1.000000 0.981156
score 0.981156 1.000000
Dieser Aufruf verwendet pearson. Die Matrix enthält beide Spaltennamen auf jeder Achse; am Schnittpunkt steht das jeweilige paarweise Ergebnis. Falls Ihre Tabelle Beschriftungen oder andere nicht numerische Daten enthält, wählen Sie vor dem Methodenaufruf die numerischen Spalten aus, die Sie vergleichen möchten, statt sich auf eine implizite Spaltenbehandlung zu verlassen.
Eine Kendall-Korrelationsmatrix berechnen
Übergeben Sie method="kendall", um die Kendall-Rangkorrelation für die numerischen Spalten zu berechnen. Verwenden Sie beim Vergleich verschiedener Methoden dieselben Eingabespalten, damit die Matrizen dieselbe Fragestellung beantworten.
import pandas as pd
scores = pd.DataFrame({
"study_hours": [1, 2, 3, 4],
"score": [2, 4, 5, 8],
})
correlations = scores.corr(method="kendall")
print(correlations)
study_hours score
study_hours 1.0 1.0
score 1.0 1.0
Das zurückgegebene Objekt ist weiterhin ein Korrelations-DataFrame. Am Schnittpunkt zweier verschiedener Spaltennamen können Sie deren Kendall-Korrelation ablesen; die Diagonale zeigt die Korrelation jeder Spalte mit sich selbst.
min_periods mit Spearman-Korrelation verwenden
Legen Sie mit min_periods die Mindestanzahl gültiger, gemeinsam vorliegender Beobachtungen fest, die für ein Ergebnis erforderlich ist. In diesem Beispiel wird die Spearman-Rangkorrelation nur berechnet, wenn für jedes Spaltenpaar mindestens drei gemeinsame Beobachtungen verfügbar sind. Fehlende Werte werden in der Eingabe durch None dargestellt.
import pandas as pd
measurements = pd.DataFrame({
"first": [1, 2, 3, None],
"second": [2, 4, None, 8],
"third": [1, 3, 5, 7],
})
correlations = measurements.corr(method="spearman", min_periods=3)
print(correlations)
first second third
first 1.0 NaN 1.0
second NaN 1.0 1.0
third 1.0 1.0 1.0
Für first und second enthalten nur zwei Zeilen Beobachtungen für beide Spalten. Dieses Paar erreicht daher den Schwellenwert von drei nicht. Für die übrigen Paare werden jeweils die eigenen gemeinsamen gültigen Beobachtungen berücksichtigt. Diese Einstellung bestimmt, ob für ein Paar ein Korrelationsergebnis vorliegt; sie fordert keine bestimmte Anzahl von Spaltenpaaren an.