Pandas Groupby Aggregate

Pandas Groupby Aggregate

Groupby -teknikken er viktig på grunn av hvor godt den samler data både når det gjelder ytelse og kodestørrelse. Begrepet "Groupby" beskriver vanligvis en prosedyre inkludert følgende trinn:

  • Splitting: Ved å bruke visse betingelser på datasett, kan vi dele opp data i grupper.
  • Påføring: En prosess der vi individuelt bruker en metode for hver gruppe.
  • Kombinere: En prosedyre for å kombinere forskjellige datasett for å danne en datastruktur etter bruk av GroupBy () -metoden.

I prosessen med aggregering beregnes en sammendragsstatistikk for hver gruppe. For hver gruppe returnerer den samlede metoden en samlet verdi (enkelt verdi). Vi kan utføre flere aggregeringsoperasjoner på grupperte data etter å ha delt dataene i grupper ved å bruke Groupby -funksjonen.

Hvorfor gir pandaer en rekke dataggregasjonsmetoder?

Pandas tilbyr et bredt spekter av funksjoner og funksjoner for å hjelpe i analyse og aggregering av data. Bruken av pivot (), groupby () og pivot_table () -metodene, for eksempel, gir hver et annet perspektiv på hvordan data vil bli samlet. De gir praktiske tilnærminger til å utføre forskjellige oppgaver i stedet for å bare bli pakket om pakket.

Hvordan bruke .AGG () -funksjon i pandaer

Et enkelt gjennomsnitt eller sum av verdier er aggregeringsfunksjonen som brukes hyppigst. Du kan bruke en DataFrames kolonne eller flere kolonner for å kalle en samlet funksjon. Du vil se mange måter å samle data ved hjelp av Pandas Groupby -metoden. For å demonstrere hvor mye enklere prosedyren er, la oss se på noen eksempler gitt nedenfor. Grunnleggende matematikkoperasjoner som sum, minimum, maksimum, gjennomsnittlig absolutt avvik, standardavvik, gjennomsnitt, median, varians og produkt er blant de mest brukte innebygde aggregeringsfunksjonene. For å oppsummere data, kan vi kombinere GroupBy og AGG () -funksjonen.

Eksempel nr. 01: Bestem summen av kolonner ved å gruppere dataene ved å bruke Groupby.AGG () -funksjon

Vi vil først opprette en dataaframe ved å bruke PD.DataFrame () funksjon slik at vi kan gruppere dataene fra DataFrames kolonne eller kolonner og deretter bestemme deres middelverdi. Vi må importere modulene til Pandas og Numpy Library før vi oppretter DataFrame.

