Multiindeks i pandaer til multi-niveau eller hierarkiske data

MultiIndex i Pandas er et multi-level eller hierarkisk objekt, der giver dig mulighed for at vælge mere end én række og kolonne i dit indeks. Det giver dig også mulighed for at skabe sofistikeret dataanalyse og manipulation, især for at arbejde med højere dimensionelle data. I denne tutorial vil jeg udforske MultiIndex-funktionen i Pandas. Du kan se den fulde video af denne tutorial nederst på denne blog.

Tanken her er, at vi har et indeks, der også indeholder et hierarki. Hvis du har brugt Pandas før, ved du det, så vi vil tilføje yderligere lag til det. Det vil gøre både indeksering og omformning af dataene nemmere, afhængigt af om du faktisk har et hierarki for dine data.

For et eksempel skal vi bruge det berømte Gapminder-datasæt, og dette er virkelig et MultiIndex her. Vi har et hierarki, så et kontinent borer ind i lande, og hvert land kan bore ind i flere år. Så vi kan manipulere dette indeks, og tingene bliver meget nemmere at kode, når vi bruger dette MultiIndex. Vi vil se på udskæring og også omformning af Gapminder-datasættet.

Indholdsfortegnelse

Sådan bruger du MultiIndex i pandaer

Vi kommer til at bruge Gapminder-datasættet. Hvis du ikke har dette installeret, vil du lave en PIP-installation af Gapminder. Jeg vil også hente pandaer. Jeg bruger Anaconda-distributionen af ​​Python. I så fald vil Pandas allerede være installeret. Vi laver en import af Gapminder, og så tager vi et kig på disse data.

Multiindeks i pandaer til multi-niveau eller hierarkiske data

Som du kan se her, har vi igen et indeks eller hierarki. Jeg må sige, at vi har et kontinent, et land og så et år. I øjeblikket er indekset kun numerisk som dette, og vi vil sætte vores eget indeks lige nu. Og måden vi skal gøre det på er med Gapminder. Vi vil sætte indekset. Vi vil sætte det på kontinent, land og derefter år, inplace er lig med ( = ) sand .

Multiindeks i pandaer til multi-niveau eller hierarkiske data

Dette gemmer blot resultaterne, så vi ikke behøver at kalde variablen to gange, bare lidt mere effektiv. Og nu vil du se, at vi har indekset her (indhold, land, år), og dette er vores multiindeks.

Et par ting vi kunne gøre her. Lad os f.eks. sige, at jeg ville have alt på det europæiske kontinent. Jeg vil filtrere eller dele denne dataramme. Jeg kan bruge gapminder.loc , og derefter skrive i Europa. Du er måske bekendt med loc. Ud fra andre omstændigheder i Pandas fungerer det meget nemmere, når vi gør det efter indekset.

Multiindeks i pandaer til multi-niveau eller hierarkiske data

Nu eksisterer dette i et hierarki. Lad os sige, vi ville kun have data fra Storbritannien. Det ser ud til, at vi bare ville være i stand til at opdele dette, men dette bliver et problem, fordi når vi indekserer dette, holder vi os til at bruge hierarkiet. Vi skal starte med det første niveau og derefter bore til det andet, og det tredje osv.

Hvis jeg ville inkludere flere niveauer, er det, jeg kan gøre, at sende det ind her. Jeg skal til Europa og derefter Storbritannien. Jeg kunne endda gå et skridt videre og sætte 1997. Og nu kan vi se her er resultatet af den række i det tilfælde.

Multiindeks i pandaer til multi-niveau eller hierarkiske data

En anden god ting med MultiIndex i Pandas er, at det er meget nemmere at omforme dataene. Jeg kan lave gapminder_pivot og derefter gapminder.unstack . Hvis jeg af en eller anden grund har brug for at omforme dette datasæt, vil jeg udskrive dette, og du vil se, at nu har vi kontinentet, landet og derefter året sammen med kolonnerne.

Multiindeks i pandaer til multi-niveau eller hierarkiske data

Lad os nu sige, at jeg ville gøre det i den modsatte retning. Alt, hvad jeg skal gøre, er at unpivot, og vi skal lave gapminder_pivot . Hvis det var afstabling, så er dette stabling gapminder_unpivot.

Multiindeks i pandaer til multi-niveau eller hierarkiske data

