Heim >Backend-Entwicklung >Python-Tutorial >Wie kann die „Melt'-Funktion von Pandas einen DataFrame mit zusätzlichen Gruppen- und Namensspalten umformen?

Wie kann die „Melt'-Funktion von Pandas einen DataFrame mit zusätzlichen Gruppen- und Namensspalten umformen?

DDD
DDDOriginal
2024-11-28 00:04:111093Durchsuche

How Can Pandas' `melt` Function Reshape a DataFrame with Additional Group and Name Columns?

Pandas-Melt-Funktion: Ein Umformwerkzeug

Problem

Betrachten Sie einen DataFrame df und ein Wörterbuch d. Sie möchten df in eine Tabelle mit zusätzlichen Spalten umwandeln, nämlich Gruppe und Name. Die gewünschte Ausgabe sollte wie folgt aussehen:

    Group   Name  Year  Value
 0      A    Amy  2013      2
 1      A    Amy  2014      9
 2      B    Bob  2013      4
 3      B    Bob  2014      2
 4      B    Ben  2013      1
 5      B    Ben  2014      5
 6      C   Carl  2013      7
 7      C   Carl  2014      4
 8      C  Chris  2013      8
 9      C  Chris  2014      5
10  Other         2013      3
11  Other         2014      6

Lösung

Um diese Umformung zu erreichen, verwenden wir die Pandas-Schmelzfunktion.

m = pd.melt(df, id_vars=['Year'], var_name='Name')

Dadurch wird ein geschmolzener DataFrame erstellt m mit den Spalten Jahr, Name und Wert. Um die Gruppenspalte hinzuzufügen, formen wir d wie folgt um:

d2 = {}
for k, v in d.items():
  for item in v:
    d2[item] = k

Wir ordnen dann d2 m['Name'] zu, um die Gruppenspalte zu füllen.

m['Group'] = m['Name'].map(d2)

Schließlich haben wir Verschieben Sie die „Anderen“ Werte von „Name“ in „Gruppe“:

mask = m['Name'] == 'Other'
m.loc[mask, 'Name'] = ''
m.loc[mask, 'Group'] = 'Other'

Der resultierende DataFrame m entspricht der gewünschten Ausgabe.

Das obige ist der detaillierte Inhalt vonWie kann die „Melt'-Funktion von Pandas einen DataFrame mit zusätzlichen Gruppen- und Namensspalten umformen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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