Heim > Backend-Entwicklung > Python-Tutorial > Wie kann die Schmelzfunktion von Pandas breite Datenrahmen in ein gewünschtes langes Format mit zusätzlichen Spalten umformen?

Wie kann die Schmelzfunktion von Pandas breite Datenrahmen in ein gewünschtes langes Format mit zusätzlichen Spalten umformen?

Barbara Streisand
Freigeben: 2024-12-08 08:40:12
Original
914 Leute haben es durchsucht

How Can Pandas' Melt Function Reshape Wide Dataframes into a Desired Long Format with Additional Columns?

Pandas-Schmelzfunktion zur Datentransformation

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'])
Nach dem Login kopieren
   Amy  Bob  Carl  Chris  Ben  Other  Year
0    2    4     7      8    1      3  2013
1    9    2     4      5    5      6  2014
Nach dem Login kopieren

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')
Nach dem Login kopieren

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
...
Nach dem Login kopieren

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
Nach dem Login kopieren

Der Datenrahmen kann jetzt mit der Spalte „Gruppe“ aktualisiert werden:

m['Group'] = m['Name'].map(d2)
Nach dem Login kopieren

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'
Nach dem Login kopieren

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
...
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage