столбец группы панды затем создайте два других столбца на основе третьего столбца - PullRequest
0 голосов
/ 01 декабря 2018

Я пытаюсь сгруппировать фрейм данных по столбцу и получить итоговые значения «Одобрено» или «Не утверждено» на основе этой группировки, но безуспешно.

Пример:

PlaceTest | Approved    
       21 |        1    
       21 |        0    
       22 |        1    
       22 |        0

Мой желаемый вывод:

PlaceTest | Approved | NotApproved    
       21 |        1 |           1    
       22 |        1 |           1

Спасибо!

Ответы [ 2 ]

0 голосов
/ 01 декабря 2018

Вы можете добиться этого немного другим способом, хотя это двухстрочный процесс.

$ df
   Approved  PlaceTest
0         1         21
1         0         21
2         1         22
3         0         22

Сначала groupby и sum с новым столбцом:

$ df['Not Approved'] = df.groupby('PlaceTest')['Approved'].sum()

наконецснова groupby с fillna

$ df = df.groupby('PlaceTest')['Approved', 'Not Approved'].sum().fillna("1").reset_index()

$ df
   PlaceTest  Approved Not Approved
0         21         1            1
1         22         1            1

Примечание: Работает с версиями панд 0.21.0.

Для версии больше 0.21.0 следует использовать какследует для вышеупомянутого варианта использования:

>>> df.groupby('PlaceTest')['Approved', 'Not Approved'].max().fillna("1").reset_index()
   PlaceTest  Approved Not Approved
0         21         1            1
1         22         1            1
0 голосов
/ 01 декабря 2018

Учитывая

>>> df
   PlaceTest  Approved
0         21         1
1         21         0
2         22         1
3         22         0

вы можете выдать

>>> df.assign(NotApproved=1 - df['Approved']).groupby('PlaceTest').sum().reset_index()
   PlaceTest  Approved  NotApproved
0         21         1            1
1         22         1            1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...