Pandas Groupby Average

Pandas Groupby Average



Ko seštejemo dve ali več vrednosti in njihovo vsoto delimo s skupnim številom seštevanih vrednosti, je rezultat povprečje. Pandas Mean vrne povprečje podatkov ali vrednosti vzdolž dane osi. Serijo s povprečjem po osi bodo vrnile pande, če se metoda mean() uporabi za podatkovni okvir. Pande vrnejo številsko vrednost (eno število), če je v seriji uporabljen »mean()«. Funkcije lahko uporabite za kategorije po ustvarjanju skupin kategorij. To je preprosta ideja, a zelo učinkovita tehnika, ki se pogosto uporablja v podatkovni znanosti. Omogoča nam, da ustvarimo povzetek podatkov za vsako skupino, uporabimo spremembe, specifične za skupino, in izvedemo filtriranje podatkov. S funkcijo groupby() je mogoče objekt razdeliti, uporabiti funkcijo in izdelke nato združiti. S tem je mogoče združiti velike nabore podatkov in na skupinah izvajati operacije.

Kako uporabljati metodo groupby.mean() v Pandas?

Za izračun povprečja podatkovnega okvira ali povprečja določenih stolpcev podatkovnega okvira lahko uporabimo funkcijo groupby.mean(). V naslednjih primerih bomo prikazali, kako ga uporabiti.







Primer št. 01: Določanje povprečja posameznega stolpca celega števila z združevanjem podatkov enega stolpca

S funkcijo pd.DataFrame() bomo najprej ustvarili podatkovni okvir, da bomo lahko razdelili podatke stolpca ali stolpcev podatkovnega okvira v skupine in nato poiskali njihovo srednjo vrednost. Preden ustvarimo podatkovni okvir, moramo uvoziti modul pandas skupaj s knjižnico numpy.





Kot lahko vidite, smo naš podatkovni okvir ustvarili z uporabo slovarja pandas. V našem podatkovnem okvirju df imamo 3 stolpce, tj. »predmeti«, »proizvajalec« in »količina«. V stolpcu 'artikli' imamo shranjene vrednosti ('majica', 'kravata', 'hlače', 'majica', 'kravata', 'hlače', 'majica', 'hlače', 'hlače', ' tie'), medtem ko stolpca 'proizvajalec' in  'količina', ki vsebujeta vrednosti ('italija', 'francija', 'kitajska', 'franca',  'kitajska', 'italija', 'kitajska', 'italija', »franca«, »kitajska«) oziroma (13, 16, 21, 32, 26, 41, 24, 42, 12, 15). Združimo vrednosti v stolpcu proizvajalca in določimo srednjo količinsko vrednost za vsakega posameznega proizvajalca.





Vrednost proizvajalca „Kitajska“ ima povprečno količinsko vrednost 21,5, povprečna količinska vrednost za „Francijo“ je 20,0, povprečna količinska vrednost za „Italijo“ pa 32,0. Izhodu lahko določimo tudi indeks z uporabo funkcije reset_index s funkcijo groupby.mean().



Primer št. 02: Poiščite povprečje enega stolpca s plavajočo vrednostjo z združevanjem podatkov v enem stolpcu

Videli smo, kako lahko po združevanju podatkov najdemo povprečje stolpca celih števil. Zdaj pa poskusimo z drugim stolpcem podatkovnega tipa, kot je float. Podatkovni okvir z vsaj enim stolpcem s plavajočimi vrednostmi bo ustvarjen s funkcijo pd.DataFrame().

Z vstavitvijo slovarja v pd.DataFrame() smo ustvarili podatkovni okvir s tremi stolpci. V stolpcu 'ime' so shranjena imena nekaterih naključnih igralcev ('Sam', 'Jay', 'Leo', 'Mike', 'Will', 'Billy', 'Jhonny', 'Lara', 'Hanna', 'Tony'), stolpec 'ekipa', ki predstavlja ekipo, ki ji pripada vsak igralec ('A', 'A', 'B',  'A', 'B', 'A', 'C', 'B ', 'C', 'C'), stolpec 'height' pa shranjuje višine vsakega igralca kot plavajoče vrednosti (5,6, 5,4, 6,3, 5,2, 5,5, 6,4, 5,6, 5,8, 6,0, 5,2). Združimo podatke v stolpec »ekipa« in določimo srednjo vrednost višine za vsako posamezno vrednost »ekipe«.

