如何从某个特定列中的所有唯一值生成新的dataframe列?

2024-06-28 20:51:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下数据帧

df['Payment Method'].head(6)

输出

                    Payment Method
---------          ---------------------
0                  JCB, AMEX, Diners
1                                nan
2                                nan
3                                nan
4                                NaN
5    VISA, Master, JCB, AMEX, Diners

我想让上面的数据框如下所示:

                     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

我有什么办法可以做到这一点吗


Tags: 数据masterfalsetruedfvisananpayment
1条回答
网友
1楼 · 发布于 2024-06-28 20:51:59

您可以使用^{},如下所示:

df['Payment Method'].str.get_dummies(sep=', ').astype(bool)

输入:

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

结果:

    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

相关问题 更多 >