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