Panda's Groupby Aggregate

Panda S Groupby Aggregate



De groupby-techniek is essentieel vanwege de goede aggregatie van gegevens in termen van zowel prestaties als codegrootte. De term 'groupby' beschrijft doorgaans een procedure die de volgende stappen omvat:

  • Splitsen : Door bepaalde voorwaarden toe te passen op datasets, kunnen we data in groepen verdelen.
  • Toepassen : Een proces waarbij we voor elke groep individueel een methode toepassen.
  • Combineren : Een procedure om verschillende datasets te combineren om een ​​datastructuur te vormen na gebruik van de groupby() methode.

Tijdens het aggregatieproces wordt een samenvattende statistiek voor elke groep berekend. Voor elke groep retourneert de aggregatiemethode een geaggregeerde waarde (enkele waarde). We kunnen verschillende aggregatiebewerkingen uitvoeren op gegroepeerde gegevens nadat we de gegevens in groepen hebben verdeeld met behulp van de groupby-functie.







Waarom bieden panda's een verscheidenheid aan gegevensaggregatiemethoden?

Panda's bieden een breed scala aan functies en functies om te helpen bij de analyse en aggregatie van gegevens. Het gebruik van bijvoorbeeld de methoden pivot(), groupby() en pivot_table() biedt elk een ander perspectief op hoe gegevens zouden worden geaggregeerd. Ze bieden praktische benaderingen voor het uitvoeren van verschillende taken in plaats van eenvoudigweg opnieuw te worden verpakt.



Hoe de .agg()-functie in Panda's te gebruiken

Een eenvoudig gemiddelde of som van waarden is de aggregatiefunctie die het vaakst wordt gebruikt. U kunt de kolom van een dataframe of meerdere kolommen gebruiken om een ​​aggregatiefunctie aan te roepen. U zult veel manieren zien om gegevens te verzamelen met behulp van de Pandas groupby-methode. Laten we eens kijken naar enkele voorbeelden die hieronder worden gegeven om aan te tonen hoeveel eenvoudiger de procedure is. Elementaire wiskundige bewerkingen zoals som, minimum, maximum, gemiddelde absolute afwijking, standaarddeviatie, gemiddelde, mediaan, variantie en product behoren tot de meest gebruikte ingebouwde aggregatiefuncties. Om gegevens samen te vatten, kunnen we groupby en de functie agg() combineren.



Voorbeeld # 01: Bepaal de som van kolommen door de gegevens te groeperen met de functie groupby.agg()

We zullen eerst een dataframe maken door de functie pd.DataFrame() te gebruiken, zodat we de gegevens uit de kolom of kolommen van het dataframe kunnen groeperen en vervolgens hun gemiddelde waarde kunnen bepalen. We moeten de modules van panda's en de numpy-bibliotheek importeren voordat we het dataframe maken.





Zoals je kunt zien, hebben we het panda-woordenboek gebruikt om ons dataframe te maken. Ons df-dataframe heeft vier kolommen: 'patiënt', 'groep', 'leeftijd' en 'bloedflessen'. De gegevenswaarden ('Ali', 'John', 'Mike', 'Mike', 'John', 'Ali', 'Ali', 'Mike') staan ​​in de kolom 'patiënt', terwijl de gegevenswaarden ('A ', 'A', 'B', 'C', 'A', 'C', 'C', 'B'), (21, 22, 24, 21, 20, 24, 22, 22) en ( 2, 3, 1, 1, 2, 3, 2, 1) staan ​​respectievelijk in de kolommen 'groep', 'leeftijd' en 'bloedflesjes'. Stel dat we de som van de waarden in de kolom 'blood_bottles' moeten bepalen door de waarden in de kolom 'groep' te groeperen.



Voor groepsgegevens 'A' is de som van de waarden van 'blood_bottles' 7. Voor groepswaarden 'B' en 'C' is de som van de waarden van 'blood_bottles' respectievelijk 2 en 6. We kunnen ook meerdere kolommen groeperen om de som voor elke groep te bepalen.

Zoals kan worden opgemerkt, hebben we een lijst met kolomlabels doorgegeven, d.w.z. ['patiënt', 'groep'] binnen de groupby()-functie om de groepen categorieën in elke gespecificeerde kolom te maken. Voor elke groep gespecificeerde kolommen hebben we de som van waarden bepaald in 'blood_bottles'. 'Ali' staat bijvoorbeeld in de kolom 'groep' de waarden A en C. In groep A is de som van de waarden van 'blood_bottles' voor Ali 2 en 5 in groep 'C'.

Voorbeeld # 02: Meerdere functies toepassen op een enkele kolom van dataframe met de functie groupby.agg()

Er kunnen meerdere aggregaties worden toegepast met de methode 'groupby()' met behulp van de panda-functie agg(). Een oproepbare lijst kan aan de methode worden doorgegeven. Laten we eens kijken hoe we onze gegevens kunnen aggregeren met behulp van de ingebouwde methoden van de numpy-bibliotheek. In tegenstelling tot het vorige voorbeeld, passen we meerdere functies toe op een enkele kolom van het dataframe. De functie pd.DataFrame() wordt gebruikt om hiervoor een dataframe te maken met ten minste één kolom met numerieke waarden.


