Pandas Groupby Aggregate

Pandas Groupby Aggregate

Technika grupy jest niezbędna ze względu na to, jak dobrze agreguje dane zarówno pod względem wydajności, jak i wielkości kodu. Termin „grupa” zazwyczaj opisuje procedurę, w tym następujące kroki:

  • Rozdzielać: Stosując określone warunki do zestawów danych, możemy podzielić dane na grupy.
  • Aplikowanie: Proces, w którym indywidualnie stosujemy metodę do każdej grupy.
  • Łączenie: Procedura łączenia różnych zestawów danych w celu utworzenia struktury danych po użyciu metody GroupBy ().

W procesie agregacji obliczana jest statystyka podsumowująca dla każdej grupy. Dla każdej grupy metoda zagregowana zwraca wartość zagregowaną (pojedyncza wartość). Możemy wykonać kilka agregujących operacji na zgrupowanych danych po podzieleniu danych na grupy za pomocą funkcji grupy.

Dlaczego pandy zapewniają różne metody agregacji danych?

Pandy oferują szeroki zakres funkcji i funkcji, które pomogą w analizie i agregacji danych. Zastosowanie metod PIVOT (), GroupBy () i Pivot_Table (), na przykład każda z nich oferuje inne spojrzenie na sposób agregowania danych. Zapewniają praktyczne podejście do wykonywania różnych zadań, a nie po prostu przepakowani.

Jak używać .funkcja agg () w pandy

Prosta średnia lub suma wartości to funkcja agregacji, która jest najczęściej używana. Możesz użyć kolumny lub wielu kolumn danych, aby wywołać funkcję agregatów. Zobaczysz wiele sposobów agregowania danych przy użyciu metody Pandas GroupBy. Aby zademonstrować, o ile łatwiej jest ta procedura, spójrzmy na niektóre przykłady podane poniżej. Podstawowe operacje matematyczne, takie jak suma, minimum, maksimum, średnie odchylenie bezwzględne, odchylenie standardowe, średnia, mediana, wariancja i produkt należą do najczęściej używanych wbudowanych funkcji agregacji. Podsumowując dane, możemy połączyć Funkcję GroupBy i Agg ().

Przykład nr 01: Określ sumę kolumn, grupując dane za pomocą GroupBy.funkcja agg ()

Najpierw utworzymy ramkę danych za pomocą PD.Funkcja dataFrame (), abyśmy mogli zgrupować dane z kolumny lub kolumn DataFrame, a następnie określić ich średnią wartość. Musimy zaimportować moduły pandy i bibliotekę Numpy, zanim utworzymy ramkę danych.

