Pandas Groupby-Aggregat

Pandas Groupby Aggregat



Die Groupby-Technik ist wichtig, da sie Daten sowohl in Bezug auf die Leistung als auch auf die Codegröße aggregiert. Der Begriff „Gruppieren“ beschreibt typischerweise ein Verfahren, das die folgenden Schritte umfasst:

  • Teilen : Indem wir bestimmte Bedingungen auf Datensätze anwenden, können wir Daten in Gruppen unterteilen.
  • Bewirbt sich : Ein Prozess, bei dem wir individuell eine Methode auf jede Gruppe anwenden.
  • Kombinieren : Ein Verfahren zum Kombinieren verschiedener Datensätze zu einer Datenstruktur nach Verwendung der Methode groupby().

Bei der Aggregation wird eine zusammenfassende Statistik für jede Gruppe berechnet. Die aggregierte Methode gibt für jede Gruppe einen aggregierten Wert (Einzelwert) zurück. Wir können mehrere Aggregationsvorgänge an gruppierten Daten durchführen, nachdem wir die Daten mithilfe der groupby-Funktion in Gruppen unterteilt haben.







Warum bieten Pandas eine Vielzahl von Datenaggregationsmethoden?

Pandas bieten eine breite Palette von Features und Funktionen, die bei der Analyse und Aggregation von Daten helfen. Die Verwendung der Methoden pivot(), groupby() und pivot_table() bietet beispielsweise jeweils eine andere Perspektive, wie Daten aggregiert würden. Sie bieten praktische Ansätze zur Durchführung verschiedener Aufgaben und werden nicht einfach neu verpackt.



So verwenden Sie die .agg()-Funktion in Pandas

Ein einfacher Durchschnitt oder eine Summe von Werten ist die am häufigsten verwendete Aggregationsfunktion. Sie können die Spalte eines Datenrahmens oder mehrere Spalten verwenden, um eine Aggregatfunktion aufzurufen. Sie werden viele Möglichkeiten sehen, Daten mit der Groupby-Methode von Pandas zu aggregieren. Um zu demonstrieren, wie viel einfacher das Verfahren ist, sehen wir uns einige Beispiele unten an. Grundlegende mathematische Operationen wie Summe, Minimum, Maximum, mittlere absolute Abweichung, Standardabweichung, Mittelwert, Median, Varianz und Produkt gehören zu den am häufigsten verwendeten integrierten Aggregationsfunktionen. Um Daten zusammenzufassen, können wir groupby und die Funktion agg() kombinieren.



Beispiel # 01: Bestimmen Sie die Summe der Spalten durch Gruppieren der Daten mit der Funktion groupby.agg()

Wir werden zuerst einen Datenrahmen erstellen, indem wir die Funktion pd.DataFrame() verwenden, damit wir die Daten aus der Spalte oder den Spalten des Datenrahmens gruppieren und dann ihren Mittelwert bestimmen können. Wir müssen die Module von Pandas und die numpy-Bibliothek importieren, bevor wir den Datenrahmen erstellen.





Wie Sie sehen können, haben wir das Pandas-Wörterbuch verwendet, um unseren Datenrahmen zu erstellen. Unser df-Datenrahmen hat vier Spalten: „Patient“, „Gruppe“, „Alter“ und „Blutflaschen“. Die Datenwerte ('Ali', 'John', 'Mike', 'Mike', 'John', 'Ali', 'Ali', 'Mike') sind in der Spalte „Patient“ enthalten, während die Datenwerte ('A ', 'A', 'B', 'C', 'A', 'C', 'C', 'B'), (21, 22, 24, 21, 20, 24, 22, 22) und ( 2, 3, 1, 1, 2, 3, 2, 1) sind jeweils in den Spalten „Gruppe“, „Alter“ und „Blutflaschen“ enthalten. Angenommen, wir müssen die Summe der Werte in der Spalte „Blutflaschen“ ermitteln, indem wir die Werte in der Spalte „Gruppe“ gruppieren.



Für die Gruppendaten „A“ beträgt die Summe der Werte von „Blutflaschen“ 7. Für die Gruppenwerte „B“ und „C“ beträgt die Summe der Werte von „Blutflaschen“ 2 bzw. 6. Wir können auch mehrere Spalten gruppieren, um die Summe für jede Gruppe zu bestimmen.

Wie zu sehen ist, haben wir eine Liste von Spaltenbezeichnungen übergeben, d. h. [‘patient’, ’group’] innerhalb der Funktion groupby(), um die Gruppen von Kategorien in jeder angegebenen Spalte zu erstellen. Für jede Gruppe von angegebenen Spalten haben wir die Summe der Werte in „blood_bottles“ ermittelt. „Ali“ befindet sich beispielsweise in den Spaltenwerten A und C der „Gruppe“. In Gruppe A beträgt die Summe der Werte von „Blutflaschen“ für Ali 2 und in Gruppe „C“ 5.

Beispiel # 02: Anwenden mehrerer Funktionen auf eine einzelne Spalte eines Datenrahmens mit der Funktion groupby.agg()

Mehrere Aggregationen können mit der 'groupby()'-Methode unter Verwendung der Pandas-Funktion agg() angewendet werden. An die Methode kann eine aufrufbare Liste übergeben werden. Schauen wir uns an, wie wir unsere Daten mit den integrierten Methoden der numpy-Bibliothek aggregieren können. Im Gegensatz zum vorherigen Beispiel wenden wir mehrere Funktionen auf eine einzelne Spalte des Datenrahmens an. Dazu wird die Funktion pd.DataFrame() verwendet, um einen Datenrahmen mit mindestens einer Spalte zu erstellen, die numerische Werte enthält.


