Pandas Group av Aggregate

Pandas Group Av Aggregate



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

  • Splitting : Ved å bruke visse betingelser for datasett, kan vi dele data inn i grupper.
  • Søker : En prosess der vi individuelt bruker en metode til hver gruppe.
  • Kombinere : En prosedyre for å kombinere ulike datasett for å danne en datastruktur etter bruk av groupby()-metoden.

I prosessen med aggregering beregnes en sammendragsstatistikk for hver gruppe. For hver gruppe returnerer aggregeringsmetoden en aggregert verdi (enkeltverdi). Vi kan utføre flere aggregeringsoperasjoner på grupperte data etter å ha delt dataene inn i grupper ved å bruke groupby-funksjonen.







Hvorfor tilbyr pandaer en rekke dataaggregeringsmetoder?

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



Slik bruker du .agg()-funksjonen i Pandas

Et enkelt gjennomsnitt eller sum av verdier er den aggregeringsfunksjonen som brukes oftest. Du kan bruke en datarammes kolonne eller flere kolonner for å kalle en aggregert funksjon. Du vil se mange måter å samle data på ved hjelp av Pandas groupby-metoden. For å demonstrere hvor mye enklere prosedyren er, la oss se på noen eksempler gitt nedenfor. Grunnleggende matematiske operasjoner 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 # 01: Bestem summen av kolonner ved å gruppere dataene ved å bruke groupby.agg()-funksjonen

Vi vil først lage en dataramme ved å bruke funksjonen pd.DataFrame() slik at vi kan gruppere dataene fra datarammens kolonne eller kolonner og deretter bestemme gjennomsnittsverdien. Vi må importere modulene til pandaer og numpy-biblioteket før vi lager datarammen.





