Heim >Backend-Entwicklung >Python-Tutorial >Wie schmelze und entschmelze ich Pandas-DataFrames zur Datenmanipulation?
Beim Schmelzen eines Pandas DataFrame werden Daten von einem Breitformat in ein Langformat transponiert . Dies ist nützlich, wenn Sie Daten für Analyse-, Visualisierungs- oder andere Zwecke bearbeiten. Lassen Sie uns verschiedene Schmelzszenarien mit Beispielproblemen und den entsprechenden Lösungen untersuchen:
Frage: Wie schmelze ich einen DataFrame, damit der Das folgende Format ist erreicht?
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
Lösung:
Um den DataFrame zu schmelzen, verwenden Sie df.melt(). Geben Sie die id_vars (Spalten, die in der ursprünglichen Form bleiben sollen) sowie var_name und value_name für die neuen Spaltennamen an:
pd.melt(df, id_vars=['Name', 'Age'], var_name='Subject', value_name='Grade')
Frage: Wie schmelze ich den DataFrame aus Problem 1 und filtere das „Englisch“ heraus? Spalte?
Lösung:
Verwenden Sie value_vars in df.melt(), um anzugeben, welche Spalten geschmolzen werden sollen. In diesem Fall ist nur ['Math'] ausgewählt:
pd.melt(df, id_vars=['Name', 'Age'], value_vars='Math', var_name='Subject', value_name='Grade')
Frage: Wie sortiere ich die geschmolzenen Daten? Ordnen Sie die Daten aus Aufgabe 1 der Punktzahl zu und gruppieren Sie die Schüler danach Name?
Lösung:
Verwenden Sie .groupby() und .agg() auf dem geschmolzenen DataFrame, um nach „Grade“ zu gruppieren und die Namen und Themen durch Kommas zu verketten -getrennte Zeichenfolgen:
melted_df.groupby('Grade', as_index=False).agg(", ".join)
Frage:Wie löse ich einen DataFrame auf, der geschmolzen wurde?
Lösung:
Verwenden Sie DataFrame.pivot_table (), um den DataFrame aufzulösen. Geben Sie die Werte, den Index und die Spalten an.
melted_df.pivot_table('Grades', ['Name', 'Age'], 'Subject', aggfunc='first').reset_index().droplevel(level=0, axis=1)
Frage: Wie gruppiere ich den DataFrame nach Namen und Trennen Sie die Fächer und Noten nach Komma?
Lösung:
Den DataFrame zusammenschmelzen und .groupby() und .agg() verwenden, um die Fächer und Noten zu verketten:
pd.melt(df, id_vars=['Name'], var_name='Subject', value_name='Grade').groupby('Name', as_index=False).agg(", ".join)
Frage:Wie schmelze ich alle Spalten in einem DataFrame?
Lösung:
Verwenden Sie df.stack( ).reset_index() zum Transponieren des DataFrame:
pd.melt(df, id_vars=None, var_name='Column', value_name='Value')
Diese Lösungen demonstrieren das Vielseitigkeit von schmelzenden und nicht schmelzenden Pandas-DataFrames zur Manipulation von Daten für verschiedene Zwecke.
Das obige ist der detaillierte Inhalt vonWie schmelze und entschmelze ich Pandas-DataFrames zur Datenmanipulation?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!