Pandas Group av Aggregate

Pandas Group Av Aggregate



Groupby-tekniken är viktig på grund av hur väl den aggregerar data både vad gäller prestanda och kodstorlek. Termen 'gruppby' beskriver vanligtvis en procedur som inkluderar följande steg:

  • Splittring : Genom att tillämpa vissa villkor på datamängder kan vi dela in data i grupper.
  • Ansöker : En process där vi individuellt tillämpar en metod för varje grupp.
  • Kombinerande : En procedur för att kombinera olika datamängder för att bilda en datastruktur efter att ha använt groupby()-metoden.

Under aggregeringsprocessen beräknas en sammanfattande statistik för varje grupp. För varje grupp returnerar den aggregerade metoden ett aggregerat värde (enkelt värde). Vi kan utföra flera aggregeringsoperationer på grupperad data efter att ha delat in data i grupper med hjälp av groupby-funktionen.







Varför tillhandahåller pandor en mängd olika dataaggregationsmetoder?

Pandas erbjuder ett brett utbud av funktioner och funktioner för att hjälpa till med analys och aggregering av data. Användningen av metoderna pivot(), groupby() och pivot_table() erbjuder till exempel var och en ett annat perspektiv på hur data skulle aggregeras. De ger praktiska tillvägagångssätt för att utföra olika uppgifter snarare än att bara packas om.



Hur man använder .agg()-funktionen i Pandas

Ett enkelt medelvärde eller summa av värden är den aggregeringsfunktion som används mest. Du kan använda en datarams kolumn eller flera kolumner för att anropa en aggregerad funktion. Du kommer att se många sätt att aggregera data med Pandas groupby-metoden. För att visa hur mycket enklare proceduren är, låt oss titta på några exempel nedan. Grundläggande matematiska operationer som summa, minimum, maximum, genomsnittlig absolut avvikelse, standardavvikelse, medelvärde, median, varians och produkt är bland de mest använda inbyggda aggregeringsfunktionerna. För att sammanfatta data kan vi kombinera groupby och agg()-funktionen.



Exempel # 01: Bestäm summan av kolumner genom att gruppera data med funktionen groupby.agg()

Vi kommer först att skapa en dataram genom att använda funktionen pd.DataFrame() så att vi kan gruppera data från dataramens kolumn eller kolumner och sedan bestämma deras medelvärde. Vi måste importera modulerna av pandor och numpy-biblioteket innan vi skapar dataramen.





Som du kan se använde vi pandas ordbok för att skapa vår dataram. Vår df-dataram har fyra kolumner: 'patient', 'grupp', 'ålder' och 'blodflaskor'. Datavärdena ('Ali', 'John', 'Mike', 'Mike', 'John', 'Ali', 'Ali', 'Mike') finns i kolumnen 'patient' medan datavärdena ('A ', 'A', 'B', 'C', 'A', 'C', 'C', 'B'), (21, 22, 24, 21, 20, 24, 22, 22) och ( 2, 3, 1, 1, 2, 3, 2, 1) finns i kolumnerna 'grupp', 'ålder' respektive 'blodflaskor'. Låt oss anta att vi måste bestämma summan av värden i kolumnen 'blodflaskor' genom att gruppera värdena i kolumnen 'grupp'.



För gruppdata 'A' är summan av värdena för 'blodflaskor' 7. För gruppvärden 'B' och 'C' är summan av värden på 'blodflaskor' 2 respektive 6. Vi kan också gruppera flera kolumner för att bestämma summan för varje grupp.

Som kan observeras har vi skickat en lista med kolumnetiketter, d.v.s. ['patient', 'grupp'] inuti groupby()-funktionen för att skapa grupperna av kategorier i varje specificerad kolumn. För varje grupp av specificerade kolumner har vi bestämt summan av värden i 'blodflaskor'. Till exempel finns 'Ali' i 'grupp' kolumnen värdena A och C. I grupp A är summan av värdena för 'blodflaskor' för Ali 2 och 5 i grupp 'C'.

Exempel # 02: Tillämpa flera funktioner på en enda kolumn av dataram med hjälp av funktionen groupby.agg()

Flera aggregationer kan tillämpas med metoden 'groupby()' med hjälp av pandasfunktionen agg(). En anropsbar lista kan skickas till metoden. Låt oss titta på hur vi kan aggregera vår data med hjälp av numpy-bibliotekets inbyggda metoder. Till skillnad från föregående exempel kommer vi att tillämpa flera funktioner på en enda kolumn i dataramen. Funktionen pd.DataFrame() kommer att användas för att skapa en dataram för detta med minst en kolumn som innehåller numeriska värden.


Den nödvändiga dataramen har skapats med en numerisk kolumn, d.v.s. 'betyg' med värdena 41, 40, 35, 39, 49, 31, 34 och 42. Det finns ytterligare tre kolumner 'student', 'ämnen' och 'grad' i vår dataram som kan delas in i grupper genom att använda groupby()-funktionen. Värdena i kolumnen 'studenter' och 'ämnen' är ('Harry', 'Ron', 'Harry', 'Lana', 'Sam', 'Ron', 'Lana', 'Max') och ('C++' , 'JAVA', 'Python', 'Python', 'AI', 'JAVA', 'C++', 'AI'). Medan kolumngraden innehåller datavärdena som strängar, dvs ('Ms', 'Bs', 'Bs', 'Ms', 'Ms', 'Ms', 'Bs', 'Bs'). Anta att vi måste gruppera data för kolumn 'ämnen' och bestämma både medelvärdet och summan av kolumn 'markeringar' för varje grupperad data.

Vi har angett namnet på kolumnen 'ämnen' som en sträng i groupby()-funktionen för att konvertera data till grupper av kategorier. För markeringskolumnen har vi använt metoden agg() och inuti agg()-funktionen har vi specificerat numpy-funktionerna np.sum och np.mean för att hitta summan och medelvärdet av poäng för varje gruppdata i kolumnämnen. Summan och medelvärdet för gruppvärdet 'AI' är 91 respektive 45,5. Summan av poäng för värdet 'C++' är 75, och medelvärdet är 37,5. För grupp JAVA är summan av poäng 71 och medelvärdet 35,5, medan summan och medelvärdet för Python är 74 respektive 37.

Exempel # 03: Tillämpa flera funktioner på de flera kolumnerna i dataramen med hjälp av funktionen groupby.agg()

Istället för att tillämpa olika funktioner på en enskild datarams kolumn, kan vi tillämpa flera funktioner på olika numeriska kolumner. Vi kan använda en ordbok i funktionen agg() som indata för att tillämpa en specifik aggregeringsmetod på olika datarams kolumner. Låt oss importera pandorna och numpy-biblioteken innan vi skapar en dataram med flera numeriska kolumner.

Det finns fyra kolumner i den nyskapade dataramen med namnen 'spelare', 'minsta_poäng', 'högsta_poäng' och 'plats'. I kolumnen 'spelare' har vi lagrat namnen på några spelare som strängdatavärden ('Leo', 'Alex', 'Leo', 'Fin', 'Leo', 'Alex', 'Fin', ' Fin'), i kolumnen 'minsta_poäng' finns det lägsta poängen för spelare för vissa matcher (12, 34, 2, 21, 9, 1, 0, 34), medan vi i kolumnen 'högsta_poäng' har de högsta poängen av spelarna (12, 34, 2, 21, 9, 1, 0, 34) och i kolumnen 'plats' finns namnen på arenor där spelarna har spelat sina matcher ('Frankrike', 'England', 'Dubai', ' Dubai', 'England', 'Frankrike', 'Dubai', 'Frankrike').

Låt oss anta att efter att ha grupperat data i kolumnen 'spelare' måste vi hitta medelvärdet för kolumnvärdena för 'minst_score' och summan för datavärdena 'högsta_poäng' för varje grupp.

Inuti funktionen agg() skickade vi en python-ordbok {‘highest_score’ : ‘sum’, ‘least_score’ : ‘mean’} för att hitta summan och medelvärdet för en specificerad kolumn mot varje grupp. Det kan ses att det grupperade värdet Alex har summan av 'högsta_poäng'-värdet 132 och medelvärdet av 'minsta_poäng'-värdet 17,5. För 'Fin' är summan av värden 199 och genomsnittet är 18,3333333 i kolumnerna 'högsta_poäng' respektive 'minsta_poäng'. Gruppvärdet Leo har ett summavärde på 180 i 'högsta_poäng' och ett medelvärde på 7,666667 i 'minsta_poäng'.

Slutsats

I den här handledningen har vi diskuterat groupby() och aggregeringsfunktionerna i pandor. Vi har också diskuterat hur man använder groupby.agg()-funktionen. Vi implementerade tre exempel i den här artikeln för att lära dig hur du använder en enskild aggregeringsfunktion på en dataramskolumn genom att gruppera data för enstaka och flera kolumner, hur du tillämpar flera aggregeringsfunktioner på en enda kolumn i en dataram och hur du tillämpar flera aggregeringsfunktioner på de flera kolumnerna i dataramen med hjälp av funktionen groupby.agg().