Pandas GroupBy Index

Pandas GroupBy Index
Um die Daten in Gruppen zu unterteilen, können wir die Pandas DataFrame -Daten verwenden.GroupBy () Funktion. Wir können die Pandas -Objekte in Datengruppen entlang einer Achse unterteilen. Die formale Definition der Gruppierung ist eine Kennzeichnung von Label-zu-Gruppen-Namen. Ein Objekt ist geteilt, eine Funktion wird angewendet und die Ausgänge werden in einem Gruppenbetrieb kombiniert. Dies ist eine nützliche Methode, um die Operationen auszuführen und die massiven Datenmengen zu aggregieren. Der Pandas Groupby entfernt die GroupBy -Spalten aus der Spaltenliste des Datenframe. In diesem Artikel werden wir zeigen.

So verwenden Sie den GroupBy Index in Pandas

Schauen wir uns die Syntax der Gruppe von GroupBy () an, bevor wir sie auf den Index des DataFrame anwenden.

Syntax:

Datenrahmen.GroupBy (by = None, Axis = 0, Level = None, as_index = true, sort = true, Group_keys = true)

Wo;

von: Eine Zeichenfolge, eine Funktion, eine iterable oder eine Zuordnung.

Achse: Int, null standardmäßig.

eben: Gruppieren Sie die Daten für die Multi-Level-Indexachse auf einer bestimmten Ebene oder hierarchischen Ebenen.

As_index: Dies gilt nur für die DataFrame -Eingabe. Wenn Index = False ist, ist die Ausgabe in "SQL-Stil" gruppiert.

Sortieren: Eine Gruppe von Schlüssel muss sortiert werden. Schalten Sie dies aus, um die Leistung zu steigern. Dies sollte keinen Einfluss auf die Reihenfolge oder die Abfolge von Beobachtungen innerhalb einer Gruppe haben. Die Reihen in jeder Gruppe werden in der von der Gruppe unterhaltsamen Reihenfolge gehalten.

Group_Keys: Beim Aufrufen von Anwenden fügen Sie die Schlüssel der Gruppen zum Index hinzu, um die Teile zu identifizieren: Reduzieren Sie die Dimensionalität des Rückgabetyps, wenn Sie können; Wenn nicht, geben Sie einen konstanten Typ zurück.

Jetzt können Sie die Berechnungen durchführen, während Sie nach den einzelnen oder mehreren Indexspalten unter Verwendung der im folgenden aufgeführten Methoden gruppieren:

Beispiel 1: Finden Sie den Maximalwert der Spalte durch Gruppierung der Indexspalte

Wir erstellen zuerst einen Datenrahmen mit der PD.DataFrame () -Funktion, damit wir die Daten aus dem Index des DataFrame gruppieren und ihren Maximalwert für eine bestimmte Spalte des Datenrahmens bestimmen können. Wir importieren die PANDAS -Bibliothek, bevor wir den Datenrahmen erstellen.

