2017-12-31 129 views
0
>>>table1 
     col1  col2 
row1  A   A 
row2  B   A 
row3  A   B 
row4  B   A 

I Vielen Dank im Voraus nur eine Spalte in dem obigen Datenrahmen in folgenden Datenrahmen mit einer heißen Ausdruck oder andere MethodenSplit Pandas Spalte Prepending mit tatsächlichen Spaltennamen

>>>table1 
     col1_A col1_B col2 
row1  1   0   A 
row2  0   1   A 
row3  1   0   B 
row4  0   1   A 

konvertieren mögen

+0

Chekout pandas.get_dummies https://pandas.pydata.org/pandas-docs/stable/generated/pandas.get_dummies.html –

+0

yep es funktionierte, aber ich will es so (bearbeitet) @ SahilDahiya –

Antwort

1

Die einfachste Methode + concat würde get_dummies verschmelzen zurück -

df 
    col1 col2 
row1 A A 
row2 B A 
row3 A B 
row4 B A 

i = pd.get_dummies(df.col1, prefix='col1') 
j = df.drop('col1', axis=1) # remove the column being OHE'd, thanks to the English puppy. 

pd.concat([i, j], 1) 

     col1_A col1_B col2 
row1  1  0 A 
row2  0  1 A 
row3  1  0 B 
row4  0  1 A 
1

Verwenden pd.get_dummies

In [211]: pd.get_dummies(table1) 
Out[211]: 
     col1_A col1_B col2_A col2_B 
row1  1  0  1  0 
row2  0  1  1  0 
row3  1  0  0  1 
row4  0  1  1  0 
diese
0

Versuchen:

df = pd.DataFrame({"col1":['A','B']*2,'col2':['A','A','B','A']},index=['row1','row2','row3','row4']) 
df 

     col1 col2 
row1 A A 
row2 B A 
row3 A B 
row4 B A 

get_dummies Nur auf der Spalte, die Sie wollen, und dann mit dem Datenrahmen, den Rest der Säulen

df1 = pd.get_dummies(df.loc[:,"col1"]).join(df.loc[:,"col2"]) 
df1 

     A B col2 
row1 1 0 A 
row2 0 1 A 
row3 1 0 B 
row4 0 1 A 
0

Lassen Sie einige Spaltenauswahl und pd.get_dummies und assign verwenden, um zurück zum Dataframe zu kommen.

df[['col2']].assign(**pd.get_dummies(df[['col1']])) 

Ausgang:

 col2 col1_A col1_B 
row1 A  1  0 
row2 A  0  1 
row3 B  1  0 
row4 A  0  1 
Verwandte Themen