Pandas Groupby Index

Pandas Groupby Index
For å dele opp dataene i grupper, kan vi bruke Pandas DataFrame -data.GroupBy () -funksjon. Vi kan dele pandasobjektene i grupper av data langs en akse. Den formelle definisjonen av gruppering er en kartlegging av etikett-til-gruppe-navn. Et objekt er delt, en funksjon brukes, og utgangene kombineres i en Groupby -operasjon. Dette er en nyttig metode for å utføre operasjonene og samle de enorme datamengdene med data. Pandas Groupby fjerner Groupby -kolonnene fra DataFrames liste over kolonner og konverterer dem til indekser som standard. I denne artikkelen vil vi demonstrere hvordan vi skal gruppere dataene basert på indeksen eller multi-indeksen til DataFrame i pandaer og hvordan du utfører de forskjellige operasjonene på indeksen etter å ha gruppert dem.

Hvordan bruke Groupby -indeksen i Pandas

La oss se på Syntaks for GroupBy () -funksjonen før vi bruker den på DataFrame's Index.

Syntaks:

Dataramme.GroupBy (av = ingen, Axis = 0, nivå = ingen, AS_INDEX = true, sort = true, group_keys = true)

Hvor;

av: En streng, en funksjon, en iterable eller en kartlegging.

akser: Int, null som standard.

nivå: Gruppere dataene for indeksaksen på flere nivåer med et visst nivå eller hierarkisk nivå.

as_index: Dette gjelder bare DataFrame -inngangen. Hvis indeks = falsk, er utgangen gruppert i "SQL-stil".

sortere: En gruppe nøkler må sorteres. Slå av dette for å øke ytelsen. Dette skal ikke ha noen innvirkning på rekkefølgen eller observasjonssekvensen i noen gruppe. Radene i hver gruppe holdes i den rekkefølgen som er opprettholdt av Groupby.

GROUP_KEYS: Når du ringer påføring, legg til nøklene til gruppene i indeksen for å identifisere delene som klemmer: Reduser returtypens dimensjonalitet hvis du kan; Hvis ikke, returner en konstant type.

Nå kan du gjøre beregningene mens du grupperer med enkelt- eller flere indekskolonner ved å bruke metodene som er oppført i følgende:

Eksempel 1: Finn maksimal verdi av kolonnen ved å gruppere indekskolonnen

Vi oppretter først en dataaframe ved hjelp av PD.DataFrame () -funksjonen slik at vi kan gruppere dataene fra DataFrames indeks og bestemme deres maksimale verdi for en spesifikk kolonne i DataFrame. Vi importerer Pandas -biblioteket før vi oppretter DataFrame.

Vi oppretter en dataaframe som består av tre kolonner: “Team_id”, “Country” og “Score”. Dataverdiene (“001”, “002”, “001”, “001”, “003”, “003”, “002”, “001”, “002”, “003”), (“Spania”, “Brasil”, “Brasil”, “Tyskland”, “Brasil”, “Spania”, “Tyskland”, “Spania”, “Tyskland”, “Spania”) og (6, 10, 6, 5, 8, 5 , 8, 9, 5, 8) lagres i henholdsvis "Team_id", "Country" og "Score" -kolonner. Som det kan legges merke til, er det en heltallindeks som er en som standardindeks opprettet av Pandas Constructor. Vi kan spesifisere kolonnen eller kolonnene i DataFrame som indeksen for DataFrame ved å bruke SET_INDEX () -funksjonen.

Kolonnen "Team_id" er nå konvertert til en indeks. La oss gruppere indeksen ved hjelp av GroupBy () -funksjonen og finne den maksimale verdien for hver gruppe ved hjelp av Max () -funksjonen.

Ved å spesifisere indekskolonne -etiketten inne i GroupBy () -funksjonen som en streng, konverterer vi dataene til tre grupper: 001, 002 og 003. Deretter blir maks () -funksjonen brukt på "poengsum" -kolonnen for å finne den maksimale verdien for hver gruppe. For gruppeverdien “001” er den maksimale verdien i kolonnen “Score” 9. Da er 10 den maksimale verdien for gruppedata 002, og 8 er maksimalverdien for 003 -gruppedataene.

Eksempel 2: Finn summen av verdiene til kolonnen ved å gruppere multiindex -kolonnene

I det tidligere eksemplet konverterte vi en enkelt kolonne av DataFrame som en indeks for DataFrame. Nå setter vi flere DataFrame -kolonnene som DataFrame -indeksene.