Jak widać, wykorzystaliśmy Słownik Pandas, aby stworzyć naszą strumień danych. Nasza DF DataFrame ma cztery kolumny: „pacjent” „grupa”, „wiek” i „butelki krwi”. Wartości danych („Ali”, „John”, „Mike”, „Mike”, „John”, „Ali”, „Ali”, „Mike”) są zawierane przez kolumnę „pacjent”, podczas gdy wartości danych ('A „A” „,„ A ”,„ B ”,„ C ”,„ A ”,„ C ”,„ C ”,„ B ”), (21, 22, 24, 21, 20, 24, 22, 22) i ( 2, 3, 1, 1, 2, 3, 2, 1) są zawarte odpowiednio w kolumnach „grupa”, „wiek” i „blood_bottles”. Załóżmy, że musimy określić sumę wartości w kolumnie „Blood_bottles”, grupując wartości w kolumnie „grupa”.

W przypadku danych grupowych „A” suma wartości „Blood_bottles” wynosi 7. Dla wartości grupy „B” i „C” suma wartości „Blood_bottles” wynosi odpowiednio 2 i 6. Możemy również grupować wiele kolumn, aby określić sumę dla każdej grupy.

Jak można zaobserwować, przeszliśmy listę etykiet kolumnowych, i.mi., [„pacjent”, „grupa”] wewnątrz funkcji grupy (), aby utworzyć grupy kategorii w każdej określonej kolumnie. Dla każdej grupy określonych kolumn określiliśmy sumę wartości w „Blood_bottles”. Na przykład „Ali” jest w wartościach kolumny „grupy” A i C. W grupie A suma wartości „Blood_bottles” dla Ali wynosi 2 i 5 w grupie „C”.

Przykład nr 02: Zastosowanie wielu funkcji na jednej kolumnie z ramką danych za pomocą GroupBy.funkcja agg ()

Wiele agregacji można zastosować za pomocą metody „grupy ()” przy użyciu funkcji pandas agg (). Listę przywołającą można przekazać do metody. Spójrzmy, jak możemy agregować nasze dane za pomocą wbudowanych metod biblioteki Numpy Library. W przeciwieństwie do poprzedniego przykładu, zastosujemy wiele funkcji do jednej kolumny DataFrame. PD.Funkcja dataFrame () zostanie użyta do utworzenia dla niej z co najmniej jednej kolumny zawierającej wartości numeryczne.


Wymagana ramka danych została utworzona o jednej kolumnie numerycznej i.mi. „Znaki” z wartościami 41, 40, 35, 39, 49, 31, 34 i 42. W naszym DataFrame są jeszcze 3 kolumny „Student”, „Tematy” i „stopień”, które można podzielić na grupy za pomocą funkcji grupy (). Wartości w kolumnie „Studenci” i „Tematy” to („Harry”, „Ron”, „Harry”, „Lana”, „Sam”, „Ron”, „Lana”, „Max”) i („C ++” , „Java”, „Python”, „Python”, „ai”, „java”, „c ++”, „ai”). Podczas gdy stopień kolumny zawiera wartości danych jako ciągi, i.mi., („MS”, „BS”, „Bs”, „MS”, „MS”, „MS”, „Bs”, „Bs”). Załóżmy, że musimy zgrupować dane kolumny „podmiotów” i określić zarówno średnią, jak i sumę „znaków” kolumny dla każdego zgrupowanych danych.

Określiliśmy nazwę kolumny „podmiotów” jako ciąg w funkcji grupy (), aby przekonwertować dane na grupy kategorii. W kolumnie znaków zastosowaliśmy metodę AGG () i wewnątrz funkcji agg () określiliśmy funkcje Numpy NP.SUM i NP.oznacza znaleźć sumę i średnią ocen każdego danych grupy u osób z kolumnami. Suma i wartość średnia dla wartości grupy „AI” wynoszą 91 i 45.5 odpowiednio. Suma znaków dla wartości „C ++” wynosi 75, a wartość średnia wynosi 37.5. W przypadku grupy Java suma znaków wynosi 71, a wartość średnia wynosi 35.5, podczas gdy suma i średnia wartość dla Pythona wynoszą odpowiednio 74 i 37.

Przykład nr 03: Zastosowanie wielu funkcji w wielu kolumnach DataFrame za pomocą GroupBy.funkcja agg ()

Zamiast stosować różne funkcje do kolumny pojedynczej DataFrame, możemy zastosować wiele funkcji do różnych kolumn numerycznych. Możemy użyć słownika w funkcji agg () jako danych wejściowych do zastosowania określonej metody agregacji do kolumn różnych DataFrame. Zaimportujmy biblioteki pandy i numpy przed utworzeniem ramki danych z wieloma kolumnami numerycznymi.

Istnieją cztery kolumny w nowo utworzonej ramce danych z nazwami „Player”, „najmniej_score”, „najwyższy poziom_score” i „Lokalizacja”. W kolumnie „Player” zapisaliśmy nazwy kilku graczy jako wartości danych String („Leo”, „Alex”, „Leo”, „Fin”, „Leo”, „Alex”, „Fin”, ' Fin '), w kolumnie „najmniej_score” istnieje najniższe dziesiątki graczy dla niektórych meczów (12, 34, 2, 21, 9, 1, 0, 34), podczas gdy w kolumnie „najwyższy_s ocen” mamy najwyższe dziesiątki graczy (12, 34, 2, 21, 9, 1, 0, 34), a w kolumnie „Lokalizacja” istnieją nazwy miejsc, w których gracze grali w swoje mecze („Francja”, „Anglia”, „Dubai”, ',', ',', ',', ',', ',', ',', ',', ',', ',', 'Dubai Dubai ”,„ Anglia ”,„ Francja ”,„ Dubai ”,„ Francja ”).

Załóżmy, że po zgrupowaniu danych w kolumnie „graczy” musimy znaleźć średnią dla wartości kolumny „najmniej_score” i sumę wartości danych „heghtest_score” dla każdej grupy.

Wewnątrz funkcji agg () minęliśmy słownik Python „najwyższy poziom_score”: „sum”, „najmniej_score”: „znaczy”, aby znaleźć sumę i średnią wartość dla określonej kolumny w stosunku do każdej grupy. Można zauważyć, że wartość pogrupowanej Alex ma sumę wartości „najwyższej_s o” i średniej wartości „najmniej_score” 17.5. W przypadku „płetwy” suma wartości wynosi 199, a średnia to 18.3333333 odpowiednio w kolumna. Wartość grupy LEO ma wartość suma 180 w „najwyższym poziomie” i średnią wartość 7.666667 w „najmniejszym”.

Wniosek

W tym samouczku omówiliśmy funkcje GroupBy () i agregacji w Pandarze. Omówiliśmy również, jak korzystać z grupy.funkcja agg (). W tym artykule zaimplementowaliśmy trzy przykłady, aby nauczyć, jak korzystać z pojedynczej funkcji agregacji w kolumnie DataFrame, grupując dane pojedynczych i wielu kolumn, jak zastosować wiele funkcji agregacji na jednej kolumnie z ramką danych i jak zastosować wiele Funkcje agregacji w wielu kolumnach ramki danych za pomocą grupy.funkcja agg ().