Pandas Groupby Priemer

Pandas Groupby Priemer



Keď sčítame dve alebo viac hodnôt a ich súčet sa vydelí celkovým počtom sčítaných hodnôt, výsledkom je priemer. Pandas Mean vráti priemer údajov alebo hodnoty pozdĺž danej osi. Séria s priemerom naprieč osou bude vrátená pandami, ak sa na dátový rámec použije metóda mean(). Pandy vrátia číselnú hodnotu (jedno číslo), ak sa v sérii použije „mean()“. Funkcie je možné aplikovať na kategórie po vytvorení skupín kategórií. Je to jednoduchý nápad, ale vysoko efektívna technika, ktorá sa často používa v dátovej vede. Umožňuje nám vytvoriť súhrn údajov pre každú skupinu, aplikovať úpravy špecifické pre skupinu a vykonávať filtráciu údajov. Pomocou funkcie groupby() je možné objekt rozdeliť, použiť funkciu a potom kombinovať produkty. Pomocou toho možno zoskupovať veľké množiny údajov a so skupinami vykonávať operácie.

Ako používať metódu groupby.mean() v Pandas?

Na výpočet priemeru dátového rámca alebo priemeru konkrétnych stĺpcov dátového rámca môžeme použiť funkciu groupby.mean(). Ako ho použiť, si ukážeme na nasledujúcich príkladoch.







Príklad č. 01: Určenie priemeru jedného celočíselného stĺpca zoskupením údajov jedného stĺpca

Pomocou funkcie pd.DataFrame() najskôr vytvoríme dátový rámec, aby sme mohli rozdeliť dáta stĺpca alebo stĺpcov dátového rámca do skupín a následne nájsť ich strednú hodnotu. Pred vytvorením dátového rámca musíme importovať modul pandas spolu s knižnicou numpy.





Ako je možné vidieť, náš dátový rámec sme vytvorili pomocou slovníka pandy. V našom dátovom rámci df máme 3 stĺpce, t.j. „položky“, „výrobca“ a „množstvo“. V stĺpci 'položky' máme uložené hodnoty ('košeľa', 'kravata', 'nohavice', 'košeľa', 'kravata', 'nohavice', 'košeľa', 'nohavice', 'nohavice', ' kravata'), pričom  stĺpce 'výrobca' a  'množstvo' obsahujú hodnoty ('taliansko', 'francúzsko', 'čína', 'francúzsko',  'čína', 'taliansko', 'čína', 'taliansko', „francúzsko“, „čína“) a (13, 16, 21, 32, 26, 41, 24, 42, 12, 15). Zoskupujme hodnoty v stĺpci výrobcu a určme priemernú hodnotu množstva pre každého jednotlivého výrobcu.





Hodnota výrobcu „čína“ má strednú hodnotu množstva 21,5, stredná hodnota množstva pre „francúzsko“ je 20,0 a stredná hodnota množstva pre „Taliansko“ je 32,0. Môžeme tiež špecifikovať index výstupu pomocou funkcie reset_index s funkciou groupby.mean().



Príklad č. 02: Nájdite priemer jedného stĺpca s pohyblivým stĺpcom zoskupením údajov jedného stĺpca

Videli sme, ako môžeme nájsť priemer celého stĺpca po zoskupení údajov. Teraz skúsme iný stĺpec typu údajov, napríklad float. Dátový rámec s aspoň jedným stĺpcom s pohyblivými hodnotami sa vytvorí pomocou funkcie pd.DataFrame().

