Comment utiliser corrwith() dans Pandas (avec exemples)



Vous pouvez utiliser la fonction corrwith() dans pandas pour calculer la corrélation par paire entre les colonnes numériques portant le même nom dans deux DataFrames pandas différents.

Cette fonction utilise la syntaxe de base suivante :

df1.corrwith(df2)

Remarque : Cette fonction est différente de la fonction corr() , qui permet de calculer la corrélation entre deux colonnes numériques au sein du même DataFrame.

L’exemple suivant montre comment utiliser la fonction corrwith() dans la pratique.

Exemple : Comment utiliser corrwith() dans Pandas

Supposons que nous ayons les deux DataFrames pandas suivants :

import pandas as pd

#create first DataFrame
df1 = pd.DataFrame({'team': ['A', 'B', 'C', 'D', 'E', 'F'],
                    'points': [18, 22, 29, 25, 14, 11],
                    'assists': [4, 5, 5, 4, 8, 12],
                    'rebounds': [10, 6, 4, 6, 3, 5]})

print(df1)

  team  points  assists  rebounds
0    A      18        4        10
1    B      22        5         6
2    C      29        5         4
3    D      25        4         6
4    E      14        8         3
5    F      11       12         5

#create second DataFrame 
df2 = pd.DataFrame({'team': ['A', 'B', 'C', 'D', 'E', 'F'],
                    'points': [22, 25, 27, 35, 25, 20],
                    'assists': [15, 13, 8, 8, 5, 8],
                    'rebs': [4, 11, 12, 8, 7, 10]})

print(df2)

  team  points  assists  rebs
0    A      22       15     4
1    B      25       13    11
2    C      27        8    12
3    D      35        8     8
4    E      25        5     7
5    F      20        8    10

Nous pouvons utiliser la fonction corrwith() pour calculer la corrélation entre les colonnes numériques portant les mêmes noms dans les deux DataFrames :

#calculate correlation between numeric columns with same names in each DataFrame
df1.corrwith(df2)

points      0.677051
assists    -0.478184
rebounds         NaN
rebs             NaN
dtype: float64

À partir du résultat, nous pouvons voir :

  • La corrélation entre les valeurs des colonnes de points des deux DataFrames est de 0,677 .
  • La corrélation entre les valeurs des colonnes d’assistance dans les deux DataFrames est de -0,478 .

Étant donné que les noms de colonnes rebonds et rebs n’existaient pas dans les deux DataFrames, une valeur NaN est renvoyée pour chacune de ces colonnes.

Note n°1 : Par défaut, la fonction corrwith() calcule le coefficient de corrélation de Pearson entre les colonnes, mais vous pouvez également spécifier method=’kendall’ ou method=’spearman’ pour calculer à la place un type différent de coefficient de corrélation.

Note #2 : Vous pouvez trouver la documentation complète de la fonction corrwith() ici .

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres opérations courantes dans les pandas :

Comment calculer la corrélation par groupe chez Pandas
Comment calculer la corrélation glissante chez les pandas
Comment calculer la corrélation entre deux colonnes dans Pandas

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *