Heim > Backend-Entwicklung > Python-Tutorial > Wie schmelze ich einen Pandas-DataFrame und wann verwende ich diese Technik?

Wie schmelze ich einen Pandas-DataFrame und wann verwende ich diese Technik?

Barbara Streisand
Freigeben: 2024-12-29 00:52:11
Original
456 Leute haben es durchsucht

How to Melt a Pandas DataFrame and When to Use This Technique?

Melting Pandas DataFrames

Was ist Melt?

Das Schmelzen eines Pandas DataFrame erfordert die Umstrukturierung von einem breiten Format, bei dem jede Spalte eine Variable darstellt. in ein Langformat, in dem jede Zeile eine Beobachtung und jede Spalte ein Merkmal-Wert-Paar darstellt.

So schmelzen Sie a DataFrame

Um einen DataFrame zu schmelzen, verwenden Sie die Funktion pd.melt() und geben Sie die folgenden Argumente an:

  • id_vars: Spalten, die als eindeutige Bezeichner beibehalten werden sollen (normalerweise der Primärschlüssel oder index).
  • value_vars: Spalten, die zusammengeführt (in Zeilen umgewandelt) werden sollen. Wenn nicht angegeben, werden alle Spalten, die nicht in id_vars enthalten sind, zusammengeführt.
  • var_name: Name der Spalte, die die ursprünglichen Spaltennamen enthalten wird.
  • value_name: Name der Spalte, die die ursprüngliche Spalte enthalten wird Werte.

Zum Beispiel, um den folgenden DataFrame zu schmelzen:

import pandas as pd

df = pd.DataFrame({'Name': ['Bob', 'John', 'Foo', 'Bar', 'Alex', 'Tom'],
                   'Math': ['A+', 'B', 'A', 'F', 'D', 'C'],
                   'English': ['C', 'B', 'B', 'A+', 'F', 'A']})
Nach dem Login kopieren

wir können Verwenden Sie:

df_melted = pd.melt(df, id_vars=['Name'], value_vars=['Math', 'English'])
Nach dem Login kopieren

Dadurch wird der geschmolzene DataFrame ausgegeben:

   Name  variable  value
0   Bob    Math     A+
1   John    Math      B
2   Foo    Math      A
3   Bar    Math      F
4   Alex    Math      D
5   Tom    Math      C
6   Bob  English      C
7   John  English      B
8   Foo   English      B
9   Bar  English     A+
10  Alex  English      F
11  Tom   English      A
Nach dem Login kopieren

Wann ist Schmelzen zu verwenden?

Schmelzen ist nützlich, wenn Sie Folgendes benötigen:

  • Umfassende Daten in ein für die Darstellung oder Visualisierung geeignetes Format umwandeln.
  • Bereiten Sie Daten für Modelle für maschinelles Lernen vor die bestimmte Datenformate erfordern.
  • Beobachtungen nach ihren eindeutigen Kennungen gruppieren und Aggregationen oder Transformationen an den geschmolzenen Daten durchführen.

Beispielszenarien

Problem 1 : Konvertieren Sie den DataFrame unten in ein geschmolzenes Format mit den Spalten Name, Alter, Betreff und Note.

df = pd.DataFrame({'Name': ['Bob', 'John', 'Foo', 'Bar', 'Alex', 'Tom'],
                   'Math': ['A+', 'B', 'A', 'F', 'D', 'C'],
                   'English': ['C', 'B', 'B', 'A+', 'F', 'A']})
Nach dem Login kopieren
df_melted = pd.melt(df, id_vars=['Name', 'Age'], var_name='Subject', value_name='Grade')

print(df_melted)
Nach dem Login kopieren

Ausgabe:

   Name  Age Subject Grade
0   Bob   13  English      C
1  John   16  English      B
2   Foo   16  English      B
3   Bar   15  English     A+
4  Alex   17  English      F
5   Tom   12  English      A
6   Bob   13     Math     A+
7  John   16     Math      B
8   Foo   16     Math      A
9   Bar   15     Math      F
10 Alex   17     Math      D
11  Tom   12     Math      C
Nach dem Login kopieren

Problem 2: Filtern Sie den geschmolzenen Datenrahmen aus Problem 1 so, dass er nur Mathematikspalten enthält.

df_melted_math = pd.melt(df, id_vars=['Name', 'Age'], value_vars=['Math'], var_name='Subject', value_name='Grade')

print(df_melted_math)
Nach dem Login kopieren

Ausgabe:

   Name  Age Subject Grade
0   Bob   13    Math     A+
1  John   16    Math      B
2   Foo   16    Math      A
3   Bar   15    Math      F
4  Alex   17    Math      D
5   Tom   12    Math      C
Nach dem Login kopieren

Problem 3: Gruppieren Sie den geschmolzenen DataFrame nach Grad und berechnen Sie die eindeutigen Namen und Themen für jeden Grad.

df_melted_grouped = df_melted.groupby(['Grade']).agg({'Name': ', '.join, 'Subject': ', '.join}).reset_index()

print(df_melted_grouped)
Nach dem Login kopieren

Ausgabe:

  Grade             Name                Subjects
0     A       Foo, Tom           Math, English
1    A+         Bob, Bar           Math, English
2     B  John, John, Foo  Math, English, English
3     C         Bob, Tom           English, Math
4     D             Alex                    Math
5     F        Bar, Alex           Math, English
Nach dem Login kopieren

Problem 4 : Den geschmolzenen DataFrame aus Problem 1 wieder in seinen ursprünglichen Zustand zurückversetzen Format.

df_unmelted = df_melted.pivot_table(index=['Name', 'Age'], columns='Subject', values='Grade', aggfunc='first').reset_index()

print(df_unmelted)
Nach dem Login kopieren

Ausgabe:

   Name  Age English Math
0   Alex   17       F    D
1   Bar   15      A+    F
2   Bob   13       C   A+
3   Foo   16       B    A
4  John   16       B    B
5   Tom   12       A    C
Nach dem Login kopieren

Aufgabe 5: Gruppieren Sie den geschmolzenen DataFrame aus Aufgabe 1 nach Namen und trennen Sie die Fächer und Noten durch Kommas.

df_melted_by_name = df_melted.groupby('Name').agg({'Subject': ', '.join, 'Grade': ', '.join}).reset_index()

print(df_melted_by_name)
Nach dem Login kopieren

Ausgabe:

   Name        Subject Grades
0  Alex  Math, English   D, F
1   Bar  Math, English  F, A+
2   Bob  Math, English  A+, C
3   Foo  Math, English   A, B
4  John  Math, English   B, B
5   Tom  Math, English   C, A
Nach dem Login kopieren

Problem 6: Den gesamten DataFrame in einer einzelnen Wertespalte verschmelzen, wobei eine weitere Spalte die ursprünglichen Spaltennamen enthält.

df_melted_full = df.melt(ignore_index=False)

print(df_melted_full)
Nach dem Login kopieren

Ausgabe:

   Name  Age  variable  value
0   Bob   13    Math     A+
1  John   16    Math      B
2   Foo   16    Math      A
3   Bar   15    Math      F
4  Alex   17    Math      D
5   Tom   12    Math      C
6   Bob   13  English      C
7  John   16  English      B
8   Foo   16  English      B
9   Bar   15  English     A+
10 Alex   17  English      F
11  Tom   12  English      A
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie schmelze ich einen Pandas-DataFrame und wann verwende ich diese Technik?. 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