virupaksha
virupaksha

Reputation: 373

Appending column to dataframe with boolean response

My dataframe is as follows:

In [16]: df
Out[16]:
   name  dep
0  jai  sales
1  bobby  design
2  ram  dev
3 shyam dev design

My intention is to remake the dataframe as follows

In [16]: new_df
Out[16]:
   name  dev design sales 
0  jai 0 1 0
1  bobby  0 1 0
2  ram  1 1 0

I tried the following

new_df["dev"] = df[df["dep"].str.contains('dev')]
new_df["design"] = df[df["dep"].str.contains('design')]

But this gives me the whole dataframe. How do I get a boolean result?

Note: pd.get_dummies does not give me such a result

Upvotes: 0

Views: 29

Answers (1)

Space Impact
Space Impact

Reputation: 13255

Use pd.get_dummies as:

df[['female','male']] = pd.get_dummies(df.gender)
del df['gender']

print(df)
    name  female  male
0    jai       0     1
1  bobby       1     0
2    ram       0     1

print(pd.get_dummies(df.gender))
   female  male
0       0     1
1       1     0
2       0     1

EDIT : If you have multiple strings in a value then use:

df = df.join(df.dep.str.get_dummies(sep=' '))
del df['dep']

print(df)    
   design  dev  sales
0       0    0      1
1       1    0      0
2       0    1      0
3       1    1      0

print(df.dep.str.get_dummies(sep=' '))
   design  dev  sales
0       0    0      1
1       1    0      0
2       0    1      0
3       1    1      0

Upvotes: 1

Related Questions