MultiIndex i pandor för flera nivåer eller hierarkiska data

MultiIndex i Pandas är ett flernivå- eller hierarkiskt objekt som låter dig välja mer än en rad och kolumn i ditt index. Det gör det också möjligt för dig att skapa sofistikerad dataanalys och manipulation, särskilt för att arbeta med högre dimensionell data. I den här handledningen ska jag utforska MultiIndex-funktionen i Pandas. Du kan se hela videon av denna handledning längst ner på den här bloggen.

Tanken här är att vi har ett index som också innehåller en hierarki. Om du har använt Pandas tidigare vet du det, så vi kommer att lägga till ytterligare lager till det. Det kommer att göra både indexering och omformning av data lättare, beroende på om du verkligen har en hierarki för dina data.

Till exempel kommer vi att använda den berömda Gapminder-datauppsättningen, och detta är verkligen ett MultiIndex här. Vi har en hierarki, så en kontinent borrar i länder, och varje land kan borra in i flera år. Så vi kan manipulera detta index och saker kommer att bli mycket lättare att koda när vi använder detta MultiIndex. Vi ska titta på skivning och även omforma Gapminder-datauppsättningen.

Innehållsförteckning

Hur man använder MultiIndex i pandor

Vi kommer att använda Gapminder-datauppsättningen. Om du inte har detta installerat vill du göra en PIP-installation Gapminder. Jag ska ta in Pandas också. Jag använder Anaconda-distributionen av Python. I så fall kommer att Pandas redan att installeras. Vi importerar Gapminder och sedan tar vi en titt på denna data.

MultiIndex i pandor för flera nivåer eller hierarkiska data

Som du kan se här har vi återigen ett index eller hierarki. Jag skulle säga att vi har en kontinent, ett land och sedan ett år. För närvarande är indexet bara numeriskt så här, och vi kommer att sätta vårt eget index just nu. Och sättet vi ska göra det är med Gapminder. Vi ska sätta indexet. Vi kommer att ställa in det på kontinent, land och sedan år, inplace är lika med ( = ) sant .

MultiIndex i pandor för flera nivåer eller hierarkiska data

Detta sparar bara resultaten, så vi behöver inte anropa variabeln två gånger, bara lite mer effektiv. Och nu kommer du att se att vi har indexet här, (innehåll, land, år) och det här är vårt multiindex.

Ett par saker vi kan göra här. Låt oss säga att jag till exempel ville ha allt på den europeiska kontinenten. Jag vill filtrera eller dela den här dataramen. Jag kan använda gapminder.loc och sedan skriva i Europa. Du kanske är bekant med loc. Från andra omständigheter i Pandas fungerar det mycket lättare när vi gör det med index.

MultiIndex i pandor för flera nivåer eller hierarkiska data

Nu finns detta i en hierarki. Låt oss säga att vi bara ville ha data från Storbritannien. Det verkar som om vi bara skulle kunna skära upp det här, men det här kommer att bli ett problem för när vi indexerar det här, har vi fastnat för att använda hierarkin. Vi måste börja med den första nivån och sedan borra till den andra och den tredje, et cetera.

Om jag ville inkludera flera nivåer, vad jag kan göra är att skicka in det här. Jag ska göra Europa, och sedan Storbritannien. Jag skulle till och med kunna gå ett steg längre och sätta 1997. Och nu kan vi se här är resultatet av den raden i så fall.

MultiIndex i pandor för flera nivåer eller hierarkiska data

En annan trevlig sak med MultiIndex i Pandas är att det är mycket lättare att omforma data. Jag kan göra gapminder_pivot och sedan gapminder.unstack . Om jag behöver omforma denna datamängd, av någon anledning, kommer jag att skriva ut den här och du kommer att se att nu har vi kontinenten, landet och sedan år tillsammans med kolumnerna.

MultiIndex i pandor för flera nivåer eller hierarkiska data

Låt oss säga att jag ville göra det i motsatt riktning. Allt jag behöver göra är att unpivot och vi kommer att göra gapminder_pivot . Om det var avstapling, då är detta att stapla gapminder_unpivot.

MultiIndex i pandor för flera nivåer eller hierarkiska data

