Как объединить строки в общем категориальном столбце в Pandas - PullRequest
0 голосов
/ 12 октября 2018

У меня есть следующий фрейм данных, который я хотел бы преобразовать в новый формат, который разделяет владельцев и утверждающих на основе категориального значения в '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

Требуемый фрейм данных:

>>> df
    gid group_name owners   approvers
0    5        foo    joe         bob
1    6        bar    NaN        john
2    7        baz   jill  bill,jimmy

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'}}

1 Ответ

0 голосов
/ 12 октября 2018

Использование 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...