Pandas Groupby Agregat

Pandas Groupby Agregat



Tehnica groupby este esențială din cauza cât de bine agregează datele atât în ​​ceea ce privește performanța, cât și dimensiunea codului. Termenul „groupby” descrie de obicei o procedură care include următorii pași:

  • Despicare : Aplicând anumite condiții la seturile de date, putem împărți datele în grupuri.
  • Punerea în aplicare : Un proces în care aplicăm individual o metodă fiecărui grup.
  • Combinând : O procedură de combinare a diferitelor seturi de date pentru a forma o structură de date după utilizarea metodei groupby().

În procesul de agregare, se calculează o statistică sumară pentru fiecare grup. Pentru fiecare grup, metoda agregată returnează o valoare agregată (valoare unică). Putem efectua mai multe operații de agregare pe date grupate după împărțirea datelor în grupuri folosind funcția groupby.







De ce Pandas oferă o varietate de metode de agregare a datelor?

Pandas oferă o gamă largă de caracteristici și funcții pentru a ajuta la analiza și agregarea datelor. Utilizarea metodelor pivot(), groupby() și pivot_table(), de exemplu, oferă fiecare o perspectivă diferită asupra modului în care ar fi agregate datele. Ele oferă abordări practice pentru îndeplinirea diferitelor sarcini, mai degrabă decât să fie pur și simplu reambalate.



Cum să utilizați funcția .agg() în Pandas

O medie simplă sau o sumă de valori este funcția de agregare care este utilizată cel mai frecvent. Puteți folosi o coloană a unui cadru de date sau mai multe coloane pentru a apela o funcție agregată. Veți vedea multe modalități de a agrega date folosind metoda Pandas groupby. Pentru a demonstra cât de ușoară este procedura, să ne uităm la câteva exemple prezentate mai jos. Operațiile matematice de bază precum suma, minimul, maximul, abaterea medie absolută, abaterea standard, media, mediana, varianța și produsul sunt printre cele mai frecvent utilizate funcții de agregare încorporate. Pentru a rezuma datele, putem combina funcția groupby și agg().



Exemplul # 01: Determinați suma coloanelor prin gruparea datelor folosind funcția groupby.agg()

Mai întâi vom crea un cadru de date utilizând funcția pd.DataFrame(), astfel încât să putem grupa datele din coloana sau coloanele cadrului de date și apoi să stabilim valoarea medie a acestora. Trebuie să importam modulele panda și biblioteca numpy înainte de a crea cadrul de date.