Som du ser, brukte vi Pandas Dictionary for å lage vår dataframe. Vår DF DataFrame har fire kolonner: “pasient” “gruppe”, “alder” og “blodflasker”. Dataverdiene ('Ali', 'John', 'Mike', 'Mike', 'John', 'Ali', 'Ali', 'Mike') er inneholdt av kolonnen "pasient" mens datavisserne ('a ',' A ',' b ',' c ',' a ',' c ',' c ',' b '), (21, 22, 24, 21, 20, 24, 22, 22) og (( 2, 3, 1, 1, 2, 3, 2, 1) er henholdsvis i kolonnene "Group", "Age" og "Blood_bottles". La oss anta at vi må bestemme summen av verdier i kolonnen 'Blood_bottles' ved å gruppere verdiene i 'gruppen' -kolonnen.

For gruppedata 'A' er summen av verdier av 'Blood_bottles' 7. For gruppeverdier 'B' og 'C' er summen av verdier av 'Blood_bottles' henholdsvis 2 og 6. Vi kan også gruppere flere kolonner for å bestemme summen for hver gruppe.

Som det kan observeres, har vi bestått en liste over kolonnetiketter, jeg.e., ['pasient', 'gruppe'] inne i GroupBy () -funksjonen for å lage gruppene av kategorier i hver spesifiserte kolonne. For hver gruppe av spesifiserte kolonner har vi bestemt summen av verdier i 'Blood_bottles'. For eksempel er 'Ali' i 'gruppe' kolonneverdier A og C. I gruppe A er summen av verdier av 'Blood_bottles' for Ali 2 og 5 i gruppen 'C'.

Eksempel # 02: Bruke flere funksjoner på en enkelt kolonne med DataFrame ved hjelp av Groupby.AGG () -funksjon

Flere aggregasjoner kan brukes med metoden “Groupby ()” ved bruk av Pandas -funksjonen AGG (). En kallbar liste kan sendes til metoden. La oss se på hvordan vi kan samle dataene våre ved hjelp av Numpy Librarys innebygde metoder. I motsetning til det forrige eksemplet, vil vi bruke flere funksjoner på en enkelt kolonne i DataFrame. PD.DataFrame () -funksjonen vil bli brukt til å lage en DataFrame for dette med minst en kolonne som inneholder numeriske verdier.


Den nødvendige dataaframe er opprettet med en numerisk kolonne I.e. 'Merker' med verdier 41, 40, 35, 39, 49, 31, 34 og 42. Det er tre kolonner til 'Student', 'Emner' og 'grad' i vår DataFrame som kan deles inn i grupper ved å bruke GroupBy () -funksjonen. Verdiene i kolonnen 'Studenter' og 'fag' er ('Harry', 'Ron', 'Harry', 'Lana', 'Sam', 'Ron', 'Lana', 'Max') og ('C ++' , 'Java', 'Python', 'Python', 'Ai', 'Java', 'C ++', 'Ai'). Mens kolonnegraden inneholder dataverdiene som strenger, i.e., ('MS', 'BS', 'BS', 'MS', 'MS', 'MS', 'BS', 'BS'). Anta at vi må gruppere dataene fra kolonnen 'emner' og bestemme både middelverdien og summen av kolonnen 'merker' for hver grupperte data.

Vi har spesifisert navnet på kolonnen 'Emney' som en streng i GroupBy () -funksjonen for å konvertere dataene til grupper av kategorier. For Kolonnen Marks har vi brukt AGG () -metoden, og inne i AGG () -funksjonen har vi spesifisert Numpy -funksjonene NP.sum og np.betyr å finne summen og gjennomsnittet av merker av hver gruppedata i kolonneemner. Summen og middelverdien for gruppeverdi 'AI' er 91 og 45.5, henholdsvis. Summen av merker for verdien 'C ++' er 75, og middelverdien er 37.5. For gruppe Java er summen av merker 71 og middelverdien er 35.5, mens summen og middelverdien for Python er henholdsvis 74 og 37.

Eksempel # 03: Bruke flere funksjoner på flere kolonner i DataFrame ved hjelp av Groupby.AGG () -funksjon

I stedet for å bruke forskjellige funksjoner på en enkelt DataFrames kolonne, kan vi bruke flere funksjoner på forskjellige numeriske kolonner. Vi kan bruke en ordbok i AGG () -funksjonen som en inngang for å anvende en spesifikk aggregeringsmetode på forskjellige DataFrames kolonner. La oss importere pandaene og numpy bibliotekene før vi oppretter en dataaframe med flere numeriske kolonner.

Det er fire kolonner i den nyopprettede DataFrame med navnene “Player”, “Minst_score,” 'Highest_score' og “Location”. I kolonnen 'Player' har vi lagret navnene på noen få spillere som strengdataverdier ('Leo', 'Alex', 'Leo', 'Fin', 'Leo', 'Alex', 'Fin', ' Fin '), i kolonnen' minst_score 'er det laveste score til spillere for noen kamper (12, 34, 2, 21, 9, 1, 0, 34), mens i kolonnen' Highest_score 'har vi de høyeste score til spillerne (12, 34, 2, 21, 9, 1, 0, 34) og i kolonnen 'Location' er det navnene på arenaer der spillerne har spilt sine kamper ('Frankrike', 'England', 'Dubai', ' Dubai ',' England ',' Frankrike ',' Dubai ',' Frankrike ').

La oss anta etter å ha gruppert dataene i kolonnen 'Spillers', må vi finne gjennomsnittet for kolonneverdiene 'Minst_score' og summen for datavisserne for 'Hightest_score' for hver gruppe.

Inne i AGG () -funksjonen passerte vi en Python -ordbok 'Highest_score': 'Sum', 'minst_score': 'Mean' for å finne summen og gjennomsnittsverdien for en spesifisert kolonne mot hver gruppe. Det kan sees at den grupperte verdien Alex har summen av verdien 'Highest_score' 132 og gjennomsnittet av 'minst_score' verdien 17.5. For 'fin' summen av verdier er 199 og gjennomsnittet er 18.3333333 i kolonnene 'Highest_score' og 'minst_score'. Gruppeverdien LEO har en sumverdi på 180 i 'høyest_score' og en gjennomsnittsverdi på 7.666667 i 'Minst_score'.

Konklusjon

I denne opplæringen har vi diskutert Groupby () og aggregeringsfunksjonene i pandaer. Vi har også diskutert hvordan vi bruker Groupby.AGG () -funksjon. Vi implementerte tre eksempler i denne artikkelen for å lære deg hvordan du bruker en enkelt aggregeringsfunksjon på en DataFrame -kolonne ved å gruppere dataene fra enkelt- og flere kolonner, hvordan du bruker flere aggregeringsfunksjoner på en enkelt kolonne i en datafram, og hvordan du bruker flere Aggregeringsfunksjoner på de flere kolonnene i DataFrame ved hjelp av Groupby.AGG () -funksjon.