sksoumik
sksoumik

Reputation: 915

How to make new dataframe columns from all the unique values in some particular column?

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

Answers (1)

SeaBean
SeaBean

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

Related Questions