Hvad nu hvis jeg vil slippe af med dette indeks og nulstille det og ændre det til noget andet? Alt jeg skal gøre i det tilfælde er gapminder_unpivot. Vi skal nulstille_indeks . Vi vil gøre det på plads igen. Vi behøver ikke at spare over sig selv. Det er bare lidt mere effektivt. Derefter, gapminder_unpivot.

Udskriv det, og vi er tilbage til vores originale data, og vi har indekset. Den numeriske start er på nul, fordi Python er nul-baseret indeksering.

Multiindeks i pandaer til multi-niveau eller hierarkiske data




Konklusion

Pandas blev oprindeligt opkaldt efter paneldata. Det er egentlig meningen, at det skal arbejde med paneldata, som er en specifik type tidsseriedata med flere kategorier. I så fald giver det virkelig mening at have et hierarki, ikke?

Dette fungerer rigtig godt, hvis du arbejder med unikke rækker og prøver at finde flere kolonner.

Hvad angår ydeevnen, kan det være, at indekset ikke er nødvendigt, hvis du fusionerer, men vi fusionerede ikke her. Vi var bare i gang med at betjene, tilgå, indeksere, omforme osv. Kodningseffektivitet er dog bestemt en stor fordel.

Så det er alt for MultiIndex i Pandas. Jeg håber, det er noget, du kan bruge. Du lærte noget lidt nyt om pandaer i dag.

Alt det bedste!


Oplev unik indsigt ved hjælp af LuckyTemplates TOPN-funktion

Oplev unik indsigt ved hjælp af LuckyTemplates TOPN-funktion

Denne blog indeholder LuckyTemplates TOPN DAX-funktionen, som giver dig mulighed for at få unik indsigt fra dine data, hvilket hjælper dig med at træffe bedre markedsføringsbeslutninger.

Datamodellering i LuckyTemplates ved hjælp af understøttende tabeller

Datamodellering i LuckyTemplates ved hjælp af understøttende tabeller

Lær nogle fantastiske analytiske teknikker, som vi kan gøre til datamodellering i LuckyTemplates ved hjælp af DAX-understøttende tabeller.

Avanceret DAX til LuckyTemplates: Implementering af rangeringslogik på tværs af unikke indsigter

Avanceret DAX til LuckyTemplates: Implementering af rangeringslogik på tværs af unikke indsigter

Her dykker vi ned i LuckyTemplates Advanced DAX og implementerer rangeringslogik for at få en meget unik indsigt. Jeg viser også måleforgrening i dette eksempel.

LuckyTemplates What-If-parameterfunktion

LuckyTemplates What-If-parameterfunktion

Denne blog introducerer den nye funktion i LuckyTemplates, What-If-analyseparameteren. Du vil se, hvordan det gør alt hurtigt og nemt til din scenarieanalyse.

Brug LuckyTemplates Mål forgrening for at kontrollere, om dine avancer udvides, efterhånden som omsætningen vokser

Brug LuckyTemplates Mål forgrening for at kontrollere, om dine avancer udvides, efterhånden som omsætningen vokser

Lær, hvordan du afgør, om din omsætningsvækst er god ved at kontrollere, om dine avancer er udvidet ved hjælp af LuckyTemplates, der måler forgrening.

LuckyTemplates-parametre via forespørgselseditor

LuckyTemplates-parametre via forespørgselseditor

Lær og forstå, hvordan du kan oprette og bruge LuckyTemplates Parameters, som er en kraftfuld funktion i Query Editor.

Rundt søjlediagram – en visualisering til dit dashboard

Rundt søjlediagram – en visualisering til dit dashboard

Denne vejledning vil diskutere om oprettelse af et rundt søjlediagram ved hjælp af Charticulator. Du lærer, hvordan du designer dem til din LuckyTemplates-rapport.

PowerApps funktioner og formler | En introduktion

PowerApps funktioner og formler | En introduktion

Lær, hvordan du bruger PowerApps-funktioner og -formler til at forbedre funktionaliteten og ændre adfærd i vores Power Apps-lærredsapp.

Pipe In R: Tilslutningsfunktioner med Dplyr

Pipe In R: Tilslutningsfunktioner med Dplyr

I denne øvelse lærer du, hvordan du kæder funktioner sammen ved hjælp af dplyr-røroperatoren i programmeringssproget R.

RANKX Deep Dive: A Lucky Templates DAX-funktion

RANKX Deep Dive: A Lucky Templates DAX-funktion

RANKX fra LuckyTemplates giver dig mulighed for at returnere rangeringen af ​​et specifikt tal i hver tabelrække, der udgør en del af en liste over tal.