Reputation: 41
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
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
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