我有这个:
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
我不知道如何将用户映射到水果列。 有什么想法吗?
最佳答案
设置ID为索引
df = df.set_index('ID')
然后解析fruit和user列。以水果列为轴并使用 ,
df = pd.concat([df['Consumer'].str.split(',', Expand=True).stack(), df['Fruit'].str.split(', ', Expand=True).stack()], axis=1).rename(columns={0: '用户', 1: '水果'}).pivot_table(index=['ID'], columns=['水果'],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
关于python - 单元格中的多个值 - 如何重组它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60118819/