MultiIndex w pandach dla danych wielopoziomowych lub hierarchicznych

MultiIndex w Pandas to wielopoziomowy lub hierarchiczny obiekt, który pozwala wybrać więcej niż jeden wiersz i kolumnę w indeksie. Umożliwia także tworzenie zaawansowanych analiz i manipulacji danymi, szczególnie w przypadku pracy z danymi o wyższych wymiarach. W tym samouczku zamierzam zbadać funkcję MultiIndex w Pandach. Możesz obejrzeć pełny film z tego samouczka na dole tego bloga.

Chodzi o to, że mamy indeks, który zawiera również hierarchię. Jeśli korzystałeś już wcześniej z Pand, wiesz, że ramki danych Pand zawierają index , więc dodamy do tego dodatkowe warstwy. Ułatwi to zarówno indeksowanie, jak i przekształcanie danych, w zależności od tego, czy rzeczywiście masz hierarchię danych.

Na przykład użyjemy słynnego zestawu danych Gapminder, a tutaj rzeczywiście jest to MultiIndex. Mamy hierarchię, więc kontynent obejmuje kraje, a każdy kraj może drążyć wiele lat. Możemy więc manipulować tym indeksem, a kodowanie będzie dużo łatwiejsze, gdy użyjemy tego MultiIndexu. Przyjrzymy się krojeniu, a także przekształcaniu zestawu danych Gapminder.

Spis treści

Jak korzystać z MultiIndex w pandach

Zamierzamy użyć zestawu danych Gapminder. Jeśli nie masz tego zainstalowanego, chcesz wykonać instalację PIP Gapminder. Przyniosę też pandy. Używam dystrybucji Pythona Anaconda. W takim przypadku ta Pandas zostanie już zainstalowana. Robimy import Gapminder, a następnie przyjrzymy się tym danym.

MultiIndex w pandach dla danych wielopoziomowych lub hierarchicznych

Jak widać tutaj, znowu mamy indeks lub hierarchię. Powinienem powiedzieć, że mamy kontynent, kraj, a potem rok. Obecnie indeks jest po prostu numeryczny, tak jak ten, i teraz ustawimy własny indeks. A sposób, w jaki to zrobimy, to Gapminder. Ustawimy indeks. Ustawimy go na kontynent, kraj, a następnie rok, inplace równa się ( = ) true .

MultiIndex w pandach dla danych wielopoziomowych lub hierarchicznych

To jest po prostu zapisywanie wyników, więc nie musimy wywoływać zmiennej dwa razy, tylko trochę wydajniej. A teraz zobaczysz, że mamy tutaj indeks (treść, kraj, rok) i to jest nasz multiindeks.

Kilka rzeczy, które moglibyśmy tutaj zrobić. Powiedzmy na przykład, że chciałem mieć wszystko na kontynencie europejskim. Chcę przefiltrować lub podzielić tę ramkę danych. Mogę użyć gapminder.loc , a następnie wpisać Europe. Być może znasz loc. Z innych okoliczności w Pandach działa to o wiele łatwiej, gdy robimy to według indeksu.

MultiIndex w pandach dla danych wielopoziomowych lub hierarchicznych

Teraz to istnieje w hierarchii. Powiedzmy, że chcieliśmy tylko danych z Wielkiej Brytanii. Wygląda na to, że bylibyśmy w stanie po prostu to pociąć, ale to będzie problem, ponieważ kiedy to indeksujemy, utknęliśmy przy użyciu hierarchii. Musimy zacząć od pierwszego poziomu, a następnie przejść do drugiego, trzeciego i tak dalej.

Gdybym chciał uwzględnić wiele poziomów, mogę to zrobić tutaj. Zamierzam zrobić Europę, a potem Wielką Brytanię. Mógłbym nawet pójść o krok dalej i wpisać 1997. A teraz widzimy tutaj wynik tego wiersza w tym przypadku.

MultiIndex w pandach dla danych wielopoziomowych lub hierarchicznych

Kolejną fajną rzeczą z MultiIndex w Pandas jest to, że o wiele łatwiej jest zmienić kształt danych. Mogę zrobić gapminder_pivot , a następnie gapminder.unstack . Jeśli z jakiegoś powodu będę musiał zmienić kształt tego zestawu danych, wydrukuję to i zobaczysz, że teraz mamy kontynent, kraj, a następnie rok wraz z kolumnami.

MultiIndex w pandach dla danych wielopoziomowych lub hierarchicznych

Powiedzmy, że chciałem to zrobić w przeciwnym kierunku. Wszystko, co musiałbym zrobić, to unpivot i zrobimy gapminder_pivot . Jeśli to było rozpakowywanie, to jest to układanie w stos gapminder_unpivot.

MultiIndex w pandach dla danych wielopoziomowych lub hierarchicznych

A co, jeśli chcę pozbyć się tego indeksu, zresetować go i zmienić na coś innego? Wszystko, co muszę zrobić w takim przypadku, to gapminder_unpivot. Idziemy do reset_index . Zrobimy to ponownie na miejscu . Nie musimy oszczędzać na sobie. Jest tylko trochę wydajniejszy. Następnie gapminder_unpivot.

