Pandas Group efter gennemsnit

Pandas Group Efter Gennemsnit



Når vi lægger to eller flere værdier sammen og deres sum divideres med det samlede antal værdier lagt sammen, er resultatet et gennemsnit. Pandas Mean returnerer dataens eller værdiens gennemsnit langs en given akse. En serie med gennemsnittet på tværs af en akse vil blive returneret af pandaer, hvis middel()-metoden anvendes på en dataramme. Pandaer returnerer en numerisk værdi (enkelt tal), hvis 'mean()' bruges på en serie. Funktionerne kan anvendes på kategorierne efter oprettelse af grupper af kategorier. Det er en simpel idé, men en yderst effektiv teknik, der ofte anvendes i datavidenskab. Det giver os mulighed for at oprette en oversigt over dataene for hver gruppe, anvende gruppespecifikke ændringer og udføre datafiltrering. Med funktionen groupby() kan objektet opdeles, en funktion kan anvendes, og produkterne kan derefter kombineres. Store datasæt kan grupperes med dette, og der kan udføres operationer på grupperne.

Hvordan bruger man metoden groupby.mean() i Pandas?

For at beregne gennemsnittet af en dataramme eller gennemsnittet af specifikke kolonner i en dataramme, kan vi bruge groupby.mean()-funktionen. Vi vil demonstrere, hvordan man bruger det i de følgende eksempler.







Eksempel # 01: Bestem gennemsnittet af en enkelt heltalskolonne ved at gruppere dataene i en enkelt kolonne

Ved at bruge funktionen pd.DataFrame() vil vi først oprette en dataramme, så vi kan opdele dataene i kolonnen eller kolonnerne i datarammen i grupper og derefter finde deres middelværdi. Før vi opretter datarammen, skal vi importere panda-modulet sammen med numpy-biblioteket.





Som det kan ses, har vi lavet vores dataramme ved at bruge panda-ordbogen. Vi har 3 kolonner i vores df-dataramme, dvs. 'varer', 'producent' og 'mængde'. I kolonnen 'varer' har vi gemt værdierne ('skjorte', 'slips', 'bukser', 'skjorte', 'slips', 'bukser', 'skjorte', 'bukser', 'bukser', ' tie'), mens kolonnerne 'producent' og  'mængde' indeholder værdierne ('italy', 'france', 'china', 'france',  'kina', 'italy', 'china', 'italy', henholdsvis 'frankrig', 'kina') og (13, 16, 21, 32, 26, 41, 24, 42, 12, 15). Lad os gruppere værdierne i producentkolonnen og bestemme den gennemsnitlige mængdeværdi for hver enkelt producent.





Producentværdien 'kina' har en gennemsnitlig mængdeværdi på 21,5, den gennemsnitlige mængdeværdi for 'frankrig' er 20,0, og den gennemsnitlige mængdeværdi for 'Italien' er 32,0. Vi kan også angive et indeks til outputtet ved at bruge reset_index-funktionen med groupby.mean()-funktionen.



Eksempel # 02: Find middelværdien af ​​en enkelt flydende kolonne ved at gruppere dataene for en enkelt kolonne

Vi har set, hvordan vi kan finde middelværdien af ​​heltalskolonnen efter at have grupperet dataene. Lad os nu prøve en anden datatype-kolonne som float. En dataramme med mindst én kolonne med flydende værdier vil blive oprettet ved hjælp af pd.DataFrame()-funktionen.

