Reputation: 915
I have the following dataframe,
df['Payment Method'].head(6)
Outputs
Payment Method
--------- ---------------------
0 JCB, AMEX, Diners
1 nan
2 nan
3 nan
4 NaN
5 VISA, Master, JCB, AMEX, Diners
I want to make the above dataframe like below:
JCB AMEX Diners Master VISA
--------- ---- ---- ------ ----- ----
0 True True True False False
1 False False False False False
2 False False False False False
3 False False False False False
4 False False False False False
5 True True True True True
Is there any way I can do this?
Upvotes: 0
Views: 89
Reputation: 23237
You can use .str.get_dummies()
, as follows:
df['Payment Method'].str.get_dummies(sep=', ').astype(bool)
Input:
import numpy as np
df = pd.DataFrame({'Payment Method': ['JCB, AMEX, Diners', np.nan, np.nan, np.nan, np.nan, 'VISA, Master, JCB, AMEX, Diners']})
Payment Method
0 JCB, AMEX, Diners
1 NaN
2 NaN
3 NaN
4 NaN
5 VISA, Master, JCB, AMEX, Diners
Result:
AMEX Diners JCB Master VISA
0 True True True False False
1 False False False False False
2 False False False False False
3 False False False False False
4 False False False False False
5 True True True True True
Upvotes: 7