簡體   English   中英

在group by之后對pandas數據幀中的列求和

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM