Pandas Groupby Average

Pandas Groupby Average



Ja mēs saskaitām divas vai vairākas vērtības un to summu dala ar kopējo pievienoto vērtību skaitu, rezultāts ir vidējais. Pandas Mean atgriež datu vai vērtības vidējo vērtību pa noteiktu asi. Pandas atgriezīs sēriju ar vidējo vērtību pāri asij, ja datu kadram tiek lietota vidējā () metode. Pandas atgriež skaitlisku vērtību (vienu skaitli), ja sērijā tiek izmantots “mean()”. Funkcijas var lietot kategorijām pēc kategoriju grupu izveides. Tā ir vienkārša ideja, bet ļoti efektīva tehnika, ko bieži izmanto datu zinātnē. Tas ļauj mums izveidot katras grupas datu kopsavilkumu, piemērot grupai specifiskas modifikācijas un veikt datu filtrēšanu. Izmantojot grupuby() funkciju, objektu var sadalīt, lietot funkciju un pēc tam produktus apvienot. Ar to var grupēt lielas datu kopas un veikt darbības ar grupām.

Kā lietot metodi groupby.mean() Pandas?

Lai aprēķinātu datu rāmja vidējo vērtību vai noteiktu datu rāmja kolonnu vidējo vērtību, mēs varam izmantot funkciju groupby.mean(). Tālāk sniegtajos piemēros parādīsim, kā to izmantot.







01. piemērs: nosakiet vienas veselas skaitļa kolonnas vidējo vērtību, grupējot vienas kolonnas datus

Izmantojot funkciju pd.DataFrame(), mēs vispirms izveidosim datu rāmi, lai mēs varētu sadalīt datu rāmja kolonnas vai kolonnu datus grupās un pēc tam atrast to vidējo vērtību. Pirms datu rāmja izveides mums ir jāimportē pandas modulis kopā ar numpy bibliotēku.





Kā redzams, mēs esam izveidojuši savu datu rāmi, izmantojot pandas vārdnīcu. Mūsu df datu ietvarā ir 3 kolonnas, t.i., “preces”, “fabrikants” un “quantity”. Kolonnā 'preces' esam saglabājuši vērtības ('krekls', 'kaklasaite', 'bikses', 'krekls', 'kaklasaite', 'bikses', 'krekls', 'bikses', 'bikses', ' kaklasaite), bet ailes “manufacturer” un “quantity” satur vērtības (“italija”, “francija”, “ķīna”, “francija”, “ķīna”, “italija”, “ķīna”, “italija”, “Francija”, “Ķīna”) un attiecīgi (13, 16, 21, 32, 26, 41, 24, 42, 12, 15). Sagrupēsim vērtības ražotāja kolonnā un noteiksim vidējo daudzuma vērtību katram atsevišķam ražotājam.





Ražotāja vērtības “Ķīna” vidējā daudzuma vērtība ir 21,5, vidējā daudzuma vērtība “francijai” ir 20,0 un vidējā daudzuma vērtība “Itālijai” ir 32,0. Mēs varam arī norādīt izvades indeksu, izmantojot funkciju reset_index ar funkciju groupby.mean().



02. piemērs. Atrodiet vienas peldošās kolonnas vidējo vērtību, grupējot vienas kolonnas datus

Mēs esam redzējuši, kā pēc datu grupēšanas varam atrast veselā skaitļa kolonnas vidējo vērtību. Tagad izmēģināsim citu datu tipa kolonnu, piemēram, float. Datu rāmis ar vismaz vienu kolonnu ar peldošām vērtībām tiks izveidots, izmantojot funkciju pd.DataFrame().

Ievietojot vārdnīcu pd.DataFrame(), mēs esam izveidojuši datu rāmi ar trim kolonnām. Kolonnā 'name' ir saglabāti dažu nejaušu spēlētāju vārdi ('Sem', 'Džejs', 'Leo', 'Maiks', 'Vils', 'Bilijs', 'Džonijs', 'Lara', 'Hanna', 'Tonijs'), kolonna 'komanda', kas apzīmē komandu, no kuras pieder katrs spēlētājs ('A', 'A', 'B', 'A', 'B', 'A', 'C', 'B'. ', 'C', 'C'), un kolonnā 'augstums' tiek saglabāti katra spēlētāja augstumi kā peldošā vērtība (5.6, 5.4, 6.3, 5.2, 5.5, 6.4, 5.6, 5.8, 6.0, 5.2). Sagrupēsim datus kolonnā “komanda” un noteiksim vidējo augstuma vērtību katrai atsevišķai “komandas” vērtībai.

Redzams, ka A komandas spēlētāju vidējā auguma vērtība ir 5,65, savukārt B un C komandās ir attiecīgi 5,866 un 5,6.

Piemērs # 03: Nosakiet vairāku kolonnu vidējo vērtību, izmantojot funkciju groupby.mean()

Iepriekšējos piemēros mēs noteicām vienas kolonnas vidējo vērtību. Tomēr var noteikt arī daudzu kolonnu vidējo vērtību katrai grupai. Pēc pandu un numpy moduļu importēšanas izveidosim datu rāmi, kurā ir vairāk nekā viena ciparu kolonna.

Jaunizveidotajā datu rāmī ir trīs kolonnas ar apzīmējumiem “nosaukums”, “rezultāts” un “atbilstības”. Kolonnu nosaukumi, kuru datu vērtības ir virkne ('Ron', 'Jim', 'Dany', 'Jim', 'Jim', 'Dany', 'Ron', 'Ron', 'Dany', 'Jim' ), savukārt “rezultāts” un “atbilstības” sastāv no tādiem skaitliskiem datiem kā (3, 4, 2, 4, 1, 5, 2, 3, 1, 2) un (2, 3, 1, 2, 1, 3) , 4, 1, 2, 1). Tagad atradīsim kolonnas “rezultāts” un “atbilstības” vidējo vērtību pēc kolonnas “nosaukums” datu grupēšanas. Šim nolūkam tiks izmantota funkcija groupby.mean().

Var pamanīt, ka grupas ‘Dany’ vidējais rādītājs 2,00 mačos ir 2,66. Grupas Džima vidējais rādītājs ir 2,75, un vidējā nospēlēto maču vērtība ir 1,75. Savukārt grupas “Ron” vidējā rezultāta vērtība ir 2,66, bet aizvadīto spēļu vidējā vērtība ir 2,33.

Kategoriju grupas vidējo vērtību pēc objekta var aprēķināt arī, izmantojot agg() metodi. Mēs piegādāsim vidējo kā argumentu funkcijai agg(). Lai apkopotu, izmantojot vienu vai vairākas darbības pa norādīto asi, mēs varam izmantot funkciju agg().

Izvade ir tāda pati kā iepriekš.

04. piemērs: nosakiet konkrētu kolonnu vidējo vērtību, grupējot vairākas kolonnas

1., 2. un 3. piemērā mēs esam grupējuši vienas kolonnas vērtības vai datus. Tagad mēs grupēsim vairākas kolonnas, izmantojot sleju etiķešu sarakstu funkcijā groupby (), un pēc tam mēs atradīsim katras grupas vidējo vērtību. Vārdnīca “d” tiks nodota funkcijā pd.Dataframe() kā ievade datu rāmja izveidei.

Mēs esam izveidojuši nepieciešamo datu rāmi. Slejā “sports” tiek saglabāti dažu sporta veidu nosaukumi (“Badmintons”, “futbols”, “teniss”, “basketbols”, “futbols”, “teniss”, “basketbols”, “futbols”, “badmintons”, “ basketbols', 'basketbols', 'teniss'), valstu nosaukumi ('Ķīna', 'Krievija', 'Itālija', 'Spānija', 'Krievija', 'Itālija', 'Ķīna', 'Itālija', ' Spānija”, “Ķīna”, “Krievija”, “Itālija”) tiek saglabāti ailē “valsts”. Savukārt ailē “Uzvara” esam saglabājuši katras valsts uzvarēto spēļu skaitu katrā sporta veidā (13, 10, 6, 7, 10, 12, 7, 11, 8, 13, 11, 6). Izmantosim funkciju groupby.mean(), lai atrastu slejas “win” vidējo vērtību, grupējot kolonnas “sports” un “country”.

Funkcija ir veiksmīgi noteikusi slejas “uzvara” vidējo vērtību katram sporta veidam valstī. Sagrupēto datu rāmi var atiestatīt, izmantojot funkciju reset_index(), kas arī ģenerē jaunu indeksu, piešķirot tam atbilstošu datu rāmja struktūru.

Katrai datu rāmja rindai tiek pievienots rādītājs. Lai rezultātus sakārtotu pievilcīgā tabulā, varam izmantot arī pivot() funkciju.

Secinājums

Šajā apmācībā mēs esam apsprieduši, kas ir skaitļu vidējais vai vidējais lielums un kā pēc datu rāmja kolonnas vai kolonnu grupēšanas atrast konkrētas kolonnas (vienas vai vairāku) vidējo vērtību. Šajā rakstā mēs ieviesām dažus piemērus, lai mācītu, kā noteikt viena vesela skaitļa vai peldošās kolonnas vidējo vērtību, grupējot vienas kolonnas datus; kā noteikt vairāku kolonnu vidējo vērtību, izmantojot funkciju groupby.mean(); un arī to, kā noteikt konkrētu kolonnu vidējo vērtību, grupējot vairākas kolonnas.