Som du kan se, brukte vi panda-ordboken for å lage vår dataramme. Vår df-dataramme har fire kolonner: 'pasient' 'gruppe', 'alder' og 'blodflasker'. Dataverdiene ('Ali', 'John', 'Mike', 'Mike', 'John', 'Ali', 'Ali', 'Mike') er inneholdt av kolonnen 'pasient', mens dataverdiene ('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) finnes i henholdsvis kolonnene 'gruppe', 'alder' og 'blodflasker'. La oss anta at vi må bestemme summen av verdier i 'blodflasker'-kolonnen ved å gruppere verdiene i 'gruppe'-kolonnen.



For gruppedata 'A' er summen av verdiene til 'blodflasker' 7. For gruppeverdiene 'B' og 'C' er summen av verdiene til 'blodflasker' henholdsvis 2 og 6. Vi kan også gruppere flere kolonner for å bestemme summen for hver gruppe.

Som det kan observeres, har vi sendt en liste over kolonneetiketter, dvs. ['pasient', 'gruppe'] inne i groupby()-funksjonen for å lage gruppene av kategorier i hver spesifisert kolonne. For hver gruppe av spesifiserte kolonner har vi bestemt summen av verdier i 'blodflasker'. For eksempel er 'Ali' i 'gruppe'-kolonnen verdiene A og C. I gruppe A er summen av verdiene av 'blodflasker' for Ali 2, og 5 i gruppe 'C'.

Eksempel # 02: Bruk av flere funksjoner på en enkelt kolonne med dataramme ved å bruke groupby.agg()-funksjonen

Flere aggregeringer kan brukes med «groupby()»-metoden ved å bruke pandas-funksjonen agg(). En oppringbar liste kan sendes til metoden. La oss se på hvordan vi kan samle dataene våre ved å bruke numpy-bibliotekets innebygde metoder. I motsetning til det forrige eksemplet, vil vi bruke flere funksjoner på en enkelt kolonne i datarammen. Funksjonen pd.DataFrame() vil bli brukt til å lage en dataramme for dette med minst én kolonne som inneholder numeriske verdier.


Den nødvendige datarammen er opprettet med én numerisk kolonne, dvs. 'merker' med verdiene 41, 40, 35, 39, 49, 31, 34 og 42. Det er 3 flere kolonner 'student', 'fag' og 'grad' i vår dataramme som kan deles inn i grupper ved å bruke groupby()-funksjonen. Verdiene i kolonnene '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, dvs. ('Ms', 'Bs', 'Bs', 'Ms', 'Ms', 'Ms', 'Bs', 'Bs'). Anta at vi må gruppere dataene i kolonnen 'emner' og bestemme både gjennomsnittet og summen av kolonnens 'merker' for hver grupperte data.

Vi har spesifisert navnet på 'emner'-kolonnen som en streng inne i groupby()-funksjonen for å konvertere dataene til grupper av kategorier. For marks-kolonnen har vi brukt agg()-metoden, og inne i agg()-funksjonen har vi spesifisert numpy-funksjonene np.sum og np.mean for å finne summen og gjennomsnittet av karakterer for hver gruppedata i kolonneemner. Summen og middelverdien for gruppeverdi 'AI' er henholdsvis 91 og 45,5. Summen av karakterer for verdien 'C++' er 75, og middelverdien er 37,5. For gruppe JAVA er summen av karakterer 71 og middelverdien er 35,5, mens summen og middelverdien for Python er henholdsvis 74 og 37.

Eksempel # 03: Bruk av flere funksjoner på flere kolonner i datarammen ved å bruke groupby.agg()-funksjonen

I stedet for å bruke forskjellige funksjoner på en enkelt datarammes kolonne, kan vi bruke flere funksjoner på forskjellige numeriske kolonner. Vi kan bruke en ordbok i agg()-funksjonen som input for å bruke en spesifikk aggregeringsmetode på kolonnene til forskjellige dataramme. La oss importere pandaene og numpy-bibliotekene før vi lager en dataramme med flere numeriske kolonner.

Det er fire kolonner i den nyopprettede datarammen med navnene «spiller», «minste_score», «høyest_score» og «sted». I kolonnen 'spiller' har vi lagret navnene på noen få spillere som strengdataverdier ('Leo', 'Alex', 'Leo', 'Fin', 'Leo', 'Alex', 'Fin', ' Fin'), i kolonnen 'minste_score' er det laveste poengsum for spillere for noen kamper (12, 34, 2, 21, 9, 1, 0, 34), mens i kolonnen 'høyest_score' har vi de høyeste poengsummene av spillerne (12, 34, 2, 21, 9, 1, 0, 34) og i kolonnen 'sted' er det navnene på spillestedene hvor spillerne har spilt kampene sine ('Frankrike', 'England', 'Dubai', ' Dubai', 'England', 'Frankrike', 'Dubai', 'Frankrike').

La oss anta at etter å ha gruppert dataene i 'spillere'-kolonnen, må vi finne gjennomsnittet for 'minst_score'-kolonneverdiene og summen for 'høyeste_score'-dataverdiene for hver gruppe.

Inne i agg()-funksjonen passerte vi en python-ordbok {'highest_score' : 'sum', 'least_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 'høyest_score'-verdien 132 og gjennomsnittet av 'minste_score'-verdien 17,5. For «Fin» er summen av verdier 199 og gjennomsnittet er 18,3333333 i kolonnene henholdsvis «høyest_score» og «minste_score». Gruppeverdien Leo har en sumverdi på 180 i 'høyest_score' og en gjennomsnittsverdi på 7,666667 i 'minste_score'.

Konklusjon

I denne opplæringen har vi diskutert groupby() og aggregeringsfunksjonene i pandaer. Vi har også diskutert hvordan du bruker groupby.agg()-funksjonen. Vi implementerte tre eksempler i denne artikkelen for å lære deg hvordan du bruker en enkelt aggregeringsfunksjon på en datarammekolonne ved å gruppere dataene i enkelt og flere kolonner, hvordan du bruker flere aggregeringsfunksjoner på en enkelt kolonne i en dataramme, og hvordan du bruker flere aggregeringsfunksjoner på de flere kolonnene i datarammen ved å bruke groupby.agg()-funksjonen.