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

Dodaj komentarz

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