Heim > Backend-Entwicklung > Python-Tutorial > Wie forme ich einen Pandas-DataFrame mithilfe der Melt-Funktion und eines Wörterbuchs um?

Wie forme ich einen Pandas-DataFrame mithilfe der Melt-Funktion und eines Wörterbuchs um?

Barbara Streisand
Freigeben: 2024-11-22 07:08:10
Original
950 Leute haben es durchsucht

How to Reshape a Pandas DataFrame Using the Melt Function and a Dictionary?

Pandas Melt Function: Umformen von Datenrahmen für die Analyse

Frage:

Betrachten Sie einen Datenrahmen mit mehrere Spalten und ein Wörterbuch:

df = pd.DataFrame([[2, 4, 7, 8, 1, 3, 2013], [9, 2, 4, 5, 5, 6, 2014]], columns=['Amy', 'Bob', ' Carl“, „Chris“, „Ben“, „Andere“, 'Jahr'])<br>

d = {'A': ['Amy'], 'B': ['Bob', 'Ben'], 'C': ['Carl', 'Chris']}<br>

Wie formen wir den Datenrahmen um? ähneln der folgenden Struktur, in der die Spalten zusammengeführt und gruppiert werden?

    Gruppenname Jahr Wert<br> 0 A Amy 2013 2<br> 1 A Amy 2014 9<br> 2 B Bob 2013 4<br> 3 B Bob 2014 2<br> 4 B Ben 2013 1<br> 5 B Ben 2014 5<br> 6 C Carl 2013 7<br> 7 C Carl 2014 4<br> 8 C Chris 2013 8<br> 9 C Chris 2014 5<br>10 Andere 2013 3<br>11 Andere 2014 6<br>

Antwort:

Um den Datenrahmen mithilfe der Schmelzfunktion umzuformen, befolgen Sie diese Schritte:

  1. Schmelzen Sie den Datenrahmen:Schmelzen Sie den Datenrahmen mithilfe der Schmelze in ein breites Format Funktion. Dadurch werden die Spalten in Zeilen umgewandelt, wobei der Parameter id_vars verwendet wird, um die Spalten anzugeben, die intakt bleiben sollen.

    m = pd.melt(df, id_vars=['Year'], var_name='Name')
    Nach dem Login kopieren
  2. Erstellen Sie ein Zuordnungswörterbuch: Formieren Sie das um dictionary d, um eine Zuordnung zwischen Spaltennamen und Gruppe zu erstellen Namen.

    d2 = {}
    for k, v in d.items():
        for item in v:
            d2[item] = k
    Nach dem Login kopieren
  3. 'Gruppe' hinzufügen: Ordnen Sie das neu erstellte Wörterbuch d2 der Spalte 'Name' zu, um die Spalte 'Gruppe' hinzuzufügen.

    m['Group'] = m['Name'].map(d2)
    Nach dem Login kopieren
  4. „Andere“ verschieben: „Andere“-Werte aus verschieben Spalte „Name“ in die Spalte „Gruppe“.

    mask = m['Name'] == 'Other'
    m.loc[mask, 'Name'] = ''
    m.loc[mask, 'Group'] = 'Other'
    Nach dem Login kopieren

Der resultierende Datenrahmen enthält die gewünschte abgeflachte Struktur:

print(m)

    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
...    ...    ...    ...    ...
7   2014  Chris      5      C
8   2013    Ben      1      B
9   2014    Ben      5      B
10  2013             3  Other
11  2014             6  Other
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie forme ich einen Pandas-DataFrame mithilfe der Melt-Funktion und eines Wörterbuchs um?. 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