Wir erstellen einen Datenrahmen, der aus drei Spalten besteht: "Team_ID", "Country" und "Score". Die Datenwerte ("001", "002", "001", "001", "003", "003", "002", "001", "002", "003"), ("Spanien", ("Spanien",, "Brasilien", "Brasilien", "Deutschland", "Brasilien", "Spanien", "Deutschland", "Spanien", "Deutschland", "Spanien") und (6, 10, 6, 5, 8, 5 , 8, 9, 5, 8) werden in den Spalten „Team_ID“, „Country“ und „Score“ gespeichert. Wie bemerkt werden, gibt es einen Ganzzahl -Index, der standardmäßig vom Pandas Constructor erstellt wurde. Wir können die Spalten oder Spalten des DataFrame als Index des DataFrame unter Verwendung der Funktion set_index () angeben.

Die Spalte "Team_ID" wird jetzt in einen Index konvertiert. Gruppieren wir den Index mithilfe der Funktion GroupBy () und finden Sie den Maximalwert für jede Gruppe mit Hilfe der MAX () -Funktion.

Durch Angeben der Indexspaltenbezeichnung in der Funktion "GroupBy () als Zeichenfolge konvertieren wir die Daten in drei Gruppen: 001, 002 und 003. Anschließend wird die MAX () -Funktion auf die Spalte "Score" angewendet, um den Maximalwert für jede Gruppe zu finden. Für den Gruppenwert „001“ beträgt der Maximalwert in der Spalte „Punktzahl“ 9. Dann ist 10 der maximale Wert für die Gruppendaten 002, und 8 ist der maximale Wert für die 003 -Gruppendaten.

Beispiel 2: Ermitteln Sie die Wertesumme der Spalte, indem Sie die MultiIndex -Spalten gruppieren

Im vorherigen Beispiel haben wir eine einzelne Spalte des DataFrame als Index des Datenrahmens konvertiert. Jetzt setzen wir die Spalten mit mehreren DataFrame als die DataFrame -Indizes.

Im neu erstellten DataFrame haben wir vier Spalten mit Labels "Group", "Team_ID", "Name" und "Age". In der Spalte "Gruppen" haben wir die Datenwerte ("x", "x", "x", "x", "x", "y", "y", "y", "y", " Y ”). Das "Team_ID" speichert die Werte ("001", "002", "001", "001", "003", "003", "002", "001", "002", "003"). Während die Spalten "Name" und "Alter" aus Datenwerten ("Riz", "Bran", "Kim", "William", "Hardy", "Sam", "Ryan", "Lana", "Jenny" bestehen ("Riz", "Bran", "Kim", "Jenny" , "Ton") und (21, 25, 19, 17, 22, 27, 25, 18, 29, 21). Setzen wir die Spalten der Gruppe und Team_ID als DataFrame -Indizes fest.

Die Liste der Spaltenbezeichnungen ["Gruppe", "team_id"] wird in der Funktion set_index () übergeben. Jetzt fungieren die Spalten Group und Team_ID als Multi-Level-Index. Konvertieren wir die Indexdaten in Gruppen und bestimmen die Wertsumme in der Spalte „Alter“ für jede Gruppe.

Die Funktion bestimmt erfolgreich die Summe der Spaltenwerte „Alter“ für jede Gruppe von Mehrebenenindizes.

Beispiel 3: Ermitteln Sie die Anzahl der eindeutigen Werte, indem Sie eine Indexspalte und eine reguläre Spalte des DataFrame gruppieren

Wir haben gesehen. Jetzt gruppieren wir sowohl die Index- als auch die regulären DataFrame -Spalten, um die Anzahl der eindeutigen Werte in einer bestimmten Spalte zu ermitteln. Für die PD.DataFrame () -Funktion zum Generieren des DataFrame, ein Wörterbuch wird als Eingabe übergeben.

Ein Datenrahmen wird erstellt. Wir erstellen vier Spalten in unserem Datenrahmen. Die Spalte "Abschnitt" hat Stringwerte ("rot", "rot", "rot", "rot", "rot", "blau", "blau", "blau", "blau", "blau"). Die "Schüler" -Spalte speichert die Namen der Schüler als String ("Frey", "Kelly", "Peter", "Tyson", "Jhon", "Sansa", "Cloe", "Randy", "Lance", " Diaz ”). Die Spalte "Probanden" hat Stringwerte als Name der Themen ("C ++", "C ++", "Java", "Python", "Python", "C ++", "C#", "C#", "R", "C ++", "C#", "R", "JS"). Und die Spalte "Position" hat ganzzahlige Werte (3, 1, 3, 2, 1, 5, 4, 6, 4, 7).

Wenn die Spalte "Abschnitt" als DataFrame -Index festgelegt wird.

Wir übergeben eine Liste der Spaltenbezeichnungen (eine Indexspaltenbezeichnung und eine reguläre Spaltenbezeichnung) als Argument in der Funktion "GroupBy (), um die Gruppen zu erstellen. Die Funktion nunique () wird auf die Spalte „Subjekt“ angewendet, um die unterschiedlichen Werte für jede Gruppe zu zählen.

Beispiel 4: Ermitteln Sie den Mittelwert mehrerer Spalten, indem Sie mehrere Indexspalten des Datenrahmens gruppieren

Wir haben die verschiedenen Funktionen in den vorherigen Beispielen auf eine bestimmte Spalte des Datenrahmens angewendet. Jetzt wenden wir die verschiedenen Funktionen auf mehrere Spalten an, nachdem die Indexspalte gruppiert wurde. Wir erstellen einen Beispieldatenrahmen, wie im Folgenden zu sehen ist:

Zunächst setzen wir die Abschnittsspalte als Indexspalte.

Gruppieren wir nun die Indexspaltendaten und bestimmen den Mittelwert und den Summenwert der Spalten "test1" bzw. "test2".

Wir verwenden die Agg () -Funktion und übergeben ein Wörterbuch mit Spaltennamen als Schlüssel und Funktionen/ Operationen als Werte, um die verschiedenen Funktionen auf Spalten "Test1" und "test2" anzuwenden, um die verschiedenen Funktionen anzuwenden. Der Mittelwert der Spalte "test1" ist 7.2 und die Summe der Spalte "Test2" -Werte beträgt 35 für Gruppe A. Für Gruppe B beträgt der Mittelwert der Spalte "Test1" -Werte 6.6 und die Summe der Spaltenwerte „test2“ beträgt 31 31.

Abschluss

In diesem Tutorial haben wir besprochen, wie die Funktion "GroupBy () mit der Indexspalte des DataFrame in Pandas verwendet wird. Zunächst haben wir die Syntax der Gruppe von GroupBy () diskutiert, um ihre Parameter und Funktionen zu verstehen. Wir haben die mehrere Beispiele in diesem Artikel praktisch implementiert, um Ihnen beizubringen, wie die verschiedenen Funktionen in einer bestimmten Spalte oder mehrere Spalten eines Datenrahmens durch Gruppierung der Spalte Index- oder Multilevel -Indexspalten ausgeführt werden können.