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

DDD
Freigeben: 2024-11-28 00:04:11
Original
991 Leute haben es durchsucht

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

Lösung

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

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

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

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

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

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

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!

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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage