Суммируйте столбцы в кадре данных pandas после группировки по - PullRequest
0 голосов
/ 29 марта 2019

У меня есть таблица Excel с ключевыми столбцами (k1, k2) и столбцами количества (от a1 до a12).

Мне нужно сгруппировать по k1, k2 и в результирующем кадре данных суммировать столбцы и сохранять суммы в новом столбце.Вот что я пробовал до сих пор

import numpy as nm
import pandas as pd
df = pd.read_excel('C:\Users\pb\Desktop\py test\Bal.xlsx')
df1=df.groupby(['k1', 'k2'])
#sum a1 thru a12(also tried df['suma'] = df['a1']+df['a2'] 

df1['suma']=df1.apply(lambda x: x['a1'] + x['a2']) 

Вот ошибка, которую я получаю

TypeErrorTraceback (most recent call last) <ipython-input-14-242ac0584a79> in <module>()
      3 df1=df.groupby(['k1', 'k2'])
      4 #sum a1 thru a12
----> 5 df1['sum']=df1.apply(lambda x: x['a1'] + x['a2'])

TypeError: 'DataFrameGroupBy' object does not support item assignment

Есть ли способ суммировать столбцы после группы?

Заранее спасибо

введите описание изображения здесь

1 Ответ

0 голосов
/ 29 марта 2019

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

df['suma']= x['k1']+x['k2']
df1= df.groupby(['k1','k2'], as_index= False).agg({'suma':'sum'})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...