Pandas - Spaltenwerte in neue Spalten stapeln
Ich habe einen großen Datenrahmen und speichere viele redundante Werte, die den Umgang mit meinen Daten erschweren. Ich habe einen Datenrahmen der Form:
import pandas as pd
df = pd.DataFrame([["a","g","n1","y1"], ["a","g","n2","y2"], ["b","h","n1","y3"], ["b","h","n2","y4"]], columns=["meta1", "meta2", "name", "data"])
>>> df
meta1 meta2 name data
a g n1 y1
a g n2 y2
b h n1 y3
b h n2 y4
wo habe ich die Namen der neuen Spalten, die ich in @ möchname
und die entsprechenden Daten indata
.
Ich möchte einen Datenrahmen der Form erzeugen:
df = pd.DataFrame([["a","g","y1","y2"], ["b","h","y3","y4"]], columns=["meta1", "meta2", "n1", "n2"])
>>> df
meta1 meta2 n1 n2
a g y1 y2
b h y3 y4
Die Spalten mit dem Namenmeta
sind ungefähr 15+ andere Spalten, die die meisten Daten enthalten, und ich denke nicht, dass sie besonders gut für die Indizierung geeignet sind. Die Idee ist, dass ich viele wiederholte / redundante Daten in @ gespeichert habmeta
im Moment und ich möchte den präsentierten kompakteren Datenrahmen produzieren.
Ich habe einige ähnliche Qs gefunden, kann aber nicht genau bestimmen, welche Operationen ich ausführen muss: Pivot, Re-Index, Stack oder Unstack, etc.
PS - Die ursprünglichen Indexwerte sind für meine Zwecke unwichtig.
Jede Hilfe wäre sehr dankbar.
Frage Ich denke, ist im Zusammenhang mit:
Ich denke, die folgenden Fragen beziehen sich auf das, was ich versuche, aber ich kann nicht sehen, wie ich sie anwenden soll, da ich keine weiteren Indizes erstellen möchte.
Python Pandas - Wie wird eine Pivot-Tabelle mit zwei Werten entstapelt, wobei jeder Wert zu einer neuen Spalte wird?