Het vereiste dataframe is gemaakt met één numerieke kolom, d.w.z. 'cijfers' met de waarden 41, 40, 35, 39, 49, 31, 34 en 42. Er zijn nog 3 kolommen 'student', 'vakken' en 'graad' in ons dataframe dat in groepen kan worden verdeeld met behulp van de groupby()-functie. De waarden in kolom 'studenten' en 'vakken' zijn ('Harry', 'Ron', 'Harry', 'Lana', 'Sam', 'Ron', 'Lana', 'Max') en ('C++' , 'JAVA', 'Python', 'Python', 'AI', 'JAVA', 'C++', 'AI'). Terwijl de kolomgraad de gegevenswaarden als strings bevat, d.w.z. ('Ms', 'Bs', 'Bs', 'Ms', 'Ms', 'Ms', 'Bs', 'Bs'). Stel dat we de gegevens van kolom 'onderwerpen' moeten groeperen en zowel het gemiddelde als de som van kolom 'markeringen' voor elke gegroepeerde gegevens moeten bepalen.

We hebben de naam van de kolom 'onderwerpen' gespecificeerd als een tekenreeks binnen de groupby()-functie om de gegevens om te zetten in groepen categorieën. Voor de kolom merken hebben we de methode agg() gebruikt en binnen de functie agg() hebben we de numpy-functies np.sum en np.mean gespecificeerd om de som en het gemiddelde van de cijfers van elke groepsgegevens in kolomonderwerpen te vinden. De som en gemiddelde waarde voor groepswaarde ‘AI’ zijn respectievelijk 91 en 45,5. De som van de punten voor de waarde 'C++' is 75 en de gemiddelde waarde is 37,5. Voor groep JAVA is de som van de punten 71 en de gemiddelde waarde 35,5, terwijl de som en de gemiddelde waarde voor Python respectievelijk 74 en 37 zijn.

Voorbeeld # 03: Meerdere functies toepassen op de meerdere kolommen van het dataframe met de functie groupby.agg()

In plaats van verschillende functies toe te passen op de kolom van een enkel dataframe, kunnen we meerdere functies toepassen op verschillende numerieke kolommen. We kunnen een woordenboek in de functie agg() gebruiken als invoer om een ​​specifieke aggregatiemethode toe te passen op de kolommen van verschillende dataframes. Laten we de panda's en numpy-bibliotheken importeren voordat we een dataframe met meerdere numerieke kolommen maken.

Er zijn vier kolommen in het nieuw gemaakte dataframe met de namen 'speler', 'minste_score', 'hoogste_score' en 'locatie'. In de kolom 'speler' hebben we de namen van enkele spelers opgeslagen als stringgegevenswaarden ('Leo', 'Alex', 'Leo', 'Fin', 'Leo', 'Alex', 'Fin', ' Fin'), in kolom 'minste_score' staan ​​de laagste scores van spelers voor sommige wedstrijden (12, 34, 2, 21, 9, 1, 0, 34), terwijl we in kolom 'highest_score' de hoogste scores van de spelers hebben (12, 34, 2, 21, 9, 1, 0, 34) en in kolom 'locatie' staan ​​de namen van locaties waar de spelers hun wedstrijden hebben gespeeld ('France', 'England', 'Dubai', ' Dubai', 'Engeland', 'Frankrijk', 'Dubai', 'Frankrijk').

Laten we aannemen dat we na het groeperen van de gegevens in de kolom 'spelers' het gemiddelde moeten vinden voor de kolomwaarden 'minste_score' en de som voor de gegevenswaarden van de 'hightest_score' voor elke groep.

Binnen de agg()-functie hebben we een python-woordenboek {'highest_score': 'sum', 'least_score': 'mean'} doorgegeven om de som en gemiddelde waarde voor een opgegeven kolom voor elke groep te vinden. Het is te zien dat de gegroepeerde waarde Alex de som heeft van de 'highest_score'-waarde 132 en het gemiddelde van de 'least_score'-waarde 17,5. Voor ‘Fin’ is de som van de waarden 199 en het gemiddelde is 18.33333333 in respectievelijk de kolommen ‘highest_score’ en ‘least_score’. De groepswaarde Leeuw heeft een somwaarde van 180 in ‘highest_score’ en een gemiddelde waarde van 7.666667 in ‘least_score’.

Conclusie

In deze zelfstudie hebben we de groupby()- en aggregatiefuncties in panda's besproken. We hebben ook besproken hoe de functie groupby.agg() te gebruiken. We hebben in dit artikel drie voorbeelden geïmplementeerd om u te leren hoe u een enkele aggregatiefunctie op een dataframekolom kunt gebruiken door de gegevens van enkele en meerdere kolommen te groeperen, hoe u meerdere aggregatiefuncties toepast op een enkele kolom van een dataframe en hoe u meerdere aggregatiefuncties op de meerdere kolommen van het dataframe met behulp van de groupby.agg()-functie.