Zastosuj pandas Groupby

Zastosuj pandas Groupby
Najpopularniejszą biblioteką Python do manipulacji danych i analizy są pandy. Analiza danych często wymaga podziału danych na grupy w celu wykonywania różnych operacji w każdej grupie. Strategia podzielonego w aplikacji jest wykorzystywana przez funkcję grupy w pandy. Obejmuje to rozdzielenie obiektu, używanie funkcji na obiekcie i łączenie wyników. W tym poście, aby manipulować zgrupowanymi danymi na różne sposoby, zostanie użyta funkcja grupy. Jedną z powszechnie stosowanych metod stosowanych do przetwarzania danych jest stosować() metoda. Zastosowanie funkcji do każdego elementu w serii pandy i do kolumny lub wiersza każdej DataFrame w pandy jest prostsze. Metoda Apply () w pandy zostanie omówiona w tym artykule wraz z funkcją GroupBy ().

Gorąca, aby użyć funkcji Apply () na zgrupowanych danych

Możemy użyć funkcji Apply () dla różnych funkcji do wierszy i kolumn DataFrame. Obiekty dostarczone do funkcji to obiekty szeregów, których wartością indeksu jest albo wskaźnik wierszy danych (axis = 0) lub liczba kolumn w ramce danych (Oś = 1). Korzystanie z tej metody zwróci ramkę danych lub serię wzdłuż określonej osi. Jeśli chcemy zmienić określoną kolumnę bez zmiany żadnych innych kolumn, możemy użyć tej funkcji. DAtaFrame.stosować() Składnia metody podano poniżej.

Składnia: Ramka danych.aplikuj (func, axis = 0, raw = false, wynik_type = brak, args = (), ** kwds)

Gdzie:

Func: Reprezentuje funkcję, która zostanie zastosowana do każdego wiersza lub kolumny

: Określa kierunek, w którym zostanie zastosowana metoda: 0 lub „indeks” stosuje funkcję do wszystkich kolumn, a 1 lub „kolumny” stosuje funkcję do wszystkich wierszy.

Result_Type: Oferuje opcje „zmniejsz”, „rozwój”, „transmisja” i „Brak”. „Brak” jest wartością domyślną.

Te działają tylko z oś = 1 (kolumny):

zwiększać: Kolumny zostaną utworzone z wyników, które przypominają listy.

zmniejszyć: W przeciwieństwie do „rozszerzenia”, to zwraca serię, gdy jest to możliwe, a nie rozszerzanie wyników, które przypominają listy.

audycja: Oryginalne kolumny i indeks będą przechowywane i będzie transmitować wyniki do ramki danych w swoim oryginalnym kształcie.

Rzućmy również okiem na składnię funkcji GroupBy (), aby zgrupować dane:

Składnia: Ramka danych.GroupBy (przez = none, axis = 0, poziom = brak, as_index = true, sort = true, grupa_keys = true, squeeze = nodefault.no_default, obserwowany = false, dropna = true)

przez: funkcja, lista etykiet, mapowanie lub etykieta. W przypadku grupy służy do tworzenia grup. Grupy zostaną określone na podstawie wartości lub serii DICT, jeśli jeden z nich jest podany. Używa wartości jako-IS do generowania grup, jeżeli ndarray lub lista o równej długości do wybranej osi. Aby grupować według kolumn DataFrame w sobie, może być podana/przekazana lista etykiet lub pojedynczej etykiety. Należy pamiętać, że każdy krotek jest postrzegany jako klucz (singiel).

: „indeks” lub 0, „kolumny” lub 1, domyślnie 0. Podziel się wzdłuż kolumn lub wierszy.

poziom: nazwa poziomu, sekwencja takich lub int. domyślnie brak. Dane grupy są oparte na określonym poziomie lub poziomach, jeśli wskaźnik osi jest wielowarstwowym.

as_index: bool, domyślnie to prawda. Zwróć obiekt z nazwami grup jako indeksu dla zagregowanego wyjścia. Dotyczy tylko wejścia do danych danych. Skutecznie dane wyjściowe zgrupowane w stylu „SQL” jest „jako indeks = false”.

sortować: bool, domyślnie to prawda. Klucze grupy w porządku. Wyłączając to, Twoja wydajność poprawi się.

grupa_keys: bool, domyślnie to prawda. Dodaj klucze grupy do indeksu podczas wywołania Zastosuj, aby zidentyfikować części.

