Pandas Group af Aggregate

Pandas Group Af Aggregate



Groupby-teknikken er essentiel på grund af, hvor godt den samler data med hensyn til både ydeevne og kodestørrelse. Udtrykket 'gruppeby' beskriver typisk en procedure, der inkluderer følgende trin:

  • Opsplitning : Ved at anvende visse betingelser på datasæt kan vi opdele data i grupper.
  • Ansøger : En proces, hvor vi individuelt anvender en metode til hver gruppe.
  • Kombinerer : En procedure til at kombinere forskellige datasæt for at danne en datastruktur efter brug af groupby()-metoden.

I aggregeringsprocessen beregnes en opsummerende statistik for hver gruppe. For hver gruppe returnerer aggregeringsmetoden en aggregeret værdi (enkelt værdi). Vi kan udføre flere aggregeringsoperationer på grupperede data efter at have opdelt dataene i grupper ved hjælp af groupby-funktionen.







Hvorfor leverer pandaer en række dataaggregeringsmetoder?

Pandaer tilbyder en bred vifte af funktioner og funktioner til at hjælpe med analyse og aggregering af data. Brugen af ​​metoderne pivot(), groupby() og pivot_table() giver for eksempel hver et forskelligt perspektiv på, hvordan data vil blive aggregeret. De giver praktiske tilgange til at udføre forskellige opgaver i stedet for blot at blive pakket om.



Sådan bruges .agg()-funktionen i Pandas

Et simpelt gennemsnit eller sum af værdier er den aggregeringsfunktion, der bruges oftest. Du kan bruge en datarammes kolonne eller flere kolonner til at kalde en aggregeret funktion. Du vil se mange måder at samle data på ved hjælp af Pandas groupby-metoden. For at demonstrere, hvor meget lettere proceduren er, lad os se på nogle eksempler nedenfor. Grundlæggende matematiske operationer som sum, minimum, maksimum, middel absolut afvigelse, standardafvigelse, middelværdi, median, varians og produkt er blandt de hyppigst anvendte indbyggede aggregeringsfunktioner. For at opsummere data kan vi kombinere groupby og agg()-funktionen.



Eksempel # 01: Bestem summen af ​​kolonner ved at gruppere dataene ved hjælp af groupby.agg()-funktionen

Vi vil først oprette en dataramme ved at bruge pd.DataFrame()-funktionen, så vi kan gruppere dataene fra datarammens kolonne eller kolonner og derefter bestemme deres middelværdi. Vi skal importere modulerne af pandaer og numpy-biblioteket, før vi opretter datarammen.





