2016-05-24 25 views
1

würde Ich mag ein Wörterbuch der Form konvertieren:Python: Mehrdimensionale Wörterbuch Array

1: [' Ma','Ant','Man','io'] 2: [' Sc','Alb','Man'] 3: [' Sc','Alb','Sch','bre']

an eine Matrix, in der alle möglichen Werte sind die Spalten und Schlüssel sind Indizes. Jede Zelle der Matrix sollte 1 enthalten, wenn der entsprechende Wert (Spaltenkopf) im Schlüssel und sonst 0 vorhanden ist.

' Ma' 'Ant' 'Man' 'io' ' Sc','Alb','Sch','bre' 1: 1 1 1 1 0 0 0 0 2: 0 0 1 0 1 1 0 0 3: 0 0 0 0 1 1 1 1

Ich weiß nicht, von wo ich anfangen soll und wie Pandas und Datenrahmen verwenden, um dies zu erledigen.

Antwort

4

können Sie pd.DataFrame.from_dict verwenden das Wörterbuch zu laden, dann pd.get_dummies verwenden, um die 0/1 Werte zu erhalten:

d = {1: ['Ma','Ant','Man','io'], 2: ['Sc','Alb','Man'], 3: ['Sc','Alb','Sch','bre']} 
df = pd.DataFrame.from_dict(d, orient='index') 
df = pd.get_dummies(df, prefix='', prefix_sep='').astype(int) 

Die resultierende Ausgabe:

Ma Sc Alb Ant Man Sch bre io 
1 1 0 0 1 1 0 0 1 
2 0 1 1 0 1 0 0 0 
3 0 1 1 0 0 1 1 0 
+0

Perfect. Vielen Dank! – user2804064

Verwandte Themen