ściskać: bool, domyślnie jest to fałszywe. Jeśli to możliwe, zmniejsz wymiarowość typu powrotu; Jeśli nie, zwraca spójny typ.

zauważony: bool, domyślnie jest to fałszywe. Tylko wtedy, gdy jeden lub więcej grupy jest kategoryczne. Wyświetl wartość wyjściową tylko dla kategorycznych grupy.

Dropna: bool, domyślnie to prawda. Jeśli true, a klawisze grupy mają wartości NA, wartości Na i odpowiedni wiersz i kolumna zostaną usunięte.

Pokazajmy kilka przykładów, które pomogą Ci nauczyć się korzystać z funkcji GroupBy () i zastosowania () razem w pandy.

Przykład nr 1: Określ częstotliwość wartości w kolumnie DataFrame

Aby znaleźć częstotliwość wartości w kolumnie DataFrame, musimy najpierw wymagać ramki danych. DataFrame zostanie utworzony za pomocą PD.Funkcja dataFrame ().

Utworzyliśmy ramkę danych. Znajdźmy częstotliwość odrębnych wartości danych w kolumnie „grupa”. Przed znalezieniem częstotliwości najpierw zgrupujemy dane za pomocą metody GroupBy (). Następnie zdefiniujemy funkcję wewnątrz funkcji Apply (), aby znaleźć częstotliwość.

Dane w kolumnie „grupa” są teraz pogrupowane. Aby znaleźć częstotliwość, użyliśmy wbudowanych funkcji i atrybutów pandy: Count () i kształt []. Wewnątrz funkcji zastosowania, lambda Funkcja służy do wykonywania określonej funkcji lub wyrażenia. Funkcja określiła częstotliwość dla kategorii X wynosi 0.57 i dla y to 0.42. Grupa X pojawia się w 57% rzędów; podczas gdy grupa Y pojawia się w 42%.

Przykład nr 2: Określ maksymalną wartość w kolumnie DataFrame

Możemy użyć funkcji GroupBy () wraz z Apply (), aby określić maksymalne wartości dla każdego zgrupowanych danych. Ponownie utworzymy ramkę danych, abyśmy mogli znaleźć maksymalną wartość po zgrupowaniu danych kolumny.

Najpierw zgrupujemy dane kolumny „zespół”, aby tworzyć kategorie. Następnie użyjemy funkcji Apply () w środku, w której użyjemy funkcji agregacji „maks.”, Aby znaleźć maksymalną wartość w kolumnie „punkty” dla każdej kategorii.

Zespół kolumny jest pogrupowany w trzy kategorie. Następnie funkcja Applape () określiła maksymalną wartość kolumny „punkt” dla każdej kategorii. Kategoria „ACE” ma maksymalną wartość 14; podczas gdy 15 i 17 to odpowiednio wartości maksymalne dla grup beta i mistrza.

Przykład nr 3: Wykonanie niestandardowych obliczeń za pomocą funkcji Apply () po zgrupowaniu danych

Zamiast używać tylko wbudowanych funkcji agregacji pandy, możemy również zdefiniować funkcje niestandardowe lub utworzyć wyrażenie wewnątrz stosować() funkcja do wykonania niestandardowych obliczeń. Utwórzmy ramkę danych, z której zgrupujemy dane z określonej kolumny. Następnie wykonamy na nim obliczenia.

Obliczmy średnią różnicę między wartościami dla każdej grupy.

Dane w kolumnie „Student” są pogrupowane w trzy kategorie „Billy”, „Jim” i „Mandy”. Średnia różnica między kolumną „total_marks” i „uzyskanych_marków” jest uzyskiwana przez odjęcie wartości kolumny „Uzyskane_prawie” od kolumny „total_marks” i zastosowanie do niej funkcji średniej (). Średnia wartość różnicy dla kategorii „Billy” to 3.66. Podczas gdy średnia różnica dla wartości zgrupowanych Jim i Mandy wynosi odpowiednio 3 i 4.

Wniosek

W tym samouczku omówiliśmy funkcje GroupBy () i stosowania (). Widzieliśmy składnię obu funkcji wraz z ich parametrami, aby zrozumieć ich funkcjonalność. W tym samouczku zaimplementowaliśmy kilka przykładów, aby nauczyć Cię, w jaki sposób możesz korzystać z funkcji GroupBy () i zastosowania () za pomocą funkcji wbudowanych lub definiując niestandardowe funkcje w pandy.