Indeks Grupy Pandas

Indeks Grupy Pandas
Aby podzielić dane na grupy, możemy użyć danych Pandas DataFrame.Funkcja grupy (). Możemy podzielić obiekty panda na grupy danych wzdłuż osi. Formalna definicja grupowania jest mapowaniem nazwy etykiet do grupy. Obiekt jest podzielony, stosuje się funkcję, a wyjścia są łączone w operacji grupy. Jest to przydatna metoda wykonywania operacji i agregowania ogromnych ilości danych. Pandas Groupby usuwa kolumny grupy z listy kolumn DataFrame i domyślnie przekształca je w indeksy. W tym artykule zademonstrujemy, jak zgrupować dane na podstawie indeksu lub wielu indeksu strumienia danych w pandy i jak wykonywać różne operacje indeksu po ich zgrupowaniu.

Jak korzystać z indeksu grupy w pandy

Rzućmy okiem na składnię funkcji GroupBy () przed zastosowaniem jej do indeksu DataFrame.

Składnia:

Ramka danych.GroupBy (przez = none, oś = 0, poziom = brak, as_index = true, sort = true, grupa_keys = true)

Gdzie;

przez: Ciąg, funkcja, iterable lub mapowanie.

: Int, zero domyślnie.

poziom: Grupowanie danych dla osi indeksu wielopoziomowego według określonego poziomu lub poziomów hierarchicznych.

as_index: Dotyczy to tylko wejścia do danych danych. Jeśli indeks = false, dane wyjściowe jest zgrupowane w „w stylu SQL”.

sortować: Należy posortować grupę kluczy. Wyłącz to, aby zwiększyć wydajność. Nie powinno to mieć wpływu na kolejność lub sekwencję obserwacji w dowolnej grupie. Rzędy wewnątrz każdej grupy są przechowywane w kolejności utrzymywanej przez grupę.

grupa_keys: Podczas dzwonienia Zastosuj, dodaj klucze grup do indeksu, aby zidentyfikować ściśnięcie części: Zmniejsz wymiarowość typu powrotu, jeśli możesz; Jeśli nie, zwróć stały typ.

Teraz możesz wykonać obliczenia podczas grupowania według pojedynczych lub wielu kolumn indeksowych przy użyciu metod wymienionych w następujący sposób:

Przykład 1: Znalezienie maksymalnej wartości kolumny poprzez grupowanie kolumny indeksu

Najpierw tworzymy ramkę danych za pomocą PD.Funkcja dataFrame (), abyśmy mogli zgrupować dane z indeksu DataFrame i określić ich maksymalną wartość dla określonej kolumny DataFrame. Importujemy bibliotekę pandy, zanim utworzymy ramkę danych.

Tworzymy ramkę danych składającą się z trzech kolumn: „Team_id”, „Country” i „Pank”. Wartości danych („001”, „002”, „001”, „001”, „003”, „003”, „002”, „001”, „002”, „003”), („Hiszpania”, „Brazylia”, „Brazylia”, „Niemcy”, „Brazylia”, „Hiszpania”, „Niemcy”, „Hiszpania”, „Niemcy”, „Hiszpania”) i (6, 10, 6, 5, 8, 5 , 8, 9, 5, 8) są przechowywane odpowiednio w kolumnach „Team_id”, „Country” i „Pank”. Jak można to zauważyć, istnieje indeks liczb całkowitych, który jest domyślnym indeksem utworzonym przez konstruktor panda. Możemy określić kolumnę lub kolumny DataFrame jako indeksu formy danych za pomocą funkcji set_index ().

Kolumna „Team_id” jest teraz konwertowana na indeks. Zmieńmy indeks za pomocą funkcji grupy () i znajdź maksymalną wartość dla każdej grupy za pomocą funkcji Max ().

Określając etykietę kolumny indeksu wewnątrz funkcji GroupBy () jako ciąg, konwertujemy dane na trzy grupy: 001, 002 i 003. Następnie funkcja max () jest stosowana do kolumny „Wynik”, aby znaleźć maksymalną wartość dla każdej grupy. Dla wartości grupy „001” maksymalna wartość w kolumnie „wynik” wynosi 9. Następnie 10 to maksymalna wartość dla danych grupy 002, a 8 to maksymalna wartość dla danych grupy 003.

Przykład 2: Znajdź sumę wartości kolumny, grupując kolumny Multiindex

W poprzednim przykładzie przekonwertowaliśmy pojedynczą kolumnę z ramki danych jako indeksu ramki danych. Teraz ustawiamy wiele kolumn DataFrame jako indeksy DataFrame.

