如何从某个特定列中的所有唯一值创建新的数据框列?
我有以下数据框,
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
有什么办法可以做到这一点吗?
回答
您可以使用.str.get_dummies(),如下所示:
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