python - How to binarize the values in a pandas DataFrame? -


i have following dataframe:

df = pd.dataframe(['male','female', 'female', 'unknown', 'male'], columns = ['gender']) 

i want convert dataframe columns 'male','female' , 'unknown' values 0 , 1 indicated gender.

gender  male  female male     1      0 female   0      1        .        .        .        . 

to this, wrote function , called function using map.

def isvalue(x , value): if(x == value):     return 1 else:      return 0   value in df['gender'].unique():     df[str(value)] = df['gender'].map( lambda x: isvalue(str(x) , str(value))) 

which works perfectly. there better way this? there inbuilt function in of sklearn package can use?

yes, there better way this. it's called pd.get_dummies

pd.get_dummies(df) 

enter image description here

to replicate have:

order = ['gender', 'male', 'female', 'unknown'] pd.concat([df, pd.get_dummies(df, '', '').astype(int)], axis=1)[order] 

enter image description here


Comments