Pandy: jak używać groupby z wieloma agregacjami


Aby użyć grupowania z wieloma agregacjami w pandach, możesz użyć następującej podstawowej składni:

 df. groupby (' team '). agg (
    mean_points=(' points ', np. mean ),
    sum_points=(' points ', np. sum ),
    std_points=(' points ', np. std ))

Ta konkretna formuła grupuje wiersze ramki DataFrame według zmiennej zwanej zespołem , a następnie oblicza kilka statystyk podsumowujących dla zmiennej zwanej punktami .

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

Przykład: używanie Groupby z wieloma agregacjami w Pandach

Załóżmy, że mamy następującą ramkę danych pand, która zawiera informacje o różnych koszykarzach:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['Mavs', 'Mavs', 'Mavs', 'Heat', 'Heat', 'Heat'],
                   ' points ': [18, 22, 19, 14, 14, 11],
                   ' assists ': [5, 7, 7, 9, 12, 9]})

#view DataFrame
print (df)

   team points assists
0 Mavs 18 5
1 Mavs 22 7
2 Mavs 19 7
3 Heat 14 9
4 Heat 14 12
5 Heat 11 9

Możemy użyć następującej składni, aby pogrupować wiersze ramki DataFrame według zespołu , a następnie obliczyć średnią, sumę i odchylenie standardowe punktów dla każdego zespołu:

 import numpy as np

#group by team and calculate mean, sum, and standard deviation of points
df. groupby (' team '). agg (
    mean_points=(' points ', np. mean ),
    sum_points=(' points ', np. sum ),
    std_points=(' points ', np. std ))

      mean_points sum_points std_points
team			
Heat 13.000000 39 1.732051
Mavs 19.666667 59 2.081666

Wynik wyświetla średnią, sumę i odchylenie standardowe zmiennej punktowej dla każdego zespołu .

Możesz użyć podobnej składni, aby wykonać grupowanie i obliczyć dowolną liczbę agregacji.

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania związane z pandą:

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 *