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

Dodaj komentarz

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