Panda Groupby Aggregate

Panda Groupby Aggregate



Groupby-tekniikka on välttämätön, koska se kokoaa tietoja sekä suorituskyvyn että koodin koon suhteen. Termi 'ryhmittymä' kuvaa tyypillisesti menettelyä, joka sisältää seuraavat vaiheet:

  • Halkaisu : Soveltamalla tiettyjä ehtoja tietojoukkoihin voimme jakaa tiedot ryhmiin.
  • Hakeminen : Prosessi, jossa käytämme jokaisessa ryhmässä menetelmää erikseen.
  • Yhdistäminen : Proseduuri, jolla yhdistetään erilaisia ​​tietojoukkoja tietorakenteen muodostamiseksi groupby()-menetelmän käytön jälkeen.

Aggregointiprosessissa jokaisesta ryhmästä lasketaan yhteenvetotilasto. Kullekin ryhmälle aggregointimenetelmä palauttaa kootun arvon (yksittäinen arvo). Voimme suorittaa useita aggregointitoimintoja ryhmitellylle tiedolle, kun tiedot on jaettu ryhmiin groupby-funktiolla.







Miksi Pandat tarjoavat erilaisia ​​​​tietojen yhdistämismenetelmiä?

Pandat tarjoavat laajan valikoiman ominaisuuksia ja toimintoja, jotka auttavat analysoimaan ja yhdistämään tietoja. Esimerkiksi pivot(), groupby()- ja pivot_table()-menetelmien käyttö tarjoaa kukin erilaisen näkökulman siihen, miten tiedot yhdistetään. Ne tarjoavat käytännöllisiä lähestymistapoja eri tehtävien suorittamiseen sen sijaan, että ne pakattaisiin uudelleen.



.agg()-funktion käyttäminen Pandasissa

Yksinkertainen keskiarvo tai arvojen summa on yleisimmin käytetty koontifunktio. Voit kutsua koontifunktion käyttämällä tietokehyksen saraketta tai useita sarakkeita. Näet monia tapoja koota tietoja käyttämällä Pandas groupby -menetelmää. Havainnollistaaksemme, kuinka paljon helpompi menettely on, katsotaanpa joitain alla annettuja esimerkkejä. Matemaattiset perusoperaatiot, kuten summa, minimi, maksimi, absoluuttinen keskihajonta, keskihajonta, keskiarvo, mediaani, varianssi ja tulo, ovat yleisimmin käytettyjä sisäänrakennettuja aggregointifunktioita. Yhteenvetona datasta voidaan yhdistää groupby ja agg()-funktio.



Esimerkki # 01: Määritä sarakkeiden summa ryhmittelemällä tiedot groupby.agg()-funktiolla

Luomme ensin tietokehyksen käyttämällä pd.DataFrame()-funktiota, jotta voimme ryhmitellä tiedot datakehyksen sarakkeesta tai sarakkeista ja määrittää sitten niiden keskiarvon. Meidän on tuotava pandan moduulit ja numpy-kirjasto ennen kuin luomme tietokehyksen.





Kuten näet, käytimme pandassanakirjaa tietokehyksemme luomiseen. Df-tietokehyksessämme on neljä saraketta: 'potilas' 'ryhmä', 'ikä' ja 'veripullot'. Tietoarvot ('Ali', 'John', 'Mike', 'Mike', 'John', 'Ali', 'Ali', 'Mike) sisältyvät sarakkeeseen 'potilas', kun taas tietoarvot ('A) ', 'A', 'B', 'C', 'A', 'C', 'C', 'B'), (21, 22, 24, 21, 20, 24, 22, 22) ja ( 2, 3, 1, 1, 2, 3, 2, 1) sisältyvät sarakkeisiin 'ryhmä', 'ikä' ja 'veripullot'. Oletetaan, että meidän on määritettävä arvojen summa 'blood_bottles' -sarakkeessa ryhmittelemällä arvot 'ryhmä' -sarakkeeseen.



Ryhmätiedoille 'A' 'blood_bottles' -arvojen summa on 7. Ryhmäarvoille 'B' ja 'C' 'blood_bottles' -arvojen summa on 2 ja 6. Voimme myös ryhmitellä useita sarakkeita määrittääksemme kunkin ryhmän summan.

Kuten voidaan havaita, olemme välittäneet luettelon sarakeotsikoista, eli ['potilas', 'group'], groupby()-funktion sisällä luodaksemme luokkaryhmät kuhunkin määritettyyn sarakkeeseen. Olemme määrittäneet kullekin määritettyjen sarakkeiden ryhmälle arvojen summan kohdassa 'blood_bottles'. Esimerkiksi 'Ali' on 'ryhmä'-sarakkeen arvoissa A ja C. Ryhmässä A 'blood_bottles' -arvojen summa Alille on 2 ja 5 ryhmässä 'C'.

Esimerkki # 02: Useiden funktioiden käyttäminen yhdessä tietokehyksen sarakkeessa Groupby.agg()-funktion avulla

Useita aggregaatioita voidaan soveltaa 'groupby()'-menetelmällä käyttämällä pandas-funktiota agg(). Kutsuttava luettelo voidaan siirtää menetelmälle. Katsotaanpa, kuinka voimme koota tietomme numpy-kirjaston sisäänrakennetuilla menetelmillä. Toisin kuin edellisessä esimerkissä, käytämme useita funktioita tietokehyksen yhteen sarakkeeseen. Funktiota pd.DataFrame() käytetään luomaan tälle tietokehys, jossa on vähintään yksi sarake, joka sisältää numeerisia arvoja.


