Jak liczyć obserwacje grupowe u pand
Często może Cię zainteresować policzenie liczby obserwacji na grupę w ramce DataFrame pandy.
Na szczęście można to łatwo zrobić, korzystając z funkcji groupby() i size() o następującej składni:
df. groupby (' column_name '). size ()
W tym samouczku wyjaśniono kilka przykładów praktycznego wykorzystania tej funkcji przy użyciu następującej ramki danych:
import numpy as np import pandas as pd #create pandas DataFrame df = pd. DataFrame ({'team': ['A', 'A', 'B', 'B', 'B', 'C', 'C'], 'division':['E', 'W', 'E', 'E', 'W', 'W', 'E'], 'rebounds': [11, 8, 7, 6, 6, 5, 12]}) #display DataFrame print (df) team division rebounds 0 AE 11 1 AW 8 2 BE 7 3 BE 6 4 BW 6 5 CW 5 6 CE 12
Przykład 1: liczenie według zmiennej
Poniższy kod pokazuje, jak policzyć całkowitą liczbę obserwacji na zespół:
#count total observations by variable 'team' df. groupby (' team '). size () team At 2 B 3 C 2 dtype: int64
Z wyniku możemy zobaczyć, że:
- Zespół A ma 2 obserwacje
- Zespół B ma 3 obserwacje
- Zespół C ma 2 obserwacje
Należy zauważyć, że poprzedni kod tworzy serię. W większości przypadków chcemy pracować z ramką DataFrame, więc zamiast tego możemy użyć funkcji reset_index() do utworzenia ramki DataFrame:
df. groupby (' team '). size (). reset_index (name=' obs ') team obs 0 to 2 1 B 3 2 C 2
Przykład 2: liczenie i sortowanie według zmiennej
Możemy również użyć funkcji sort_values() do posortowania liczby grup.
Możemy określić rosnąco=Fałsz , aby posortować liczbę grup od największej do najmniejszej lub rosnąco=True , aby posortować od najmniejszej do największej:
df. groupby (' team '). size (). reset_index (name=' obs '). sort_values ([' obs '], ascending= True ) team obs 0 to 2 2 C 2 1 B 3
Przykład 3: Liczenie według kilku zmiennych
Możemy również policzyć liczbę obserwacji pogrupowanych według kilku zmiennych w ramce DataFrame pandy:
#count observations grouped by team and division df. groupby ([' team ',' division ']). size (). reset_index (name=' obs ') team division obs 0 A E 1 1 A W 1 2 B E 2 3 B W 1 4 C E 1 5 C W 1
Z wyniku możemy zobaczyć, że:
- 1 obserwacja należy do drużyny A i dywizji E
- 1 obserwacja należy do drużyny A i dywizji W
- 2 obserwacje należą do drużyny B i dywizji E
- 1 obserwacja należy do drużyny B i dywizji W
- 1 obserwacja należy do drużyny C i dywizji E
- 1 obserwacja należy do drużyny C i dywizji W
Dodatkowe zasoby
Jak obliczyć sumę kolumn w Pandach
Jak obliczyć średnią kolumn w Pandach
Jak znaleźć maksymalną wartość kolumn w Pandach