Pandas spłaszcz multiindex

Pandas spłaszcz multiindex
Multiindex to zestaw wyrafinowanych metod indeksowania dlaFrame. Pozwala indeksom mieć wiele poziomów. Można go również nazwać indeksem wielopoziomowym lub indeksem hierarchicznym. Obiekt Multiindex zapewnia hierarchiczną reprezentację standardowego obiektu indeksu, który często zawiera etykiety osi w obiektach pandy. Multiindex można porównać do szeregu krotek, z których każdy jest wyraźnym. Prawie nigdy nie potrzebujesz kolumny z hierarchicznym indeksem w pandy. W większości przypadków chcesz użyć tylko jednej nazwy kolumny do identyfikacji kolumny. W tym samouczku spłaszczymy multiindex DataFrame, używa.

Jak można spłaszczyć wielowarstwowe w pandy

Funkcje takie jak reset_index i to_records () mogą być użyte do spłaszczenia multiindex. Nauczymy cię, jak spłaszczyć multiindex w następujących przykładach.

Przykład 1: Spłaszczanie multiindex wszystkich poziomów za pomocą funkcji RESET_INDEX ()

Korzystając z funkcji RESET_INDEX (), w tym przykładzie spłaszczymy wszystkie warstwy ramki danych. Lista krotek jest przekonwertowana na Multiindex za pomocą metody from_tuples (). Możemy stworzyć multiindex na różne sposoby, a jest to najczęstszy z nich.

Najpierw tworzymy nasz Multiindex „MI”, przekazując wiele krotek - („English”, „1201”, 800), („Maths”, „1202”, 900), („Bio”, „1203”, 1050) , („Physics”, „1204”, 1050) i („Chemistry”, „1205”, 1100) wewnątrz PD.Multiindex.from_tuples () funkcja. Nazwy kolumn krotek są określone jako „podmiot”, „podmiot_id” i „opłata”. Po utworzeniu „MI” Multiindex, tworzymy również pandas -frame przy użyciu PD.Funkcja dataFrame (). Podajemy słownik z nazwiskami uczniów jako kluczy i znaków uczniów jako wartości w naszej „DF” DataFrame.

Mamy 3 kolumny - „Mike”, „Jack” i „Eva” - mające wartości danych (49, 43, 39, 41, 37), (36, 35, 41, 36, 42) oraz (46, Odpowiednio 44, 39, 46, 48). Możesz zauważyć, że określając „MI” jako parametr „indeksowy” wewnątrz PD.Funkcja dataFrame (), kolumny krotek działają jako indeksy wielopoziomowe. Teraz używamy funkcji RESET_INDEX (), aby zmienić indeksy multi na kolumny DataFrame. Indeks wielopoziomowy można dodać jako nową kolumnę DataFrame za pomocą RESET_INDEX (). Argument upuszczony może być używany w funkcji RESET_INDEX (), jeśli nie chcemy zmieniać indeksu jako kolumny. Zamiast tworzyć nową kopię, możemy zresetować bieżący indeks DataFrame, korzystając z wprowadzonego argumentu.

Można zauważyć, że wszystkie trzy poziomy indeksów są zmieniane na kolumnę naszej „DF” DataFrame. Indeks jest również resetowany do domyślnego wskaźnika całkowitego panda.

Przykład 2: Spłaszczanie określonych poziomów wielowarstwowych za pomocą funkcji RESET_INDEX ()

Podejście do spłaszczenia wszystkich poziomów multiindex w kolumnach strumienia danych zostało wykazane w poprzednim przykładzie. Teraz dowiemy się, jak spłaszczyć określone poziomy indeksu na kolumny DataFrame za pomocą funkcji RESET_INDEX (). Rzekie danych można tworzyć na różne sposoby za pomocą pandas multiindex. Widzieliśmy już tę, która wykorzystuje metodę fromots. Utwórzmy multiindex za pomocą funkcji From_Array ().

Mijamy trzy tablice i określamy ich nazwy jako „L1” z wartościami indeksu numerycznego (11, 22, 33, 44, 55). Określamy „L2” z wartościami ciągu („i”, „ii”, „iii”, „iv”, „v”) i „l3” z wartościami indeksu liczb całkowitych (1, 2, 3, 4, 5). Teraz używamy tego multiindex „mi” w PD.Funkcja dataFrame (), aby utworzyć multiindex DataFrame.