După cum puteți vedea, am folosit dicționarul panda pentru a ne crea cadrul de date. Cadrul nostru de date df are patru coloane: „pacient” „grup”, „vârstă” și „sticle de sânge”. Valorile datelor („Ali”, „John”, „Mike”, „Mike”, „John”, „Ali”, „Ali”, „Mike”) sunt conținute de coloana „pacient”, în timp ce valorile datelor („A „, „A”, „B”, „C”, „A”, „C”, „C”, „B”, (21, 22, 24, 21, 20, 24, 22, 22) și ( 2, 3, 1, 1, 2, 3, 2, 1) sunt cuprinse în coloanele „grup”, „vârstă” și, respectiv, „sticlă_sânge”. Să presupunem că trebuie să determinăm suma valorilor din coloana „blood_bottles” prin gruparea valorilor în coloana „grup”.



Pentru datele de grup „A”, suma valorilor „sticlă_sânge” este 7. Pentru valorile grupului „B” și „C”, suma valorilor „sticle_sânge” este 2 și, respectiv, 6. De asemenea, putem grupa mai multe coloane pentru a determina suma pentru fiecare grup.

După cum se poate observa, am trecut o listă de etichete de coloană, adică [‘pacient’, ’grup’] în cadrul funcției groupby() pentru a crea grupurile de categorii în fiecare coloană specificată. Pentru fiecare grup de coloane specificate, am determinat suma valorilor în „blood_bottles”. De exemplu, „Ali” se află în coloana „grup” cu valorile A și C. În grupul A, suma valorilor „blood_bottles” pentru Ali este 2 și 5 în grupul „C”.

Exemplul # 02: Aplicarea mai multor funcții pe o singură coloană a cadrului de date folosind funcția groupby.agg()

Agregările multiple pot fi aplicate cu metoda „groupby()” folosind funcția pandas agg(). O listă apelabilă poate fi transmisă metodei. Să ne uităm la cum ne putem agrega datele folosind metodele încorporate ale bibliotecii numpy. Spre deosebire de exemplul anterior, vom aplica mai multe funcții la o singură coloană a cadrului de date. Funcția pd.DataFrame() va fi folosită pentru a crea un cadru de date pentru aceasta cu cel puțin o coloană care conține valori numerice.


Cadrul de date necesar a fost creat având o coloană numerică, adică „note” cu valorile 41, 40, 35, 39, 49, 31, 34 și 42. Mai sunt 3 coloane „student”, „subiecte” și „grad”. în cadrul nostru de date care poate fi împărțit în grupuri folosind funcția groupby(). Valorile din coloana „elevi” și „subiecte” sunt („Harry”, „Ron”, „Harry”, „Lana”, „Sam”, „Ron”, „Lana”, „Max”) și („C++” , „JAVA”, „Python”, „Python”, „AI”, „JAVA”, „C++”, „AI”). În timp ce gradul coloanei conține valorile datelor sub formă de șiruri, adică (‘Ms’, ‘Bs’, ‘Bs’, ‘Ms’, ‘Ms’, ‘Ms’, ‘Bs’, ‘Bs’). Să presupunem că trebuie să grupăm datele coloanei „subiecte” și să determinăm atât media, cât și suma „marcurilor” coloanei pentru fiecare dată grupată.

Am specificat numele coloanei „subiecte” ca șir în interiorul funcției groupby() pentru a converti datele în grupuri de categorii. Pentru coloana de note am folosit metoda agg(), iar în cadrul funcției agg() am specificat funcțiile numpy np.sum și np.mean pentru a găsi suma și media notelor fiecărui grup de date în subiecții coloanei. Suma și valoarea medie pentru valoarea grupului „AI” sunt 91 și, respectiv, 45,5. Suma notelor pentru valoarea „C++” este 75, iar valoarea medie este 37,5. Pentru grupul JAVA, suma notelor este 71, iar valoarea medie este 35,5, în timp ce suma și valoarea medie pentru Python sunt 74 și, respectiv, 37.

Exemplul # 03: Aplicarea de funcții multiple pe coloanele multiple ale cadrului de date folosind funcția groupby.agg()

În loc să aplicăm diferite funcții unei singure coloane de cadru de date, putem aplica mai multe funcții la diferite coloane numerice. Putem folosi un dicționar în funcția agg() ca intrare pentru a aplica o metodă de agregare specifică coloanelor diferitelor cadre de date. Să importăm bibliotecile panda și numpy înainte de a crea un cadru de date cu mai multe coloane numerice.

Există patru coloane în cadrul de date nou creat cu numele „player”, „least_score”, „highest_score” și „location”. În coloana „player”, am stocat numele câtorva jucători ca valori de date șir („Leu”, „Alex”, „Leu”, „Fin”, „Leu”, „Alex”, „Fin”, „ Fin'), în coloana 'cel mai mic_score' sunt cele mai mici scoruri ale jucătorilor pentru unele meciuri (12, 34, 2, 21, 9, 1, 0, 34), în timp ce în coloana 'highest_score' avem cele mai mari scoruri ale jucătorilor (12, 34, 2, 21, 9, 1, 0, 34) iar în coloana „locație” sunt numele locațiilor în care jucătorii și-au jucat meciurile („Franța”, „Anglia”, „Dubai”, „ Dubai”, „Anglia”, „Franța”, „Dubai”, „Franța”).

Să presupunem că, după gruparea datelor în coloana „jucători”, trebuie să găsim media valorilor coloanei „cel mai mic_score” și suma valorilor de date „cel mai înalt_score” pentru fiecare grup.

În cadrul funcției agg(), am trecut un dicționar python {‘highest_score’ : ‘sum’, ‘least_score’ : ‘mean’} pentru a găsi suma și valoarea medie pentru o coloană specificată pentru fiecare grup. Se poate observa că valoarea grupată Alex are suma valorii „cel mai mare_score” 132 și media valorii „cel mai mic_score” 17,5. Pentru „Fin”, suma valorilor este 199, iar media este 18,3333333 în coloanele „cel mai mare_score” și, respectiv, „cel mai mic_score”. Valoarea grupului Leu are o valoare sumă de 180 în „cel mai mare_score” și o valoare medie de 7,666667 în „cel mai mic_score”.

Concluzie

În acest tutorial, am discutat despre funcțiile groupby() și de agregare din panda. Am discutat, de asemenea, cum să folosiți funcția groupby.agg(). Am implementat trei exemple în acest articol pentru a vă învăța cum să utilizați o singură funcție de agregare pe o coloană de cadru de date prin gruparea datelor unei singure și mai multe coloane, cum să aplicați mai multe funcții de agregare pe o singură coloană a unui cadru de date și cum să aplicați mai multe funcții de agregare pe coloanele multiple ale cadrului de date folosind funcția groupby.agg().