W nowo utworzonym DataFrame mamy cztery kolumny z etykietami „grupa”, „team_id”, „nazwa” i „wiek”. W kolumnie „grupy” mamy wartości danych („x”, „x”, „x”, „x”, „x”, „y”, „y”, „y”, „y”, „ Y ”). „Team_id” przechowuje wartości („001”, „002”, „001”, „001”, „003”, „003”, „002”, „001”, „002”, „003”). Podczas gdy kolumny „nazwa” i „wiek” składają się z wartości danych („Riz”, „Bran”, „Kim”, „William”, „Hardy”, „Sam”, „Ryan”, „Lana”, „Jenny” , „Glina”) i (21, 25, 19, 17, 22, 27, 25, 18, 29, 21). Ustawmy kolumny grupy i team_id jako indeksy danych danych.

Lista etykiet kolumn [„grupa”, „Team_id”] jest przekazywana w funkcji set_index (). Teraz grupa kolumn i Team_id działają jako indeks wielopoziomowy. Konwertujmy dane indeksu na grupy i określmy sumę wartości w kolumnie „wiek” dla każdej grupy.

Funkcja z powodzeniem określa sumę wartości kolumn „wiek” dla każdej grupy indeksów wielopoziomowych.

Przykład 3: Znajdź liczbę unikalnych wartości, grupując kolumnę indeksu i regularną kolumnę z ramki danych

Widzieliśmy, jak zgrupować kolumnę indeksu lub wiele kolumn indeksu DataFrame. Teraz grupujemy zarówno indeksowe, jak i regularne kolumny DataFrame, aby znaleźć liczbę unikalnych wartości w określonej kolumnie. Dla PD.Funkcja dataFrame (), aby wygenerować ramkę danych, słownik jest przekazywany jako wejście.

Tworzona jest ramka danych. Tworzymy cztery kolumny w naszym DataFrame. Kolumna „Sekcja” ma wartości ciągów („czerwony”, „czerwony”, „czerwony”, „czerwony”, „czerwony”, „niebieski”, „niebieski”, „niebieski”, „niebieski”, „niebieski”). Kolumna „Student” przechowuje nazwiska studentów jako String („Frey”, „Kelly”, „Peter”, „Tyson”, „Jhon”, „Sansa”, „Cloe”, „Randy”, „Lance”, „ Diaz ”). Kolumna „podmiotów” ma wartości ciągów jako nazwę podmiotów („C ++”, „C ++”, „Java”, „Python”, „Python”, „C ++”, „C#”, „C#”, „R”, „JS”). A kolumna „pozycji” ma wartości liczb całkowitych (3, 1, 3, 2, 1, 5, 4, 6, 4, 7).

Ponieważ kolumna „sekcja” jest ustawiona jako indeks danych, zgrupujmy nasze kolumny za pomocą funkcji grupy ().

Podajemy listę etykiet kolumnowych (etykieta kolumny indeksu i zwykła etykieta kolumnowa) jako argument wewnątrz funkcji GroupBy (), aby utworzyć grupy. Funkcja Nunique () jest stosowana do kolumny „podmiot”, aby zliczyć odrębne wartości dla każdej grupy.

Przykład 4: Znajdź średnią wielu kolumn, grupując wiele kolumn indeksu DataFrame

Zastosowaliśmy różne funkcje do określonej kolumny ramki danych w poprzednich przykładach. Teraz stosujemy różne funkcje w wielu kolumnach po zgrupowaniu kolumny indeksu. Tworzymy przykładową ramkę danych, co można zobaczyć w następujący sposób:

Najpierw ustawiamy kolumnę sekcji jako kolumnę indeksu.

Teraz zgrupujmy dane kolumny indeksu i określ wartość średnią i sumę odpowiednio „test1” i „test2”.

Używamy funkcji agg () i przekazujemy słownik z nazwami kolumn jako klawisze i funkcje/ operacje jako wartości do zastosowania różnych funkcji w kolumnach „test1” i „test2”. Średnia kolumny „test1” wynosi 7.2 i suma wartości kolumny „test2” wynosi 35 dla grupy A. Dla grupy B średnia wartości kolumny „test1” wynosi 6.6 i suma wartości kolumn „test2” wynosi 31.

Wniosek

W tym samouczku omówiliśmy, jak korzystać z funkcji GroupBy () z kolumną indeksu DataFrame w pandy. Najpierw omówiliśmy składnię funkcji GroupBy (), aby zrozumieć jej parametry i funkcjonalność. Praktycznie zaimplementowaliśmy wiele przykładów w tym artykule, aby nauczyć Cię, jak wykonywać różne funkcje w określonej kolumnie lub wielu kolumnach danych danych, grupując kolumnę indeksu lub kolumny indeksu wielopoziomowego.