Comment utiliser .corr pour obtenir une corrélation entre deux colonnes avec Pandas ?

En plus d'apporter des fonctionnalités permettant de manipuler des données, la bibliothèque Pandas fournit des outils pour les analyser et élaborer différentes statistiques. Parmi ces fonctions, il existe la méthode ".corr()". Elle est utilisée pour appliquer la formule de la corrélation de Pearson sur des données. Elle peut aussi bien être appliquée à une DataFrame dans son ensemble qu'à une colonne pour la comparer à une autre.

Par défaut, la méthode "corr()" sans paramètre s'applique à la DataFrame entière. Elle va retourner un DataFrame dans lequel toutes les colonnes sont comparées. Seules les données numériques sont sélectionnées pour le calcul des corrélations.

# Contenu de la DataFrame personne
   | Personne | Age | Poids
0 | Jean | 25 | 68.2
1 | Marc | 45 | 80
2 | Stéphane | 33 | 75
3 | John | 28 | 101
4 | Elodie | 68
personne.corr()
#Résultat
   | Age | Poids
Age | 1.000000 | -0.360300
Poids | -0.360300 | 1.00000

Il est possible de comparer uniquement deux colonnes entre elles. Il faut pour cela appeler la méthode corr() à partir d'une des colonnes et indiquer en paramètre la colonne avec laquelle on souhaite calculer la formule de corrélation.

personne['Age'].corr(personne['Poids'])
-0.360300

Il est également possible de définir une autre méthode de calcul de la corrélation. Il faut pour cela indiquer le paramètre "method". Ce paramètre accepte comme valeur "pearson" (sa valeur par défaut), "kendall" ou encore "spearman". On peut également indiquer une fonction que l'on a écrite soi-même. Pour cela, la fonction doit accepter en paramètres deux tableaux à une dimension et retourner un nombre flottant.

Python