Nu, vad händer om jag vill bli av med det här indexet och återställa det och ändra det till något annat? Allt jag behöver göra i så fall är gapminder_unpivot. Vi kommer att återställa_index . Vi kommer att göra det på plats igen. Vi behöver inte spara över sig själva. Det är bara lite mer effektivt. Sedan, gapminder_unpivot.

Skriv ut det och vi är tillbaka till vår ursprungliga data och vi har indexet. Den numeriska startpunkten är noll eftersom Python är nollbaserad indexering.

MultiIndex i pandor för flera nivåer eller hierarkiska data




Slutsats

Pandas fick ursprungligen sitt namn efter paneldata. Det är egentligen menat att fungera med paneldata, vilket är en specifik typ av tidsseriedata med flera kategorier. I så fall är det verkligen vettigt att ha en hierarki, eller hur?

Detta fungerar riktigt bra om du arbetar med unika rader och försöker hitta flera kolumner.

När det gäller prestandan kan det vara så att indexet inte är nödvändigt om du slår samman, men vi slog inte ihop här. Vi höll precis på att operera, komma åt, indexera, omforma, etc. Kodningseffektivitet är dock definitivt en stor fördel.

Så det är allt för MultiIndex i Pandas. Jag hoppas att detta är något som du kan använda. Du lärde dig något lite nytt om Pandas idag.

Med vänliga hälsningar!


Upptäck unika insikter med LuckyTemplates TOPN-funktion

Upptäck unika insikter med LuckyTemplates TOPN-funktion

Den här bloggen innehåller LuckyTemplates TOPN DAX-funktion, som gör att du kan få unika insikter från dina data, vilket hjälper dig att fatta bättre marknadsföringsbeslut.

Datamodellering i LuckyTemplates med hjälp av stödtabeller

Datamodellering i LuckyTemplates med hjälp av stödtabeller

Lär dig några fantastiska analytiska tekniker som vi kan göra för datamodellering i LuckyTemplates med hjälp av DAX-stödtabeller.

Avancerad DAX för LuckyTemplates: Implementering av rankningslogik över unika insikter

Avancerad DAX för LuckyTemplates: Implementering av rankningslogik över unika insikter

Här dyker vi in ​​i LuckyTemplates Advanced DAX och implementerar rankningslogik för att få en mycket unik insikt. Jag visar också upp måttförgrening i det här exemplet.

LuckyTemplates What-If-parameterfunktion

LuckyTemplates What-If-parameterfunktion

Den här bloggen introducerar den nya funktionen i LuckyTemplates, analysparametern What-If. Du kommer att se hur det gör allt snabbt och enkelt för din scenarioanalys.

Använd LuckyTemplates Mät förgreningar för att kontrollera om dina marginaler ökar när intäkterna växer

Använd LuckyTemplates Mät förgreningar för att kontrollera om dina marginaler ökar när intäkterna växer

Lär dig hur du avgör om din intäktstillväxt är bra genom att kontrollera om dina marginaler ökade med hjälp av LuckyTemplates mäter förgrening.

LuckyTemplates parametrar via frågeredigerare

LuckyTemplates parametrar via frågeredigerare

Lär dig och förstå hur du kan skapa och använda LuckyTemplates-parametrar som är en kraftfull funktion i frågeredigeraren.

Runda stapeldiagram – En visualisering för din instrumentpanel

Runda stapeldiagram – En visualisering för din instrumentpanel

Denna handledning kommer att diskutera hur man skapar ett runt stapeldiagram med Charticulator. Du kommer att lära dig hur du designar dem för din LuckyTemplates-rapport.

PowerApps funktioner och formler | En introduktion

PowerApps funktioner och formler | En introduktion

Lär dig hur du använder PowerApps funktioner och formler för att förbättra funktionaliteten och ändra ett beteende i vår Power Apps canvas-app.

Pipe In R: Anslutningsfunktioner med Dplyr

Pipe In R: Anslutningsfunktioner med Dplyr

I den här handledningen kommer du att lära dig hur du kopplar ihop funktioner med hjälp av dplyr-röroperatorn i programmeringsspråket R.

RANKX Deep Dive: A Lucky Templates DAX-funktion

RANKX Deep Dive: A Lucky Templates DAX-funktion

RANKX från LuckyTemplates låter dig returnera rankningen av ett specifikt nummer i varje tabellrad som utgör en del av en lista med nummer.