Сгруппировать и сложить несколько столбцов панд - PullRequest
0 голосов
/ 11 мая 2019

Я пытаюсь сгруппировать несколько столбцов.С одним столбцом это просто, просто df.groupby('c1').['c3].sum()

Исходный кадр данных

c1    c2    c3
1     1    2
1     2    12
2     1    87
2     2    12
2     3    87
2     3    13

Желаемый результат

c2   c3(c1_1)    c3(c1_2)
1    2           87
2    12          12
3    (0?)        100

Где c3 (c1_1) означает сумму столбца c3, гдеc1 имеет значение 1

Я понятия не имею, как применить groupby к этому.Было бы неплохо, если бы кто-то показал не только, как решить, но и что почитать, чтобы не было таких глупых вопросов

1 Ответ

0 голосов
/ 11 мая 2019

Вы можете группировать по нескольким столбцам одновременно, предоставив список для groupby.Если вы не возражаете против форматирования выходных данных немного по-другому, вы можете достичь этого результата с помощью

In [32]: df.groupby(['c2', 'c1']).c3.sum().unstack(fill_value=0)
Out[32]:
c1   1    2
c2
1    2   87
2   12   12
3    0  100

. Немного потрудившись, это можно преобразовать и в форму, которую вы даете.

...