API · Pandas
Fonction Pandas DataFrame.corr()
La fonction DataFrame corr() permet de trouver la corrélation entre les colonnes du cadre de données.
Sur cette page
Avec Python Pandas, DataFrame.corr() calcule les corrélations deux à deux entre les colonnes d’un DataFrame et les renvoie sous forme de matrice de corrélation. Choisissez pearson, kendall ou spearman avec l’argument method.
Syntaxe et paramètres de pandas.DataFrame.corr()
Appelez la méthode sur un DataFrame, par exemple avec df.corr(method="pearson", min_periods=1). L’argument method choisit le calcul de corrélation et vaut pearson par défaut. L’argument min_periods définit le nombre minimal d’observations valides nécessaires pour obtenir un résultat pour une paire de colonnes. Il s’applique séparément à chaque paire, et non au nombre de paires dans la matrice.
La méthode renvoie un DataFrame dont les lignes et les colonnes correspondent aux colonnes d’entrée sélectionnées. Chaque valeur de la diagonale représente la corrélation d’une colonne avec elle-même. Les valeurs hors diagonale indiquent le sens et la force de la relation entre deux colonnes ; une corrélation, à elle seule, ne démontre pas un lien de causalité. Dans les exemples, sélectionnez explicitement les colonnes numériques pour clarifier les données utilisées dans le calcul. Pour comparer les méthodes, gardez les mêmes lignes et colonnes afin que les différences de résultat reflètent le choix du calcul plutôt qu’un changement des données d’entrée. Avant d’interpréter un coefficient, vérifiez quelles observations sont disponibles pour la paire concernée et si la méthode choisie convient à la relation que vous souhaitez résumer.
Calculer une matrice de corrélation de Pearson
Pour un exemple concis, créez deux colonnes numériques et appelez corr() avec sa méthode par défaut. L’exemple stocke la matrice renvoyée dans correlations, afin que vous puissiez l’examiner ou l’utiliser ensuite dans votre analyse.
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
Cet appel utilise pearson. La matrice affiche les deux noms de colonnes sur chaque axe ; le résultat pour une paire se trouve à leur intersection. Si votre tableau contient des libellés ou d’autres données non numériques, sélectionnez les colonnes numériques que vous voulez comparer avant d’appeler la méthode, au lieu de vous fier à la gestion implicite des colonnes.
Calculer une matrice de corrélation de Kendall
Passez method="kendall" pour calculer la corrélation de rang de Kendall entre les colonnes numériques. Pour comparer les méthodes, conservez les mêmes colonnes d’entrée afin que les matrices répondent à la même question.
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
L’objet renvoyé reste un DataFrame de corrélation. Consultez la valeur à l’intersection de deux noms de colonnes différents pour connaître leur corrélation de Kendall ; la diagonale indique l’autocorrélation de chaque colonne.
Utiliser min_periods avec la corrélation de Spearman
Définissez min_periods pour imposer un nombre minimal d’observations appariées valides avant d’obtenir un résultat. Dans cet exemple, la corrélation de rang de Spearman est calculée uniquement si au moins trois observations sont disponibles simultanément pour chaque paire de colonnes. Les valeurs manquantes sont représentées par None dans les données d’entrée.
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
Pour first et second, seules deux lignes contiennent des observations pour les deux colonnes ; cette paire n’atteint donc pas le seuil de trois. Les autres paires sont évaluées selon leurs propres observations valides communes. Ce paramètre détermine si une paire reçoit un résultat de corrélation ; il ne demande pas un nombre particulier de paires de colonnes.