python - 单元格中的多个值 - 如何重组它们

标签 python pandas dataframe

我有这个:

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/

相关文章:

python - 在 Altair 中将图例制作成多列

r - 根据另一列的值删除一列中的重复信息

python - pandas .iloc 和 .iat 之间的区别?

python - 如何根据另一列滚动函数的结果计算 pandas DataFrame 列的值

python - 使用 init.sage 启动 sage CLI

python - CertificateValidationUnsupported 在 Python 2.4 上使用 oauth2/httplib2

Python Mechanize 文件下载

python - 如何自动将字符串转换为 Pandas 中的列表或集合?

python - 根据条件拆分列值

python - 使用 cx_Oracle 包在 python 环境中执行的 Oracle SQL 查询中获取动态日期