[英]Sum columns in a pandas dataframe after group by
我有一個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
有沒有辦法在群組之后對列進行求和?
提前致謝
當您創建組時,除非通過聚合或其他方式應用某些功能,否則您不會創建新的數據幀。 您可以在groupby之前添加一個已添加前兩列的列,然后使用sum進行groupby。
df['suma']= x['k1']+x['k2']
df1= df.groupby(['k1','k2'], as_index= False).agg({'suma':'sum'})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.