Wydrukuj to i wrócimy do naszych oryginalnych danych i mamy indeks. Liczbowe rozpoczęcie jest od zera, ponieważ Python indeksuje od zera.

MultiIndex w pandach dla danych wielopoziomowych lub hierarchicznych


Python w usłudze LuckyTemplates: jak zainstalować i skonfigurować
skrypty w języku Python w raportach danych usługi
LuckyTemplates LuckyTemplates ze skryptami w języku Python do tworzenia tabel dat

Wniosek

Pandas został początkowo nazwany na cześć danych panelowych. To naprawdę ma działać z danymi panelowymi, które są specyficznym rodzajem danych szeregów czasowych z wieloma kategoriami. W takim przypadku posiadanie hierarchii ma sens, prawda?

Działa to naprawdę dobrze, jeśli pracujesz z unikalnymi wierszami i próbujesz znaleźć wiele kolumn.

Jeśli chodzi o wydajność, może się zdarzyć, że indeks nie jest konieczny, jeśli się łączysz, ale tutaj nie łączyliśmy. Po prostu obsługiwaliśmy, uzyskiwaliśmy dostęp, indeksowaliśmy, przekształcaliśmy itp. Jednak wydajność kodowania jest zdecydowanie dużą korzyścią.

To wszystko dla MultiIndex w Pandach. Mam nadzieję, że jest to coś, czego możesz użyć. Dowiedziałeś się dzisiaj czegoś nowego o pandach.

Wszystkiego najlepszego!

Leave a Comment

Dodawaj, usuwaj i zmieniaj nazwy kolumn w R za pomocą Dplyr

Dodawaj, usuwaj i zmieniaj nazwy kolumn w R za pomocą Dplyr

W tym samouczku omówimy pakiet dplyr, który umożliwia sortowanie, filtrowanie, dodawanie i zmianę nazw kolumn w języku R.

Funkcje zbierania w Microsoft Power Automate

Funkcje zbierania w Microsoft Power Automate

Odkryj różnorodne funkcje zbierania, które można wykorzystać w Power Automate. Zdobądź praktyczne informacje o funkcjach tablicowych i ich zastosowaniu.

Oceń wydajność kodu DAX w DAX Studio

Oceń wydajność kodu DAX w DAX Studio

Z tego samouczka dowiesz się, jak ocenić wydajność kodów DAX przy użyciu opcji Uruchom test porównawczy w DAX Studio.

Czym jest self w Pythonie: przykłady z życia wzięte

Czym jest self w Pythonie: przykłady z życia wzięte

Czym jest self w Pythonie: przykłady z życia wzięte

Jak zapisać i załadować plik RDS w R

Jak zapisać i załadować plik RDS w R

Dowiesz się, jak zapisywać i ładować obiekty z pliku .rds w R. Ten blog będzie również omawiał sposób importowania obiektów z R do LuckyTemplates.

Powrót do pierwszych N dni roboczych — rozwiązanie języka kodowania DAX

Powrót do pierwszych N dni roboczych — rozwiązanie języka kodowania DAX

Z tego samouczka języka kodowania DAX dowiesz się, jak używać funkcji GENERUJ i jak dynamicznie zmieniać tytuł miary.

Zaprezentuj spostrzeżenia przy użyciu wielowątkowej techniki dynamicznych wizualizacji w usłudze LuckyTemplates

Zaprezentuj spostrzeżenia przy użyciu wielowątkowej techniki dynamicznych wizualizacji w usłudze LuckyTemplates

W tym samouczku omówiono sposób korzystania z techniki wielowątkowych wizualizacji dynamicznych w celu tworzenia szczegółowych informacji na podstawie dynamicznych wizualizacji danych w raportach.

Wprowadzenie do filtrowania kontekstu w usłudze LuckyTemplates

Wprowadzenie do filtrowania kontekstu w usłudze LuckyTemplates

W tym artykule omówię kontekst filtra. Kontekst filtrowania to jeden z głównych tematów, z którym każdy użytkownik usługi LuckyTemplates powinien zapoznać się na początku.

Najlepsze wskazówki dotyczące korzystania z aplikacji w usłudze online LuckyTemplates

Najlepsze wskazówki dotyczące korzystania z aplikacji w usłudze online LuckyTemplates

Chcę pokazać, jak usługa online LuckyTemplates Apps może pomóc w zarządzaniu różnymi raportami i spostrzeżeniami generowanymi z różnych źródeł.

Analizuj zmiany marży zysku w godzinach nadliczbowych — Analizuj za pomocą LuckyTemplates i DAX

Analizuj zmiany marży zysku w godzinach nadliczbowych — Analizuj za pomocą LuckyTemplates i DAX

Dowiedz się, jak obliczyć zmiany marży zysku przy użyciu technik, takich jak rozgałęzianie miar i łączenie formuł języka DAX w usłudze LuckyTemplates.