Vložením slovníka do pd.DataFrame() sme vytvorili dátový rámec s tromi stĺpcami. V stĺpci 'meno' sú uložené mená niektorých náhodných hráčov ('Sam', 'Jay', 'Leo', 'Mike', 'Will', 'Billy', 'Jhonny', 'Lara', 'Hanna', 'Tony'), stĺpec 'tím' predstavujúci tím, do ktorého každý hráč patrí ('A', 'A', 'B',  'A', 'B', 'A', 'C', 'B' ', 'C', 'C') a stĺpec 'height' ukladá výšky každého hráča ako plávajúcu hodnotu (5.6, 5.4, 6.3, 5.2, 5.5, 6.4, 5.6, 5.8, 6.0, 5.2). Zoskupme údaje v stĺpci „tím“ a určme priemernú hodnotu výšky pre každú odlišnú hodnotu „tímu“.

Môžete vidieť, že priemerná hodnota výšky hráčov tímu A je 5,65, zatiaľ čo priemerná výška hráčov v tímoch B a C je 5,866 a 5,6.

Príklad č. 03: Určenie priemeru viacerých stĺpcov pomocou funkcie groupby.mean().

V predchádzajúcich príkladoch sme určili priemer jedného stĺpca. Môže sa však určiť aj priemer z početných stĺpcov pre každú skupinu. Po importovaní modulov pandy a numpy vytvorte dátový rámec s viac ako jedným číselným stĺpcom.

V novovytvorenom dátovom rámci sú tri stĺpce s menovkami „názov“, „skóre“ a „zhody“. Názvy stĺpcov, ktoré majú hodnoty údajov ako reťazec ('Ron', 'Jim', 'Dany', 'Jim', 'Jim', 'Dany', 'Ron', 'Ron', 'Dany', 'Jim' ), keďže „skóre“ a „zhody“ pozostávajú z číselných údajov ako (3, 4, 2, 4, 1, 5, 2, 3, 1, 2) a (2, 3, 1, 2, 1, 3 , 4, 1, 2, 1). Teraz nájdime priemer stĺpca „skóre“ a „zhody“ po zoskupení údajov stĺpca „názov“. Poslúži na to funkcia groupby.mean().

Možno si všimnúť, že skupina ‚Dany‘ má priemerné skóre 2,66 v 2,00 zápasoch. Skupina Jim má priemerné skóre 2,75 a priemerná hodnota odohraných zápasov je 1,75. Zatiaľ čo skupina ‚Ron‘ má priemernú hodnotu skóre 2,66 a priemerná hodnota odohraných zápasov je 2,33.

Priemer skupiny kategórií podľa objektu možno vypočítať aj pomocou metódy agg(). Priemer dodáme ako argument funkcii agg(). Na agregáciu pomocou jednej alebo viacerých operácií cez danú os môžeme použiť funkciu agg().

Výstup je rovnaký ako predtým.

Príklad č. 04: Určte priemer konkrétnych stĺpcov zoskupením viacerých stĺpcov

V príkladoch 1, 2 a 3 sme zoskupili hodnoty alebo údaje jedného stĺpca. Teraz zoskupíme viacero stĺpcov pomocou zoznamu označení stĺpcov vo funkcii groupby() a potom nájdeme priemernú hodnotu pre každú skupinu. Slovník „d“ bude odovzdaný do funkcie pd.Dataframe() ako vstup na vytvorenie dátového rámca.

Vytvorili sme požadovaný dátový rámec. V stĺpci „šport“ sú uložené názvy niektorých športov („Badminton“, „futbal“, „tenis“, „basketbal“, „futbal“, „tenis“, „basketbal“, „futbal“, „Badminton“, „ basketbal, 'basketbal', 'tenis'), názvy krajín ('Čína', 'Rusko', 'Taliansko', 'Španielsko', 'Rusko', 'Taliansko', 'Čína', 'Taliansko', ' Španielsko“, „Čína“, „Rusko“, „Taliansko“) sú uložené v stĺpci „krajina“. Zatiaľ čo v stĺpci „výhra“ máme uložený počet zápasov, ktoré každá krajina vyhrala v každom športe (13, 10, 6, 7, 10, 12, 7, 11, 8, 13, 11, 6). Pomocou funkcie groupby.mean() nájdeme priemer hodnôt stĺpca „výhra“ zoskupením stĺpcov „šport“ a „krajina“.

Funkcia úspešne určila priemery hodnôt stĺpca „výhra“ pre každý šport v krajine. Zoskupený dátový rámec možno resetovať pomocou funkcie reset_index(), ktorá tiež vygeneruje nový index, čím získa vhodnú štruktúru dátového rámca.

Pre každý riadok dátového rámca sa pridá index. Na usporiadanie výsledkov do atraktívnej tabuľky môžeme použiť aj funkciu pivot().

Záver

V tomto návode sme diskutovali o tom, čo je priemer alebo priemer čísel a ako nájsť strednú hodnotu konkrétneho stĺpca (jednoho alebo viacerých) po zoskupení stĺpca alebo stĺpcov dátového rámca. V tomto článku sme implementovali niekoľko príkladov, aby sme vás naučili, ako určiť priemer jedného celočíselného alebo pohyblivého stĺpca zoskupením údajov jedného stĺpca; ako určiť priemer viacerých stĺpcov pomocou funkcie groupby.mean(); a tiež ako určiť priemer konkrétnych stĺpcov zoskupením viacerých stĺpcov.