单元格中的多个值如何重新构造它们

2024-10-06 16:22:21 发布

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

我有这个:

ID                          Fruit                   Consumer 

01                apple, banana, banana           user1, user2, user13
02                banana, apple, pineapple        user3, user5, user8
03                pear, apple, apple, banana      user27, user1, user2, user33

我需要它来执行以下步骤:

ID         apple            banana               pineapple             pear
01      user1            user2, user13            Nobody               Nobody
02      user5               user3                 user8                Nobody
03      user1, user2        user33                Nobody               user27

我不知道如何将用户映射到水果栏。 有什么想法吗


Tags: idapplebananapearfruituser1pineappleuser2
1条回答
网友
1楼 · 发布于 2024-10-06 16:22:21

将ID设置为索引

df = df.set_index('ID')

然后解析水果和用户列。以果柱为轴心,用,聚合

df = pd.concat([df['Consumer'].str.split(',', expand=True).stack(), df['Fruit'].str.split(',', expand=True).stack()], axis=1).rename(columns={0: 'user', 1: 'fruit'}).pivot_table(index=['ID'], columns=['fruit'], values='user', aggfunc=lambda x: ','.join(x), fill_value='Nobody')


fruit        apple        banana    pear pineapple
ID                                                
1            user1  user2,user13  Nobody    Nobody
2            user5         user3  Nobody     user8
3      user1,user2        user33  user27    Nobody

相关问题 更多 >