Come calcolare la correlazione per gruppo in pandas


È possibile utilizzare la seguente sintassi di base per calcolare la correlazione tra due variabili per gruppo nei panda:

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

L’esempio seguente mostra come utilizzare questa sintassi nella pratica.

Esempio: calcola la correlazione per gruppo in Pandas

Supponiamo di avere i seguenti panda DataFrame:

 import pandas as pd

#createDataFrame
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)

Possiamo utilizzare il seguente codice per calcolare la correlazione tra punti e assist , raggruppati per squadra :

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

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

Dal risultato possiamo vedere:

  • Il coefficiente di correlazione tra punti e assist per la Squadra A è 0,603053 .
  • Il coefficiente di correlazione tra punti e assist per la Squadra B è 0,981798 .

Poiché entrambi i coefficienti di correlazione sono positivi, ciò ci dice che il rapporto tra punti e assist per entrambe le squadre è positivo.

Cioè, i giocatori che tendono a segnare più punti tendono anche a registrare più assist.

Correlati: cos’è considerata una correlazione “forte”?

Tieni presente che potremmo abbreviare la sintassi non utilizzando le funzioni unstack e iloc , ma i risultati saranno più brutti:

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

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

Questa sintassi produce una matrice di correlazione per entrambe le squadre, che ci fornisce informazioni in eccesso.

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre operazioni comuni nei panda:

Come eseguire una somma GroupBy in Pandas
Come utilizzare Groupby e Plot in Pandas
Come contare valori univoci utilizzando GroupBy in Pandas

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *