Hoe de correlatie per groep in panda's te berekenen
U kunt de volgende basissyntaxis gebruiken om de correlatie tussen twee variabelen per groep in panda’s te berekenen:
df. groupby (' group_var ')[[' values1 ',' values2 ']]. corr (). unstack (). iloc [:, 1 ]
Het volgende voorbeeld laat zien hoe u deze syntaxis in de praktijk kunt gebruiken.
Voorbeeld: bereken de correlatie per groep in Panda’s
Stel dat we de volgende panda’s DataFrame hebben:
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)
We kunnen de volgende code gebruiken om de correlatie tussen punten en assists te berekenen, gegroepeerd per team :
#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
Uit het resultaat kunnen we zien:
- De correlatiecoëfficiënt tussen punten en assists voor team A is 0,603053 .
- De correlatiecoëfficiënt tussen punten en assists voor team B is 0,981798 .
Omdat beide correlatiecoëfficiënten positief zijn, vertelt dit ons dat de relatie tussen punten en assists voor beide teams positief is.
Dat wil zeggen dat spelers die de neiging hebben om meer punten te scoren, ook de neiging hebben om meer assists te geven.
Gerelateerd: Wat wordt beschouwd als een “sterke” correlatie?
Merk op dat we de syntaxis zouden kunnen inkorten door de unstack- en iloc -functies niet te gebruiken, maar de resultaten zijn lelijker:
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
Deze syntaxis levert voor beide teams een correlatiematrix op, die ons overtollige informatie oplevert.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende bewerkingen in panda’s kunt uitvoeren:
Hoe u een GroupBy-som uitvoert in Pandas
Groupby en Plot gebruiken in Panda’s
Hoe u unieke waarden kunt tellen met GroupBy in Pandas