2016-01-29 2 views
3

У меня есть pandasgroupby команду, которая выглядит следующим образом:Панды GroupBy - именование совокупного выходного столбца

df.groupby(['year', 'month'], as_index=False).agg({'users':sum}) 

Есть ли способ, что я могу назвать agg выход что-то другое, чем «пользователей» во время команды GroupBy? Например, что, если бы я хотел, чтобы сумма пользователей была total_users? Я мог бы переименовать столбец после завершения groupby, но задаюсь вопросом, есть ли другой способ.

ответ

2

согласно docs:

Если ДИКТ пройдена, ключи будут использоваться для названия столбцов. В противном случае имя функции (хранится в объекте функции) будет .

В работе [58]: сгруппированы [ 'D'] AGG. ({ 'Результат1': np.sum, ....:
'result2': np.mean})

В ваш случай:

df.groupby(['year', 'month'], as_index=False).users.agg({'total_users': np.sum}) 
+0

то отличный ответ! в этом случае ** пользователи ** - это поле, которое вы агрегируете, и ** total_users ** - новое имя поля, которое вы указываете. –

1

Мне нравится @Alexander ответ, но есть также add_prefix:

df.groupby(['year','month']).agg({'users':sum}).add_prefix('total_') 
Смежные вопросы