首页 > 解决方案 > 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。非常感谢您的帮助。

标签: pythonpython-3.xpandasdataframe

解决方案


您可以使用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

推荐阅读