2016-04-19 5 views
0

Betrachten Sie das folgende Beispielwie man get_dummies in Pandas benutzt, wenn verschiedene Kategorien zu einem String ohne Trennzeichen verkettet werden?

df=pd.DataFrame({'col':['ABC','BDE','DE',np.nan,]}) 

df 
Out[216]: 
    col 
0 ABC 
1 BDE 
2 DE 
3 NaN 

ich eine Dummy-Variable für jeden Buchstaben in Spalte erstellen möchten.

In diesem Beispiel haben wir also 5 Dummies: A, B, C, D, E. Ja, in der ersten Reihe 'ABC' zur Kategorie entspricht A und der Kategorie B und Kategorie C

get_dummies fehl

df.col.str.get_dummies(sep='') 
Out[217]: 
    ABC BDE DE 
0 1 0 0 
1 0 1 1 
2 0 0 1 
3 0 0 0 

Tatsächlich erwartete Ausgabe für die erste Zeile sollte

sein
A B C D E 
0 1 1 1 0 0 

Do Hast du andere Ideen? Danke!

Antwort

2

Sie können Series.str.join verwenden, um ein Trennzeichen zwischen jedem Zeichen einzufügen, und verwenden Sie dann get_dummies.

df.col.str.join('|').str.get_dummies() 

Die resultierende Ausgabe:

A B C D E 
0 1 1 1 0 0 
1 0 1 0 1 1 
2 0 0 0 1 1 
3 0 0 0 0 0 
Verwandte Themen