Aby utworzyć naszą strumień danych, najpierw tworzymy „Dane” słownika Python za pomocą par-wartości kluczowych. Następnie słownik „Dane” są przekazywane w PD.DataFrame () funkcja jako wejście. Parametr „Kolumny” jest określony jako [„Department”, „Koszt”], aby zmienić klucze i wartości słownika na etykiety i dane kolumnowe Pandas DataFrame. Wskaźnik parametrów jest określony jako „MI”, aby ustawić poziomy wielu atelii w „DF” DataFrame. Teraz używamy funkcji RESET_INDEX (), aby spłaszczyć jeden lub więcej poziomów multiindex w kolumnach.

Składnia do spłaszczenia określonego poziomu za pomocą RESET_INDEX ():

ramka danych.RESET_INDEX (inplace = true, poziom = ['Nazwa poziomu'])

Nazwa poziomu indeksu, który chcemy spłaszczyć, jest określona w parametrze „poziomu”.

Załóżmy, że musimy spłaszczyć wskaźnik „L1” w kolumnę DataFrame.

Można zauważyć, że określając parametr „poziom” jako „L1” wewnątrz funkcji RESET_INDEX (), indeks „L1” jest skutecznie spłaszczony do kolumny. Korzystając z listy poziomów indeksu w parametrze „poziom”, możemy spłaszczyć wiele indeksów do kolumn DataFrame. Użyjmy listy indeksów „L2” i „L3” w parametrze „poziom” wewnątrz funkcji RESET_INDEX ().

Jak widać, określając parametr „poziom” jako listę poziomów indeksu, i.mi. [„L2”, „L3”], poziom indeksów „L2” i „L3” są teraz również konwertowane na kolumny.

Przykład 3: Spłaszczanie poziomów wielowarstwowych za pomocą funkcji to_records ()

W tym przykładzie spłaszczymy poziomy indeksu DataFrame za pomocą funkcji To_Records (). Aby przekształcić krotki w Multiindex, ponownie użyjemy funkcji FORM_TUPPLES (). Najpierw importujemy moduły pandas, a następnie tworzymy multiindex i danych danych.

„MI” jest tworzony za pomocą wielu krotek, i.mi. („1001”, „c11”, 80), („1002”, „c12”, 75), („1003”, „c13”, 90), („1004”, „c14”, 95) i ( „1005”, „C15”, 70). Nazwy poziomów indeksów w wielopoziomie są określone jako „id”, „kod” i „trudność”. Teraz utwórzmy naszą ramkę danych, w której możemy użyć tego multiindex.

Nasza DataFrame jest tworzona za pomocą PD.Funkcja dataFrame (). Nasza DataFrame składa się z trzech kolumn. Kolumna „podmiot” przechowuje nazwy podmiotów („Bio”, „Chemia”, „C ++”, „Stats”, „Python”). Kolumna „Pole” zwiększa wartości ciągów reprezentujących pole każdego przedmiotu („Science”, „Science”, „Programming”, „Maths”, „Programming”). Podczas gdy kolumna „przechodzącą” przechowuje najmniejsze oceny każdego przedmiotu (45, 45, 50, 40, 50). W naszej ramce danych znajduje się trzypoziomowy indeks, jak widać po lewej stronie naszego „DF”.

Ponieważ nasza DataFrame z Multiindex jest teraz tworzona, używamy funkcji To_Record () do spłaszczenia wielu indeksów w kolumnach DataFrame. Rrame danych można przekształcić w tablicę Numpy za pomocą funkcji To_Records (). Na żądanie indeks jest umieszczany jako pierwsze pole tablicy rekordów. Jeśli ustawiono, uwzględnij indeks w wynikowej tablicy rekordów za pomocą etykiety indeksu lub indeksu przechowywanego w etykiecie pola. Jednak w tym przykładzie po prostu użyjemy funkcji to_record (), aby zmienić indeksy wielopoziomowe multiindex DataFrame na proste kolumny DataFrame.

Jak widać na wyjściu, wszystkie poziomy indeksów są skutecznie przekonwertowane na kolumnę DataFrame. W przeciwieństwie do funkcji RESET_INDEX (), nie możemy spłaszczyć określonego indeksu do kolumny. Po zastosowaniu do ramki danych spłaszcza wszystkie indeksy wielu kolumn DataFrame.

Wniosek

W tym samouczka. Pozwala indeksom mieć wiele poziomów. Nauczyliśmy się, jak tworzyć multiindex z krotkami i tablicami za pomocą funkcji from_tuples () i from_array (). Wdrożyliśmy przykłady, aby nauczyć Cię, jak spłaszczyć multiindex wszystkich poziomów i określonych poziomów za pomocą funkcji RESET_INDEX () i To_Records ().