Pandy: jak zgrupować dwie kolumny i zagregować
Możesz użyć następującej podstawowej składni z funkcją groupby() w pandach, aby grupować według dwóch kolumn i agregować inną kolumnę:
df. groupby ([' var1 ',' var2 '])[' var3 ']. mean ()
Ten konkretny przykład grupuje DataFrame według kolumn var1 i var2 , a następnie oblicza średnią z kolumny var3 .
Poniższe przykłady pokazują, jak grupować według dwóch kolumn i agregować przy użyciu następującej ramki DataFrame pand:
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'B'], ' position ': ['G', 'G', 'F', 'F', 'F', 'G', 'G', 'G', 'G', 'F'], ' points ': [15, 22, 24, 25, 20, 35, 34, 19, 14, 12]}) #view DataFrame print (df) team position points 0 AG 15 1 AG 22 2 AF 24 3 AF 25 4 AF 20 5 BG 35 6 BG 34 7 BG 19 8 BG 14 9 BF 12
Przykład 1: Zgrupuj dwie kolumny i oblicz średnią z innej kolumny
Do obliczenia średniej wartości kolumny punktów , pogrupowanej według kolumn zespołu i pozycji , możemy zastosować następującą składnię:
#calculate mean of points grouped by team and position columns
df. groupby ([' team ', ' position '])[' points ']. mean ()
team position
AF23.0
G 18.5
BF 12.0
G 25.5
Name: points, dtype: float64
Z wyniku możemy zobaczyć:
- Średnia wartość punktowa zawodników drużyny A na pozycji F wynosi 23 .
- Średnia wartość punktowa zawodników drużyny A na pozycji G wynosi 18,5 .
I tak dalej.
Przykład 2: Zgrupuj dwie kolumny i oblicz maksimum innej kolumny
Do obliczenia maksymalnej wartości kolumny punktów , pogrupowanej według kolumn zespołu i pozycji , możemy zastosować następującą składnię:
#calculate max of points grouped by team and position columns
df. groupby ([' team ', ' position '])[' points ']. max ()
team position
AF25
G22
BF 12
G 35
Name: points, dtype: int64
Z wyniku możemy zobaczyć:
- Maksymalna wartość punktów dla zawodników drużyny A na pozycji F wynosi 25 .
- Maksymalna wartość punktowa zawodników drużyny A na pozycji G wynosi 22 .
I tak dalej.
Przykład 3: Grupuj według dwóch kolumn i zliczaj wystąpienia
Możemy użyć następującej składni, aby policzyć wystąpienia każdej kombinacji kolumn zespołu i pozycji :
#count occurrences of each combination of team and position columns
df. groupby ([' team ', ' position ']). size ()
team position
AF3
G2
BF 1
G4
dtype: int64
Z wyniku możemy zobaczyć:
- W drużynie A na pozycji F znajduje się 3 zawodników.
- W drużynie A na pozycji G znajduje się 2 zawodników.
I tak dalej.
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w pandach:
Jak liczyć unikalne wartości za pomocą Pandas GroupBy
Jak zastosować funkcję do Pandas Groupby
Jak utworzyć wykres słupkowy z Pandas GroupBy