Bei komplexen Datenrestrukturierungsaufgaben in Pandas erweist sich die Schmelzfunktion als leistungsstarkes Werkzeug. Es wandelt Datenrahmen nahtlos von breiten Formaten mit mehreren Spalten in lange Formate mit weniger Spalten um.
In einem praktischen Szenario stellen Sie sich einen Datenrahmen vor, der umgeformt werden muss:
df = pd.DataFrame([[2, 4, 7, 8, 1, 3, 2013], [9, 2, 4, 5, 5, 6, 2014]], columns=['Amy', 'Bob', 'Carl', 'Chris', 'Ben', 'Other', 'Year'])
Amy Bob Carl Chris Ben Other Year 0 2 4 7 8 1 3 2013 1 9 2 4 5 5 6 2014
Um dies umzuwandeln Um den Datenrahmen in ein strukturierteres Format zu konvertieren, können Sie die Schmelzfunktion verwenden:
m = pd.melt(df, id_vars=['Year'], var_name='Name')
Dieser Vorgang generiert Folgendes dataframe:
Year Name value 0 2013 Amy 2 1 2014 Amy 9 2 2013 Bob 4 3 2014 Bob 2 4 2013 Carl 7 ...
Die gewünschte Ausgabe enthält jedoch eine zusätzliche Spalte mit dem Namen „Gruppe“. Um dies zu erreichen, formen Sie das Wörterbuch um:
d2 = {} for k, v in d.items(): for item in v: d2[item] = k
Der Datenrahmen kann jetzt mit der Spalte „Gruppe“ aktualisiert werden:
m['Group'] = m['Name'].map(d2)
Verschieben Sie abschließend „Andere“ aus der Spalte „Name“. Spalte zur Spalte „Gruppe“:
mask = m['Name'] == 'Other' m.loc[mask, 'Name'] = '' m.loc[mask, 'Group'] = 'Other'
Der resultierende Datenrahmen stimmt perfekt mit dem Gewünschten überein Ausgabe:
Year Name value Group 0 2013 Amy 2 A 1 2014 Amy 9 A 2 2013 Bob 4 B 3 2014 Bob 2 B 4 2013 Carl 7 C ...
Auf diese Weise stellt die Pandas-Melt-Funktion Datenwissenschaftlern einen vielseitigen und effizienten Mechanismus zum Umformen von Datenrahmen zur Verfügung, sodass sie Daten für verschiedene Analyse- und Visualisierungszwecke mühelos transformieren und neu organisieren können.
Das obige ist der detaillierte Inhalt vonWie kann die Schmelzfunktion von Pandas breite Datenrahmen in ein gewünschtes langes Format mit zusätzlichen Spalten umformen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!