Konvertieren einer Pandas GroupBy MultiIndex-Ausgabe zurück in einen DataFrame
Beim Durchführen einer Groupby-Operation für einen Pandas DataFrame mit mehreren Indexspalten wird das Ergebnis angezeigt Objekt ist ein DataFrame mit einem hierarchischen Index. Dies kann unpraktisch sein, wenn Sie auf die Daten als einzelne Zeilen zugreifen möchten.
Hier ist ein einfaches Beispiel:
df1 = pd.DataFrame({"City": ["Seattle", "Seattle", "Portland", "Seattle", "Seattle", "Portland"], "Name": ["Alice", "Bob", "Mallory", "Mallory", "Bob", "Mallory"]}) g1 = df1.groupby(["Name", "City"]).count()
Die Ausgabe von g1 ist ein DataFrame mit einem hierarchischen Index:
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 mit einzelnen Zeilen umzuwandeln, können Sie entweder add_suffix und reset_index verwenden Methoden:
g1.add_suffix("_Count").reset_index()
Dadurch wird den Indexspalten ein Suffix hinzugefügt und der Index zurückgesetzt, um einen flachen DataFrame zu erstellen:
Name City City_Count Name_Count 0 Alice Seattle 1 1 1 Bob Seattle 2 2 2 Mallory Portland 2 2 3 Mallory Seattle 1 1
Oder Sie können die Größenmethode und „reset_index“ verwenden Zählen Sie die Anzahl der Zeilen in jeder Gruppe und erstellen Sie einen neuen DataFrame:
DataFrame({'count': df1.groupby(["Name", "City"]).size()}).reset_index()
Dadurch wird ein DataFrame mit einem einzelnen Index erstellt Spalte:
Name City count 0 Alice Seattle 1 1 Bob Seattle 2 2 Mallory Portland 2 3 Mallory Seattle 1
Welchen Ansatz Sie verwenden, hängt von Ihren spezifischen Bedürfnissen ab.
Das obige ist der detaillierte Inhalt vonWie glätte ich einen Pandas GroupBy MultiIndex DataFrame?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!