Pandák Groupby Average

Pandak Groupby Average



Ha két vagy több értéket összeadunk, és ezek összegét elosztjuk az összeadott értékek számával, az eredmény egy átlag. A Pandas Mean az adatok vagy értékek átlagát adja vissza egy adott tengely mentén. A pandák egy tengelyen átlagot tartalmazó sorozatot adnak vissza, ha az átlag() metódust alkalmazzák egy adatkeretre. A pandák numerikus értéket (egyetlen számot) adnak vissza, ha az „átlag()” értéket használja egy sorozaton. A függvények a kategóriacsoportok létrehozása után alkalmazhatók a kategóriákra. Ez egy egyszerű ötlet, de rendkívül hatékony technika, amelyet gyakran alkalmaznak az adattudományban. Lehetővé teszi, hogy minden csoporthoz összefoglalót készítsünk az adatokról, csoportspecifikus módosításokat alkalmazzunk, és adatszűrést hajtsunk végre. A groupby() függvénnyel az objektum felosztható, függvény alkalmazható, majd a termékek kombinálhatók. Ezzel a nagy adathalmazok csoportosíthatók, a csoportokon műveletek végezhetők.

Hogyan használjuk a groupby.mean() metódust a Pandákban?

Egy adatkeret átlagának vagy egy adatkeret meghatározott oszlopainak átlagának kiszámításához használhatjuk a groupby.mean() függvényt. A következő példákban bemutatjuk, hogyan kell használni.







01. példa: Határozza meg egyetlen egész oszlop átlagát egyetlen oszlop adatainak csoportosításával

A pd.DataFrame() függvénnyel először egy adatkeretet hozunk létre, hogy az adatkeret oszlopának vagy oszlopainak adatait csoportokra bonthassuk, majd megtudjuk az átlagos értéküket. Az adatkeret létrehozása előtt importálnunk kell a pandas modult a numpy könyvtárral együtt.





Mint látható, adatkeretünket a panda szótár segítségével hoztuk létre. A df adatkeretünkben 3 oszlop van, azaz „tételek”, „gyártó” és „mennyiség”. Az „elemek” oszlopban az értékeket tároltuk ('ing, 'nyakkendő', 'nadrág', 'ing', 'nyakkendő', 'nadrág', 'ing', 'nadrág', 'nadrág', ' nyakkendő”), míg a „gyártó” és a „mennyiség” oszlopok tartalmazzák az értékeket („olaszország”, „francia”, „kína”, „francia”, „kína”, „olasz”, „kína”, „olasz”, „francia”, „kína”), illetve (13, 16, 21, 32, 26, 41, 24, 42, 12, 15). Csoportosítsuk az értékeket a gyártó oszlopban, és határozzuk meg az egyes gyártók átlagos mennyiségi értékét.





A „kína” gyártói érték átlagos mennyiségi értéke 21,5, a „francia” átlagos mennyiségi értéke 20,0, az „Olaszország” esetében pedig 32,0. A kimenethez indexet is megadhatunk a reset_index függvény használatával a groupby.mean() függvénnyel.



02. példa: Keresse meg egyetlen lebegő oszlop átlagát egyetlen oszlop adatainak csoportosításával

Láttuk, hogyan találhatjuk meg az adatok csoportosítása után az egész oszlop átlagát. Most próbáljunk ki egy másik adattípus oszlopot, mint például a float. A pd.DataFrame() függvény segítségével létrejön egy adatkeret, amely legalább egy oszlopot tartalmaz float értékekkel.

