从另一列的值列表创建多个列

2024-06-16 10:52:56 发布

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

我的数据帧看起来像:

Groupe       Id   MotherName   FatherName    Field
Advanced    56    Laure         James        English-107,Economics, Management, History, Philosophy
Middle      11    Ann           Nicolas      Web-development, Java-2
Advanced    6     Helen         Franc        Literature, English-2
Beginner    43    Laure         James        Mathematics, History, Philosophy, Literature
Middle      14    Naomi         Franc        Java-2, Management, English-107

为了进一步处理数据,我需要拆分Field列,并将其替换为多个列,如下所示:

^{pr2}$

所以这些列可以附加到初始数据帧。我不知道怎么做,因为基本的分裂就像

pd.DataFrame(df.Field.str.split(',',1).tolist())

不能解决我的问题,因为我需要的列不仅基于列表中的位置,还基于列表中的每个唯一值。你知道我该怎么做吗?在


Tags: 数据middlefield列表englishjavamanagementhistory
1条回答
网友
1楼 · 发布于 2024-06-16 10:52:56

您可以使用^{}^{}

print pd.concat([df['Id'], df['Field'].str.get_dummies(sep=",")], axis=1)
   Id  Economics  English-107  English-2  History  Java-2  Literature  \
0  56          1            1          0        1       0           0   
1  11          0            0          0        0       1           0   
2   6          0            0          1        0       0           1   
3  43          0            0          0        1       0           1   
4  14          0            1          0        0       1           0   

   Management  Mathematics  Philosophy  Web-development  
0           1            0           1                0  
1           0            0           0                1  
2           0            0           0                0  
3           0            1           1                0  
4           1            0           0                0  

如果需要计数值,可以使用^{}(我添加一个字符串Economics进行测试):

^{pr2}$

相关问题 更多 >