如何在Pandas中合并公共分类列上的行

2024-07-05 09:23:24 发布

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

我有以下数据框,我想将其转换为一种新格式,根据“approver_type”中的分类值将所有者和审批者分开。这将导致基于“gid”值的行与包含组各自所有者和审批者的单独列进行合并。在

开始数据帧:

>>> sourcedf
   gid group_name approver_type approver_name
0    5        foo         owner           joe
1    6        bar      approver          john
2    7        baz         owner          jill
3    7        baz      approver          bill
4    5        foo      approver           bob
5    7        baz      approver         jimmy

所需数据帧:

^{pr2}$

Dict复制源数据:

{'gid': {0: 5, 1: 6, 2: 7, 3: 7, 4: 5, 5: 7}, 'group_name': {0: 'foo', 1: 'bar', 2: 'baz', 3: 'baz', 4: 'foo', 5: 'baz'}, 'approver_type': {0: 'owner', 1: 'approver', 2: 'owner', 3: 'approver', 4: 'approver', 5: 'approver'}, 'approver_name': {0: 'joe', 1: 'john', 2: 'jill', 3: 'bill', 4: 'bob', 5: 'jimmy'}}

Tags: 数据namefootypegroupbarbazjohn
1条回答
网友
1楼 · 发布于 2024-07-05 09:23:24

pivot_table与自定义aggfunc:join一起使用

df.pivot_table(index=['gid','group_name'],columns='approver_type',values='approver_name',aggfunc=','.join)
Out[36]: 
approver_type     approver owner
gid group_name                  
5   foo                bob   joe
6   bar               john  None
7   baz         bill,jimmy  jill

相关问题 更多 >