Vidite lahko, da je povprečna vrednost višine igralcev ekipe A 5,65, medtem ko je povprečna višina igralcev ekip B in C 5,866 oziroma 5,6.

Primer # 03: Določanje srednje vrednosti več stolpcev s funkcijo groupby.mean()

V prejšnjih primerih smo določili povprečje enega stolpca. Lahko pa se določi tudi povprečje številnih stolpcev za vsako skupino. Ustvarimo podatkovni okvir z več kot enim številskim stolpcem po uvozu modulov pandas in numpy.

V novo ustvarjenem podatkovnem okvirju so trije stolpci z oznakami »ime«, »rezultat« in »ujema se«. Imena stolpcev, ki imajo podatkovne vrednosti kot niz ('Ron', 'Jim', 'Dany', 'Jim', 'Jim', 'Dany', 'Ron', 'Ron', 'Dany', 'Jim' ), medtem ko sta 'rezultat' in 'ujema' sestavljena iz numeričnih podatkov kot (3, 4, 2, 4, 1, 5, 2, 3, 1, 2) in (2, 3, 1, 2, 1, 3 , 4, 1, 2, 1). Zdaj pa poiščimo povprečje stolpcev »rezultat« in »ujema se« po združevanju podatkov v stolpcu »ime«. Za to bo uporabljena funkcija groupby.mean().

Opazimo lahko, da ima skupina 'Dany' povprečno oceno 2,66 v tekmah 2,00. Skupina Jim ima povprečno oceno 2,75, povprečna vrednost odigranih tekem pa 1,75. Medtem ko ima skupina 'Ron' povprečno vrednost rezultata 2,66, povprečna vrednost odigranih tekem pa 2,33.

Povprečje skupine kategorij po objektu je mogoče izračunati tudi z metodo agg(). Srednjo vrednost bomo posredovali kot argument funkciji agg(). Za združevanje z uporabo ene ali več operacij na dani osi lahko uporabimo funkcijo agg().

Izhod je enak kot prej.

Primer # 04: Določite povprečje določenih stolpcev z združevanjem več stolpcev

V primerih 1, 2 in 3 smo združili vrednosti ali podatke enega samega stolpca. Zdaj bomo združili več stolpcev s seznamom oznak stolpcev znotraj funkcije groupby(), nato pa bomo našli povprečno vrednost za vsako skupino. Slovar 'd' bo posredovan znotraj funkcije pd.Dataframe() kot vhod za ustvarjanje podatkovnega okvira.

Ustvarili smo zahtevani podatkovni okvir. V stolpcu 'šport' so shranjena imena nekaterih športov ('badminton', 'nogomet', 'tenis', 'košarka', 'nogomet', 'tenis', 'košarka', 'nogomet', 'badminton', ' košarka', 'košarka', 'tenis'), imena držav ('Kitajska', 'Rusija', 'Italija', 'Španija', 'Rusija', 'Italija', 'Kitajska', 'Italija', ' Španija', 'Kitajska', 'Rusija', 'Italija') so shranjeni v stolpcu 'država'. V stolpcu »zmaga« pa imamo shranjeno število zmaganih tekem vsake države v posameznem športu (13, 10, 6, 7, 10, 12, 7, 11, 8, 13, 11, 6). Uporabimo funkcijo groupby.mean(), da poiščemo povprečje vrednosti stolpca »win« tako, da združimo stolpca »sports« in »country«.

Funkcija je uspešno določila povprečja vrednosti stolpca 'win' za vsak šport v državi. Podatkovni okvir, razvrščen po skupinah, je mogoče ponastaviti s funkcijo reset_index(), ki prav tako ustvari nov indeks in mu daje ustrezno strukturo podatkovnega okvira.

Za vsako vrstico podatkovnega okvira je dodan indeks. Za ureditev rezultatov v privlačno tabelo lahko uporabimo tudi funkcijo pivot().

Zaključek

V tej vadnici smo razpravljali o tem, kaj je povprečje števil in kako najti povprečje določenega stolpca (enega ali več) po združevanju stolpca ali stolpcev podatkovnega okvira. V tem članku smo implementirali nekaj primerov, da vas naučimo, kako določiti povprečje posameznega celega ali plavajočega stolpca z združevanjem podatkov v enem stolpcu; kako določiti povprečje več stolpcev s funkcijo groupby.mean(); in tudi, kako določiti povprečje določenih stolpcev z združevanjem več stolpcev.