#python #python-3.x #dataframe
Вопрос:
У меня есть столик:
ID type value
a1 income 100
a1 income 70
bb spending 30
bb spending 20
Как суммировать столбцы с тем же идентификатором по значению, что и одна строка? Se желаемые результаты-это:
ID type value
a1 income 170
bb spending 50
Как это сделать?
Ответ №1:
Вы могли бы попробовать добавить as_index=False
в свой groupby.agg
:
>>> df1.groupby('ID',as_index=False).agg({'type':'first','value':'sum'})
ID type value
0 a1 income 170
1 bb spending 50
Комментарии:
1. спасибо, и что же делает
'type':'first
, делает? могу ли я пройти мимо двух значений?2.
'first'
возвращает первое значение каждой группы. Поэтому, если » тип «= = «другое» в строке 1, приведенный выше результат для a1 покажет «другое», так как это первое значение столбца типа, когда мы группируем по идентификатору (и ID = = «a1»). Тот же процесс повторяется для bb и других идентификаторов.
Ответ №2:
your_table.groupby(['ID', 'type']).sum()
должно сработать
Комментарии:
1. да, но все остальные столбцы исчезают, остаются только тип и значение. и почему его квадратные скобки? в нем говорится, что ошибка типа: объект «метод» не может быть подписан
2. Я отредактировал ответ, это была ошибка с моей стороны. Теперь он должен включать все 3 столбца