Der erforderliche Datenrahmen wurde mit einer numerischen Spalte erstellt, d. h. „Noten“ mit den Werten 41, 40, 35, 39, 49, 31, 34 und 42. Es gibt drei weitere Spalten „Student“, „Fächer“ und „Abschluss“. in unserem Datenrahmen, der mit der Funktion groupby() in Gruppen unterteilt werden kann. Die Werte in den Spalten „students“ und „subjects“ sind („Harry“, „Ron“, „Harry“, „Lana“, „Sam“, „Ron“, „Lana“, „Max“) und („C++“ , 'JAVA', 'Python', 'Python', 'AI', 'JAVA', 'C++', 'AI'). Während die Spalte Grad die Datenwerte als Zeichenketten enthält, d. h. ('Ms', 'Bs', 'Bs', 'Ms', 'Ms', 'Ms', 'Bs', 'Bs'). Angenommen, wir müssen die Daten der Spalte „Fächer“ gruppieren und sowohl den Mittelwert als auch die Summe der Spalten „Noten“ für jede gruppierte Daten bestimmen.

Wir haben den Namen der Spalte „Subjects“ als String innerhalb der Funktion groupby() angegeben, um die Daten in Gruppen von Kategorien umzuwandeln. Für die Spalte „marks“ haben wir die agg()-Methode verwendet, und innerhalb der agg()-Funktion haben wir die numpy-Funktionen np.sum und np.mean angegeben, um die Summe und den Durchschnitt der Noten der einzelnen Gruppendaten in den Spaltenthemen zu ermitteln. Summe und Mittelwert für den Gruppenwert „AI“ betragen 91 bzw. 45,5. Die Notensumme für den Wert „C++“ beträgt 75, der Mittelwert 37,5. Für die Gruppe JAVA beträgt die Summe der Noten 71 und der Mittelwert 35,5, während die Summe und der Mittelwert für Python 74 bzw. 37 betragen.

Beispiel # 03: Anwenden mehrerer Funktionen auf mehrere Spalten des Datenrahmens mit der Funktion groupby.agg()

Anstatt verschiedene Funktionen auf die Spalte eines einzelnen Datenrahmens anzuwenden, können wir mehrere Funktionen auf verschiedene numerische Spalten anwenden. Wir können ein Wörterbuch in der Funktion agg() als Eingabe verwenden, um eine bestimmte Aggregationsmethode auf die Spalten verschiedener Datenrahmen anzuwenden. Lassen Sie uns die pandas- und numpy-Bibliotheken importieren, bevor Sie einen Datenrahmen mit mehreren numerischen Spalten erstellen.

Es gibt vier Spalten im neu erstellten Datenrahmen mit den Namen „player“, „least_score“, „highest_score“ und „location“. In der Spalte 'Spieler' haben wir die Namen einiger Spieler als String-Datenwerte gespeichert ('Leo', 'Alex', 'Leo', 'Fin', 'Leo', 'Alex', 'Fin', ' Fin'), in der Spalte 'least_score' gibt es die niedrigsten Punktzahlen von Spielern für einige Spiele (12, 34, 2, 21, 9, 1, 0, 34), während wir in der Spalte 'highest_score' die höchsten Punktzahlen der Spieler haben (12, 34, 2, 21, 9, 1, 0, 34) und in der Spalte „Ort“ stehen die Namen der Austragungsorte, an denen die Spieler ihre Spiele ausgetragen haben („Frankreich“, „England“, „Dubai“, „ Dubai“, „England“, „Frankreich“, „Dubai“, „Frankreich“).

Nehmen wir an, nachdem wir die Daten in die Spalte „Spieler“ gruppiert haben, müssen wir den Durchschnitt für die Werte der Spalte „least_score“ und die Summe für die Datenwerte „hightest_score“ für jede Gruppe finden.

Innerhalb der agg()-Funktion haben wir ein Python-Wörterbuch {‘highest_score’ : ‘sum’, ‘least_score’ : ‘mean’} übergeben, um die Summe und den Durchschnittswert für eine bestimmte Spalte gegen jede Gruppe zu finden. Es ist ersichtlich, dass der gruppierte Wert Alex die Summe aus dem „highest_score“-Wert 132 und dem Durchschnitt des „least_score“-Werts 17,5 hat. Für „Fin“ beträgt die Summe der Werte 199 und der Durchschnitt 18,3333333 in den Spalten „highest_score“ bzw. „least_score“. Der Gruppenwert Leo hat einen Summenwert von 180 in „highest_score“ und einen Durchschnittswert von 7,666667 in „least_score“.

Fazit

In diesem Tutorial haben wir die groupby()- und Aggregationsfunktionen in Pandas besprochen. Wir haben auch die Verwendung der Funktion groupby.agg() besprochen. Wir haben in diesem Artikel drei Beispiele implementiert, um Ihnen beizubringen, wie Sie eine einzelne Aggregationsfunktion für eine Datenrahmenspalte verwenden, indem Sie die Daten einer einzelnen und mehrerer Spalten gruppieren, wie Sie mehrere Aggregationsfunktionen auf eine einzelne Spalte eines Datenrahmens anwenden und wie Sie mehrere anwenden Aggregationsfunktionen für die mehreren Spalten des Datenrahmens mit der Funktion groupby.agg().