Limpan
Limpan

Reputation: 41

How do I distribute values in single column to several columns?

I have a column in a pandas dataframe (using PyCharm) with values:

Colour
-----
Red
Green
Green
Blue
Red

But I would want to split it up to several columns with headings "Red", "Green", "Blue" and then have the values set to 'yes' or 'no'.

Red  Blue Green
--------------
Yes  No  No
No   No  Yes
No   No  Yes
No   Yes No
Yes  No  No

Upvotes: 2

Views: 147

Answers (2)

Mohit Motwani
Mohit Motwani

Reputation: 4792

You can use pd.get_dummies:

df = pd.DataFrame({'Colour': ['Red', 'Green', 'Green', 'Blue', 'Red']})
df
    Colour
0   Red
1   Green
2   Green
3   Blue
4   Red

pd.get_dummies(df['Colour']).replace({0:'No', 1:'Yes'})
     Blue            Green  Red
0     No              No    Yes
1     No              Yes   No
2     No              Yes   No
3     Yes             No    No
4     No              No    Yes

Upvotes: 0

yatu
yatu

Reputation: 88276

You can use Series.str.get_dummies:

df.Colour.str.get_dummies().replace({1:'Yes', 0:'No'})

   Blue Green Red
0   No    No  Yes
1   No   Yes   No
2   No   Yes   No
3  Yes    No   No
4   No    No  Yes

Upvotes: 1

Related Questions