Как агрегировать две колонки и сохранить колонку с датой?

Вопрос-источник

Похожая проблема, однако необходимо агрегировать не одну, а две колонки + сохранить колонку даты.

Пример:

Fruit   Date      Name  Number Summ
Apples  10/6/2016 Bob    7       70
Apples  10/6/2016 Bob    8       80
Apples  10/6/2016 Mike   9       90
Apples  10/7/2016 Steve 10      100
Apples  10/7/2016 Bob    1       20
Oranges 10/7/2016 Bob    2       10
Oranges 10/6/2016 Tom   15       75
Oranges 10/6/2016 Mike  57      285
Oranges 10/6/2016 Bob   65      325
Oranges 10/7/2016 Tony   1        5
Grapes  10/7/2016 Bob    1        1
Grapes  10/7/2016 Tom   87       87
Grapes  10/7/2016 Bob   22       22
Grapes  10/7/2016 Bob   12       12
Grapes  10/7/2016 Tony  15       15

Ожидаемый результат:

Fruit   Date      Name  Number Summ
Apples  10/6/2016 Bob    15     150
Apples  10/7/2016 Bob     1      20
...

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

Пробовал так, но не получилось:

df.groupby(['Fruit', 'Date', 'Name'])['Number', 'Summ'].agg('sum').reset_index()

Ответы (1 шт):

Автор решения: MaxU

не совсем понятно в чем именно проблема - по-моему все работает именно так как должно работать, особенно если расположить столбцы при группировке в нужном порядке:

In [8]: df.groupby(['Name','Fruit', 'Date'])[['Number', 'Summ']].sum().reset_index()
Out[8]:
     Name    Fruit       Date  Number  Summ
0     Bob   Apples 2016-10-06      15   150
1     Bob   Apples 2016-10-07       1    20
2     Bob   Grapes 2016-10-07      35    35
3     Bob  Oranges 2016-10-06      65   325
4     Bob  Oranges 2016-10-07       2    10
5    Mike   Apples 2016-10-06       9    90
6    Mike  Oranges 2016-10-06      57   285
7   Steve   Apples 2016-10-07      10   100
8     Tom   Grapes 2016-10-07      87    87
9     Tom  Oranges 2016-10-06      15    75
10   Tony   Grapes 2016-10-07      15    15
11   Tony  Oranges 2016-10-07       1     5
→ Ссылка