Som du kan se, brugte vi panda-ordbogen til at skabe vores dataramme. Vores df-dataramme har fire kolonner: 'patient' 'gruppe', 'alder' og 'blodflasker'. Dataværdierne ('Ali', 'John', 'Mike', 'Mike', 'John', 'Ali', 'Ali', 'Mike') er indeholdt i kolonnen 'patient', mens dataværdierne ('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 indeholdt i henholdsvis kolonnerne 'gruppe', 'alder' og 'blodflasker'. Lad os antage, at vi skal bestemme summen af ​​værdier i kolonnen 'blodflasker' ved at gruppere værdierne i kolonnen 'gruppe'.



For gruppedata 'A' er summen af ​​værdier af 'blodflasker' 7. For gruppeværdier 'B' og 'C' er summen af ​​værdier af 'blodflasker' henholdsvis 2 og 6. Vi kan også gruppere flere kolonner for at bestemme summen for hver gruppe.

Som det kan ses, har vi sendt en liste over kolonneetiketter, dvs. ['patient', 'gruppe'] inde i groupby()-funktionen for at oprette grupper af kategorier i hver specificeret kolonne. For hver gruppe af specificerede kolonner har vi bestemt summen af ​​værdier i 'blodflasker'. For eksempel er 'Ali' i 'gruppe'-kolonnen værdierne A og C. I gruppe A er summen af ​​værdierne af 'blodflasker' for Ali 2, og 5 i gruppe 'C'.

Eksempel # 02: Anvendelse af flere funktioner på en enkelt kolonne af dataramme ved hjælp af groupby.agg() funktion

Flere aggregeringer kan anvendes med 'groupby()'-metoden ved hjælp af pandas-funktionen agg(). En opkaldsliste kan videregives til metoden. Lad os se på, hvordan vi kan samle vores data ved hjælp af numpy-bibliotekets indbyggede metoder. I modsætning til det foregående eksempel vil vi anvende flere funktioner på en enkelt kolonne i datarammen. Funktionen pd.DataFrame() vil blive brugt til at oprette en dataramme til dette med mindst én kolonne indeholdende numeriske værdier.


Den påkrævede dataramme er blevet oprettet med én numerisk kolonne, dvs. 'karakterer' med værdierne 41, 40, 35, 39, 49, 31, 34 og 42. Der er yderligere 3 kolonner 'elev', 'fag' og 'grad' i vores dataramme, som kan opdeles i grupper ved at bruge groupby()-funktionen. Værdierne i kolonne 'studerende' og 'fag' er ('Harry', 'Ron', 'Harry', 'Lana', 'Sam', 'Ron', 'Lana', 'Max') og ('C++' , 'JAVA', 'Python', 'Python', 'AI', 'JAVA', 'C++', 'AI'). Hvorimod kolonnegraden indeholder dataværdierne som strenge, dvs. ('Ms', 'Bs', 'Bs', 'Ms', 'Ms', 'Ms', 'Bs', 'Bs'). Antag, at vi skal gruppere dataene for kolonne 'emner' og bestemme både middelværdien og summen af ​​kolonnens 'mærker' for hver grupperet data.

Vi har specificeret navnet på 'emner'-kolonnen som en streng inde i groupby()-funktionen for at konvertere dataene til grupper af kategorier. Til marks-kolonnen har vi brugt agg()-metoden, og inde i agg()-funktionen har vi specificeret numpy-funktionerne np.sum og np.mean for at finde summen og gennemsnittet af karakterer for hver gruppedata i kolonneemner. Summen og middelværdien for gruppeværdien 'AI' er henholdsvis 91 og 45,5. Summen af ​​karakterer for værdien 'C++' er 75, og middelværdien er 37,5. For gruppe JAVA er summen af ​​karakterer 71 og middelværdien er 35,5, hvorimod summen og middelværdien for Python er henholdsvis 74 og 37.

Eksempel # 03: Anvendelse af flere funktioner på de flere kolonner i datarammen ved hjælp af groupby.agg()-funktionen

I stedet for at anvende forskellige funktioner på en enkelt datarammes kolonne, kan vi anvende flere funktioner på forskellige numeriske kolonner. Vi kan bruge en ordbog i funktionen agg() som input til at anvende en specifik aggregeringsmetode til forskellige datarammes kolonner. Lad os importere pandaerne og numpy-bibliotekerne, før vi opretter en dataramme med flere numeriske kolonner.

Der er fire kolonner i den nyoprettede dataramme med navnene 'player', 'mindste_score', 'højeste_score' og 'placering'. I kolonnen 'player' har vi gemt navnene på nogle få spillere som strengdataværdier ('Leo', 'Alex', 'Leo', 'Fin', 'Leo', 'Alex', 'Fin', ' Fin'), i kolonnen 'mindste_score' er der de laveste scores af spillere for nogle kampe (12, 34, 2, 21, 9, 1, 0, 34), mens vi i kolonnen 'højeste_score' har de højeste scores af spillerne (12, 34, 2, 21, 9, 1, 0, 34) og i kolonnen 'placering' er der navnene på spillesteder, hvor spillerne har spillet deres kampe ('Frankrig', 'England', 'Dubai', ' Dubai', 'England', 'Frankrig', 'Dubai', 'Frankrig').

Lad os antage, at vi, efter at have grupperet dataene i kolonnen 'spillere', skal finde gennemsnittet for kolonneværdierne for 'mindst_score' og summen for dataværdierne 'højeste_score' for hver gruppe.

Inde i funktionen agg() sendte vi en python-ordbog {'highest_score' : 'sum', 'least_score' : 'mean'} for at finde summen og gennemsnitsværdien for en specificeret kolonne mod hver gruppe. Det kan ses, at den grupperede værdi Alex har summen af ​​'højeste_score'-værdien 132 og gennemsnittet af 'mindste_score'-værdien 17,5. For 'Fin' er summen af ​​værdier 199 og gennemsnittet er 18,3333333 i henholdsvis kolonnerne 'højeste_score' og 'mindste_score'. Gruppeværdien Leo har en sumværdi på 180 i 'højeste_score' og en gennemsnitsværdi på 7,666667 i 'mindste_score'.

Konklusion

I denne tutorial har vi diskuteret groupby() og aggregeringsfunktionerne i pandaer. Vi har også diskuteret, hvordan man bruger groupby.agg()-funktionen. Vi implementerede tre eksempler i denne artikel for at lære dig, hvordan du bruger en enkelt aggregeringsfunktion på en datarammekolonne ved at gruppere dataene i enkelte og flere kolonner, hvordan du anvender flere aggregeringsfunktioner på en enkelt kolonne i en dataramme, og hvordan du anvender flere aggregeringsfunktioner på de flere kolonner i datarammen ved hjælp af funktionen groupby.agg().