Разделите два кадра данных с помощью groupby в Python - PullRequest
0 голосов
/ 08 июня 2018

Я пытаюсь выяснить, как разделить два столбца из разных наборов данных, группируя их по общему ключу, чтобы получить процент.

Таблица 1

 Index   ID        sum
    0   100001      7
    1   100002      8
    2   100003      4

Таблица2

     Index    ID   TYPE     sum
        0   100001  A        7    
        1   100002  A        4    
        2   100002  B        4   
        3   100003  A        2    
        4   100003  B        2  

Я хочу разделить переменную sum с table 1 на sum с table 2, сгруппировав по ID и TYPE.

Цель состоит в том, чтобы получить приведенную ниже таблицу, которая представляет собой процент sum от TYPE и ID.

Таблица 3

  Index  ID   TYPE  sum_percent
    0   100001  A     1.0
    1   100002  A     0.5
    2   100002  B     0.5
    3   100003  A     0.5
    4   100003  B     0.5

Iпытался некоторые коды для достижения этого вопроса, как этот ниже, но он выдает сообщение об ошибке.Похоже, проблема в выражении groupby.

`table_1[['sum']].groupby('ID')/table_2[['sum']].groupby('ID')`

1 Ответ

0 голосов
/ 08 июня 2018

Вам не нужно groupby;ваша операция ближе к merge.В этом случае вы можете создать отображение серии из table1:

s = table1.set_index('ID')['sum']

, а затем использовать это для расчета в table2:

table2['sum_percent'] = table2['sum'] / table2['ID'].map(s)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...