Jak obliczyć korelację według grupy w pandach


Możesz użyć następującej podstawowej składni, aby obliczyć korelację między dwiema zmiennymi według grupy w pandach:

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

Poniższy przykład pokazuje, jak zastosować tę składnię w praktyce.

Przykład: oblicz korelację według grupy w Pandach

Załóżmy, że mamy następującą ramkę DataFrame pand:

 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)

Możemy użyć poniższego kodu do obliczenia korelacji pomiędzy punktami i asystami , pogrupowanymi według drużyn :

 #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

Z wyniku możemy zobaczyć:

  • Współczynnik korelacji pomiędzy punktami i asystami dla Drużyny A wynosi 0,603053 .
  • Współczynnik korelacji pomiędzy punktami i asystami dla Drużyny B wynosi 0,981798 .

Ponieważ oba współczynniki korelacji są dodatnie, mówi nam to, że związek pomiędzy punktami i asystami dla obu drużyn jest dodatni.

Oznacza to, że gracze, którzy zdobywają więcej punktów, notują również więcej asyst.

Powiązane: Co uważa się za „silną” korelację?

Zauważ, że moglibyśmy skrócić składnię, nie używając funkcji unstack i iloc , ale wyniki byłyby brzydsze:

 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

Ta składnia tworzy macierz korelacji dla obu zespołów, która dostarcza nam nadmiaru informacji.

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe operacje na pandach:

Jak wykonać sumę GroupBy w Pandach
Jak korzystać z Groupby i Plot w Pandach
Jak liczyć unikalne wartości za pomocą GroupBy w Pandach

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *