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.
oś: 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.