Ich habe folgende Datenstruktur:Flatten eine Eins-zu-Eins-Abbildung in einem Multiindex Pandas Datenrahmen
from collections import OrderedDict
import pandas as pd
d = OrderedDict([
((5, 3, 1), {'y1': 1}),
((5, 3, 2), {'y2': 2}),
((5, 4, 1), {'y1': 10}),
((5, 4, 2), {'y2': 20}),
((6, 3, 1), {'y1': 100}),
((6, 3, 2), {'y2': 200}),
((6, 4, 1), {'y1': 1000}),
((6, 4, 2), {'y2': 2000}),
])
df = pd.DataFrame(
d.values(),
index=pd.MultiIndex.from_tuples(d.keys(), names=['x3', 'x2', 'x1']),
)
Die Tabelle sieht wie
y1 y2
x3 x2 x1
5 3 1 1 NaN
2 NaN 2
4 1 10 NaN
2 NaN 20
6 3 1 100 NaN
2 NaN 200
4 1 1000 NaN
2 NaN 2000
Wie man dort sehen kann eine ein- ist zu-eins-Abbildung zwischen x1 und den Spalten (x1 = 1: y1, x1 = 2: y2), die ich in
y1 y2
x3 x2
5 3 1 2
4 10 20
6 3 100 200
4 1000 2000
Wie abflachen will, kann ich es tun?
Edit: Oder umgekehrt:
y
x3 x2 x1
5 3 1 1
2 2
4 1 10
2 20
6 3 1 100
2 200
4 1 1000
2 2000
Was Sie bisher versucht haben? – Roman