Comment calculer la corrélation par groupe chez Pandas



Vous pouvez utiliser la syntaxe de base suivante pour calculer la corrélation entre deux variables par groupe dans les pandas :

df.groupby('group_var')[['values1','values2']].corr().unstack().iloc[:,1]

L’exemple suivant montre comment utiliser cette syntaxe dans la pratique.

Exemple : calculer la corrélation par groupe dans Pandas

Supposons que nous ayons le DataFrame pandas suivant :

import pandas as pd

#create DataFrame
df = pd.DataFrame({'team': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
                   'points': [18, 22, 19, 14, 14, 11, 20, 28],
                   'assists': [2, 7, 9, 3, 12, 10, 14, 21]})

#view DataFrame
print(df)

On peut utiliser le code suivant pour calculer la corrélation entre les points et les passes décisives , regroupés par équipe :

#calculate correlation between points and assists, grouped by team
df.groupby('team')[['points','assists']].corr().unstack().iloc[:,1]

team
A    0.603053
B    0.981798
Name: (points, assists), dtype: float64

À partir du résultat, nous pouvons voir :

  • Le coefficient de corrélation entre les points et les passes décisives pour l’équipe A est de 0,603053 .
  • Le coefficient de corrélation entre les points et les passes décisives pour l’équipe B est de 0,981798 .

Puisque les deux coefficients de corrélation sont positifs, cela nous indique que la relation entre les points et les passes décisives pour les deux équipes est positive.

Autrement dit, les joueurs qui ont tendance à marquer plus de points ont également tendance à enregistrer plus de passes décisives.

Connexes :Qu’est-ce qui est considéré comme une corrélation « forte » ?

Notez que nous pourrions raccourcir la syntaxe en n’utilisant pas les fonctions unstack et iloc , mais les résultats sont plus laids :

df.groupby('team')[['points','assists']].corr()

		points	  assists
team			
A	points	1.000000  0.603053
        assists	0.603053  1.000000
B	points	1.000000  0.981798
        assists	0.981798  1.000000

Cette syntaxe produit une matrice de corrélation pour les deux équipes, ce qui nous fournit un excès d’informations.

Ressources additionnelles

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

Comment effectuer une somme GroupBy dans Pandas
Comment utiliser Groupby et Plot dans Pandas
Comment compter les valeurs uniques à l’aide de GroupBy dans Pandas

Ajouter un commentaire

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