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