I det nyopprettede DataFrame har vi fire kolonner med etiketter “Group”, “Team_id”, “Navn” og “Age”. I kolonnen "Gruppe" har vi dataverdiene ("x", "x", "x", "x", "x", "y", "y", "y", "y", " Y ”). “Team_id” lagrer verdiene (“001”, “002”, “001”, “001”, “003”, “003”, “002”, “001”, “002”, “003”). Mens "Navnet" og "Age" -kolonnene består av dataverdier ("Riz", "Bran", "Kim", "William", "Hardy", "Sam", "Ryan", "Lana", "Jenny" , “Clay”) og (21, 25, 19, 17, 22, 27, 25, 18, 29, 21) henholdsvis. La oss sette gruppen og team_id -kolonnene som dataFrame -indekser.

Listen over kolonnetikettene [“Gruppe”, “Team_id”] sendes inne i SET_INDEX () -funksjonen. Nå fungerer kolonnegruppen og Team_id som indeks på flere nivåer. La oss konvertere indeksdataene til grupper og bestemme summen av verdier i "alder" -kolonnen for hver gruppe.

Funksjonen bestemmer vellykket summen av "alder" kolonneverdier for hver gruppe av flernivåindekser.

Eksempel 3: Finn antall unike verdier ved å gruppere en indekskolonne og en vanlig kolonne i DataFrame

Vi har sett hvordan du grupperer indekskolonnen eller flere indekskolonner i DataFrame. Nå grupperer vi både indeksen og vanlige DataFrame -kolonnene for å finne antall unike verdier i en spesifikk kolonne. For PD.DataFrame () -funksjon, for å generere DataFrame, sendes en ordbok som en inngang.

En dataaframe opprettes. Vi lager fire kolonner i DataFrame. Kolonnen "Seksjonen" har strengverdier ("rød", "rød", "rødt", "rødt", "rødt", "blå", "blå", "blå", "blå", "blå"). Kolonnen "Student" lagrer navnene på studenter som String ("Frey", "Kelly", "Peter", "Tyson", "Jhon", "Sansa", "Cloe", "Randy", "Lance", " Diaz ”). Kolonnen "Emner" har strengverdier som navn på forsøkspersoner ("C ++", "C ++", "Java", "Python", "Python", "C ++", "C#", "C#", "R", “JS”). Og kolonnen "posisjon" har heltallverdier (3, 1, 3, 2, 1, 5, 4, 6, 4, 7).

Siden kolonnen "seksjon" er satt som en dataframindeks, la oss gruppere kolonnene våre ved hjelp av GroupBy () -funksjonen.

Vi passerer en liste over kolonnetiketter (en indekskolonnetikett og en vanlig kolonnetikett) som et argument inne i GroupBy () -funksjonen for å lage gruppene. Nunique () -funksjonen brukes på kolonnen "emne" for å telle de distinkte verdiene for hver gruppe.

Eksempel 4: Finn gjennomsnittet av flere kolonner ved å gruppere flere indekskolonner i DataFrame

Vi brukte de forskjellige funksjonene på en spesifikk kolonne i DataFrame i de tidligere eksemplene. Nå bruker vi de forskjellige funksjonene på flere kolonner etter gruppering av indekskolonnen. Vi oppretter et eksempel på DataFrame som kan sees i følgende:

Først setter vi seksjonskolonnen som indekskolonne.

La oss nå gruppere indekskolonnedataene og bestemme middelverdien og sumverdien av kolonnene “Test1” og “Test2”.

Vi bruker AGG () -funksjonen og passerer en ordbok med kolonnenavn som tastene og funksjonene/ operasjonene som verdier for å anvende de forskjellige funksjonene på kolonner “Test1” og “Test2”. Gjennomsnittet av kolonnen “Test1” er 7.2 og summen av kolonne “Test2” -verdier er 35 for gruppe A. For gruppe B er gjennomsnittet av kolonne “Test1” -verdier 6.6 og summen av “Test2” kolonneverdier er 31.

Konklusjon

I denne opplæringen diskuterte vi hvordan du bruker GroupBy () -funksjonen med DataFrames indekskolonne i Pandas. Først diskuterte vi GroupBy () -funksjonens syntaks for å forstå dens parametere og funksjonalitet. Vi implementerte praktisk talt de flere eksemplene i denne artikkelen for å lære deg hvordan du utfører de forskjellige funksjonene på en spesifikk kolonne eller flere kolonner i en datafram ved å gruppere indekskolonnen eller flernivåindekskolonner.