A pd.DataFrame() szótárba helyezésével egy három oszlopból álló adatkeretet hoztunk létre. A 'name' oszlop néhány véletlenszerű játékos nevét tárolja ('Sam', 'Jay', 'Leo', 'Mike', 'Will', 'Billy', 'Jhonny', 'Lara', 'Hanna', „Tony”), a „csapat” oszlop, amely azt a csapatot jelöli, amelyhez minden játékos tartozik („A”, „A”, „B”, „A”, „B”, „A”, „C”, „B” ', 'C', 'C'), és a 'magasság' oszlop lebegő értékként tárolja az egyes játékosok magasságát (5.6, 5.4, 6.3, 5.2, 5.5, 6.4, 5.6, 5.8, 6.0, 5.2). Csoportosítsuk az adatokat a „csapat” oszlopban, és határozzuk meg az egyes „csapat” értékek átlagos magasságát.

Látható, hogy az A-csapat játékosainak átlagos magassága 5,65, míg a B és C csapat játékosainak átlagos magassága 5,866, illetve 5,6.

03. példa: Határozza meg több oszlop átlagát a groupby.mean() függvény segítségével

Az előző példákban egyetlen oszlop átlagát határoztuk meg. Azonban az egyes csoportokhoz tartozó számos oszlop átlaga is meghatározható. A pandák és a numpy modulok importálása után hozzunk létre egy adatkeretet, amely egynél több numerikus oszlopot tartalmaz.

Az újonnan létrehozott adatkeretben három oszlop található „név”, „pontszám” és „egyezés” címkékkel. Az adatértékeket karakterláncként tartalmazó oszlopnevek ('Ron', 'Jim', 'Dany', 'Jim', 'Jim', 'Dany', 'Ron', 'Ron', 'Dany', 'Jim' ), míg a „pontszám” és az „egyezés” numerikus adatokból áll: (3, 4, 2, 4, 1, 5, 2, 3, 1, 2) és (2, 3, 1, 2, 1, 3) , 4, 1, 2, 1). Most keressük meg a „pontszám” és „egyezés” oszlop átlagát a „név” oszlop adatainak csoportosítása után. Ehhez a groupby.mean() függvény lesz használva.

Megfigyelhető, hogy a „Dany” csoport 2,00 mérkőzésen 2,66-os átlagpontszámmal rendelkezik. A Jim csoport átlagos pontszáma 2,75, a lejátszott mérkőzések átlagértéke 1,75. Míg a „Ron” csoport átlagos pontszáma 2,66, a lejátszott mérkőzések átlagértéke pedig 2,33.

Egy kategóriacsoport objektum szerinti átlaga az agg() metódussal is kiszámítható. Az agg() függvény argumentumaként az átlagot adjuk meg. Egy vagy több művelettel az adott tengelyen történő összesítéshez használhatjuk az agg() függvényt.

A kimenet ugyanaz, mint korábban.

04. példa: Határozza meg az egyes oszlopok átlagát több oszlop csoportosításával

Az 1., 2. és 3. példában egyetlen oszlop értékeit vagy adatait csoportosítottuk. Most több oszlopot csoportosítunk a groupby() függvényen belüli oszlopcímkék listájával, majd megkeressük az egyes csoportok átlagos értékét. Egy „d” szótár kerül átadásra a pd.Dataframe() függvényen belül az adatkeret létrehozásához.

Elkészítettük a szükséges adatkeretet. A „sport” oszlop néhány sportág nevét tárolja („tollaslabda”, „labdarúgás”, „tenisz”, „kosárlabda”, „labdarúgás”, „tenisz”, „kosárlabda”, „labdarúgás”, „tollaslabda”, „ kosárlabda”, „kosárlabda”, „tenisz”), az országok neve („Kína”, „Oroszország”, „Olaszország”, „Spanyolország”, „Oroszország”, „Olaszország”, „Kína”, „Olaszország”, „ Spanyolország”, „Kína”, „Oroszország”, „Olaszország”) az „ország” oszlopban tárolódnak. Míg a „győzelem” oszlopban az egyes országok által az egyes sportágakban megnyert mérkőzések számát tároltuk (13, 10, 6, 7, 10, 12, 7, 11, 8, 13, 11, 6). Használjuk a groupby.mean() függvényt, hogy megkeressük a „win” oszlopértékek átlagát a „sport” és „country” oszlopok csoportosításával.

A funkció sikeresen meghatározta a „győzelem” oszlop értékeinek átlagát az egyes sportágak esetében az országban. A csoportosított adatkeret alaphelyzetbe állítható a reset_index() függvénnyel, amely egy új indexet is generál, megfelelő adatkeret-struktúrát adva neki.

Minden adatkeret sorához hozzáad egy indexet. Az eredmények vonzó táblázatba rendezéséhez használhatjuk a pivot() függvényt is.

Következtetés

Ebben az oktatóanyagban megvitattuk, hogy mi a számok átlaga vagy átlaga, és hogyan lehet megtalálni egy adott (egy vagy több) oszlop átlagát egy adatkeret oszlopának vagy oszlopainak csoportosítása után. Ebben a cikkben néhány példát implementáltunk, hogy megtanítsuk, hogyan határozható meg egyetlen egész vagy float oszlop átlaga egyetlen oszlop adatainak csoportosításával; hogyan határozható meg több oszlop átlaga a groupby.mean() függvény segítségével; és azt is, hogyan határozható meg az egyes oszlopok átlaga a több oszlop csoportosításával.