Ved at sætte en ordbog inde i pd.DataFrame(), har vi lavet en dataramme med tre kolonner. Kolonnen 'navn' gemmer navnene på nogle tilfældige spillere ('Sam', 'Jay', 'Leo', 'Mike', 'Will', 'Billy', 'Jhonny', 'Lara', 'Hanna', 'Tony'), kolonnen 'hold', der repræsenterer det hold, som hver spiller tilhører ('A', 'A', 'B',  'A', 'B', 'A', 'C', 'B' ', 'C', 'C'), og kolonnen 'højde' gemmer hver spillers højder som en flydende værdi (5.6, 5.4, 6.3, 5.2, 5.5, 6.4, 5.6, 5.8, 6.0, 5.2). Lad os gruppere dataene i 'hold'-kolonnen og bestemme den gennemsnitlige højdeværdi for hver enkelt 'hold'-værdi.

Du kan se, at den gennemsnitlige højdeværdi for hold A-spillere er 5,65, mens den gennemsnitlige højde for spillere i hold B og C er henholdsvis 5,866 og 5,6.

Eksempel # 03: Bestem gennemsnittet af flere kolonner ved hjælp af funktionen groupby.mean()

I de foregående eksempler bestemte vi gennemsnittet af en enkelt kolonne. Imidlertid kan gennemsnittet af talrige kolonner for hver gruppe også bestemmes. Lad os oprette en dataramme med mere end én numerisk kolonne efter import af pandaerne og numpy-modulerne.

I den nyoprettede dataramme er der tre kolonner med etiketterne 'navn', 'score' og 'matches'. Kolonnenavnene med dataværdierne som en streng ('Ron', 'Jim', 'Dany', 'Jim', 'Jim', 'Dany', 'Ron', 'Ron', 'Dany', 'Jim' ), hvorimod 'score' og 'matches' består af numeriske data som (3, 4, 2, 4, 1, 5, 2, 3, 1, 2) og (2, 3, 1, 2, 1, 3 4, 1, 2, 1). Lad os nu finde gennemsnittet af kolonne 'score' og 'matches' efter at have grupperet dataene for kolonne 'navn'. Funktionen groupby.mean() vil blive brugt til dette.

Det kan bemærkes, at gruppen ’Dany’ har en gennemsnitsscore på 2,66 i 2,00 kampe. Gruppen Jim har en gennemsnitlig score på 2,75 og den gennemsnitlige værdi af de spillede kampe er 1,75. Mens gruppen 'Ron' har en gennemsnitlig scoreværdi på 2,66 og middelværdien af ​​de spillede kampe er 2,33.

Gennemsnittet af en gruppe af kategorier af objektet kan også beregnes ved hjælp af agg() metoden. Vi vil levere middelværdien som et argument til agg()-funktionen. For at aggregere ved hjælp af en enkelt eller flere operationer på tværs af den givne akse, kan vi bruge funktionen agg().

Outputtet er det samme som før.

Eksempel # 04: Bestem gennemsnittet af specifikke kolonner ved at gruppere de flere kolonner

I eksempel 1, 2 og 3 har vi grupperet værdierne eller dataene i en enkelt kolonne. Nu vil vi gruppere flere kolonner ved at bruge listen over kolonneetiketter inde i groupby()-funktionen, og så finder vi gennemsnitsværdien for hver gruppe. En ordbog 'd' vil blive sendt inde i funktionen pd.Dataframe() som input til at oprette datarammen.

Vi har oprettet den nødvendige dataramme. Kolonnen 'sport' gemmer navnet på nogle sportsgrene ('Badminton', 'fodbold', 'tennis', 'basketball', 'fodbold', 'tennis', 'basketball', 'fodbold', 'Badminton', ' basketball', 'basketball', 'tennis'), navnene på lande ('Kina', 'Rusland', 'Italien', 'Spanien', 'Rusland', 'Italien', 'Kina', 'Italien', ' Spanien', 'Kina', 'Rusland', 'Italien') gemmes i kolonnen 'land'. Hvorimod vi i kolonnen 'vind' har gemt antallet af kampe vundet af hvert land i hver sport (13, 10, 6, 7, 10, 12, 7, 11, 8, 13, 11, 6). Lad os bruge groupby.mean()-funktionen til at finde gennemsnittet af 'vind'-kolonnens værdier ved at gruppere kolonnerne 'sport' og 'land'.

Funktionen har med succes bestemt gennemsnittet af 'vind' kolonneværdier for hver sportsgren i landet. Den grupperede efter dataramme kan nulstilles ved hjælp af reset_index()-funktionen, som også genererer et nyt indeks, hvilket giver det en passende datarammestruktur.

Et indeks tilføjes for hver datarammes række. For at arrangere resultaterne i en attraktiv tabel kan vi også bruge pivot()-funktionen.

Konklusion

I denne øvelse har vi diskuteret, hvad middelværdien eller gennemsnittet af tal er, og hvordan man finder middelværdien af ​​en specifik kolonne (en eller flere) efter at have grupperet kolonnen eller kolonnerne i en dataramme. Vi implementerede et par eksempler i denne artikel for at lære dig, hvordan du bestemmer gennemsnittet af en enkelt heltal eller flydende kolonne ved at gruppere dataene i en enkelt kolonne; hvordan man bestemmer middelværdien af ​​flere kolonner ved hjælp af groupby.mean()-funktionen; og også hvordan man bestemmer gennemsnittet af specifikke kolonner ved at gruppere de flere kolonner.