python - Python:将每行中具有多个值的列转换为列标题
问题描述
我有以下数据
Date Name Salary Models
01/01/2019 Jack 50,000 AC, GM, MC
01/01/2019 Sam 30,000 AC, KL
01/01/2019 Los 45,000 GM
我需要转置模型列,但每个模型(用逗号分隔)应该是一列。预期输出为
Date Name Salary AC GM MC KL GM
01/01/2019 Jack 50,000 1 1 1 0 0
01/01/2019 Sam 30,000 1 0 0 1 0
01/01/2019 Los 45,000 0 0 0 0 1
我尝试了 pandas.dummies。
df1 = pandas.get_dummies(df, columns=['Models'])
但问题是我不知道如何根据逗号分割每一行中的模型,然后做 pandas.dummies。非常感谢您的帮助。
解决方案
您可以使用str.get_dummies
:
df.drop('Models',axis=1).join(df.Models.str.get_dummies(', '))
输出:
Date Name Salary AC GM KL MC
0 01/01/2019 Jack 50,000 1 1 0 1
1 01/01/2019 Sam 30,000 1 0 1 0
2 01/01/2019 Los 45,000 0 1 0 0