Vaadittava tietokehys on luotu, jossa on yksi numeerinen sarake eli 'merkit' arvoilla 41, 40, 35, 39, 49, 31, 34 ja 42. Lisäksi on 3 saraketta 'opiskelija', 'subjects' ja 'degree' tietokehyksessämme, joka voidaan jakaa ryhmiin groupby()-funktiolla. Arvot sarakkeissa 'students' ja 'subjects' ovat ('Harry', 'Ron', 'Harry', 'Lana', 'Sam', 'Ron', 'Lana', 'Max') ja ('C++' , 'JAVA', 'Python', 'Python', 'AI', 'JAVA', 'C++', 'AI'). Kun taas sarakeaste sisältää tietoarvot merkkijonoina, eli ('Ms', 'Bs', 'Bs', 'Ms', 'Ms', 'Ms', 'Bs', 'Bs'). Oletetaan, että meidän on ryhmiteltävä sarakkeen 'aiheet' tiedot ja määritettävä kullekin ryhmitellylle tiedolle sarakkeen 'merkit' keskiarvo ja summa.

Olemme määrittäneet 'subjects' -sarakkeen nimen merkkijonona groupby()-funktion sisällä tietojen muuntamiseksi luokkaryhmiksi. Marks-sarakkeessa olemme käyttäneet agg()-menetelmää, ja agg()-funktion sisällä olemme määrittäneet numpy-funktiot np.sum ja np.mean löytääksemme kunkin sarakkeen aiheiden ryhmätietojen pisteiden summan ja keskiarvon. Ryhmäarvon 'AI' summa ja keskiarvo ovat 91 ja 45,5. Arvon 'C++' pisteiden summa on 75 ja keskiarvo on 37,5. JAVA-ryhmässä pisteiden summa on 71 ja keskiarvo 35,5, kun taas Pythonin summa ja keskiarvo ovat 74 ja 37.

Esimerkki # 03: Useiden funktioiden käyttäminen tietokehyksen useissa sarakkeissa Groupby.agg()-funktion avulla

Sen sijaan, että käyttäisimme erilaisia ​​toimintoja yksittäisen tietokehyksen sarakkeeseen, voimme käyttää useita toimintoja eri numeerisissa sarakkeissa. Voimme käyttää sanakirjaa agg()-funktiossa syötteenä soveltaaksemme tiettyä aggregointimenetelmää eri tietokehyksen sarakkeisiin. Tuodaan pandat ja numpy-kirjastot ennen kuin luot tietokehyksen, jossa on useita numeerisia sarakkeita.

Äskettäin luodussa tietokehyksessä on neljä saraketta, joiden nimet ovat 'player', 'least_score', 'highest_score' ja 'location'. Sarakkeessa 'soitin' olemme tallentaneet muutamien pelaajien nimet merkkijonotietoarvoiksi ('Leo', 'Alex', 'Leo', 'Fin', 'Leo', 'Alex', 'Fin', ' Fin'), sarakkeessa 'least_score' on joidenkin otteluiden alhaisimmat pelaajapisteet (12, 34, 2, 21, 9, 1, 0, 34), kun taas sarakkeessa 'highest_score' on pelaajien korkeimmat pisteet. (12, 34, 2, 21, 9, 1, 0, 34) ja sarakkeessa 'sijainti' on niiden pelipaikkojen nimet, joissa pelaajat ovat pelanneet ottelunsa ('Ranska', 'Englanti', 'Dubai', ' Dubai', 'Englanti', 'Ranska', 'Dubai', 'Ranska').

Oletetaan, että sen jälkeen, kun tiedot on ryhmitelty 'pelaajat' -sarakkeeseen, meidän on löydettävä kunkin ryhmän 'least_score' -sarakkeen arvojen keskiarvo ja 'korkein_pistemäärä' -arvojen summa.

Agg()-funktion sisällä välitimme python-sanakirjan {'highest_score' : 'sum', 'least_score' : 'mean'} löytääksemme kunkin ryhmän tietyn sarakkeen summan ja keskiarvon. Voidaan nähdä, että ryhmitellyn arvon Alex summa on 'korkein_piste'-arvo 132 ja 'least_score'-arvon keskiarvo 17,5. Finin arvojen summa on 199 ja keskiarvo on 18,3333333 sarakkeissa 'highest_score' ja 'least_score'. Ryhmäarvon Leo summa-arvo on 180 kohdassa 'korkein_pisteet' ja keskiarvo 7,666667 kohdassa 'pienin_pisteet'.

Johtopäätös

Tässä opetusohjelmassa olemme keskustelleet pandan groupby()- ja aggregaatiofunktioista. Olemme myös keskustelleet groupby.agg()-funktion käytöstä. Otimme käyttöön kolme esimerkkiä tässä artikkelissa opettaaksemme sinulle, kuinka käyttää yhtä aggregointifunktiota tietokehyksen sarakkeessa ryhmittelemällä yksittäisen ja usean sarakkeen tiedot, kuinka käyttää useita koostefunktioita yhteen tietokehyksen sarakkeeseen ja kuinka käyttää useita. koontifunktiot tietokehyksen useissa sarakkeissa käyttäen groupby.agg()-funktiota.