Wenn ein DataFrame mithilfe von GroupBy nach mehreren Spalten gruppiert wird, ist das Ergebnis häufig eine MultiIndex-Serie. In bestimmten Szenarien benötigen Sie die Daten jedoch möglicherweise in einem DataFrame-Format zurück. In diesem Artikel wird gezeigt, wie eine MultiIndex Series-Ausgabe von GroupBy zurück in einen DataFrame konvertiert wird.
Betrachten Sie den folgenden Beispiel-DataFrame:
City Name 0 Seattle Alice 1 Seattle Bob 2 Portland Mallory 3 Seattle Mallory 4 Seattle Bob 5 Portland Mallory
Durch die Verwendung von GroupBy mit mehreren Spalten können wir die Vorkommen zählen:
g1 = df1.groupby(["Name", "City"]).count()
Die Ausgabe von g1 ist jedoch ein MultiIndex Serie:
City Name Name City Alice Seattle 1 1 Bob Seattle 2 2 Mallory Portland 2 2 Seattle 1 1
Um dies wieder in einen DataFrame umzuwandeln, können Sie zwei Ansätze nutzen:
Methode 1: Suffix hinzufügen und Index zurücksetzen
Fügen Sie den Spaltennamen ein Suffix hinzu und setzen Sie den Index zurück:
g1.add_suffix('_Count').reset_index()
Dadurch wird ein DataFrame mit erstellt drei Spalten: Name, Stadt und zwei zusätzliche Spalten mit dem Suffix _Count zur Angabe der Anzahl.
Methode 2: Verwendung des DataFrame-Konstruktors
Alternativ können Sie den DataFrame verwenden Konstruktor mit der .size()-Methode, um die Vorkommen zu zählen und den Index zurückzusetzen:
DataFrame({'count' : df1.groupby( [ "Name", "City"] ).size()}).reset_index()
This Der Ansatz erstellt einen DataFrame mit zwei Spalten: Name, Stadt und einer zusätzlichen Spaltenanzahl, die die Anzahl darstellt.
Das obige ist der detaillierte Inhalt vonWie konvertiere ich eine Pandas GroupBy MultiIndex-Serie in einen DataFrame?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!