簡體   English   中英

Pandas groupby 聚合多個求和

[英]Pandas groupby aggregation multiple sums

新手問題。 我想使用兩個匯總列來計算 dataframe 列,如下所示:

grouped_columns = df1.groupby(['Parent1', 'Parent2']).agg(Attr_fac = ('Exposure1', 'sum') / ('Exposure2', 'sum'))

不斷收到 TypeError: Unsupported operand type(s) for /: 'tuple' 和 'tuple'

Exposure1 和 Exposure2 是從 excel 文件中讀取的數值列。 請幫忙,我做錯了什么?

你真的不能做('Exposure1', 'sum') / ('Exposure2', 'sum')因此錯誤。 你可以試試:

grouped_columns = (df1.groupby(['Parent1', 'Parent2'])
                      [['Exposure1','Exposure2']].sum()
                      .assign(Attr_fac=lambda x: x['Exposure1']/x['Exposure2'])
                  )

groupby().apply()

grouped_columns = (df1.groupby(['Parent1', 'Parent2'])
                      .apply(lmabda x: x['Exposure1'].sum()/x['Exposure2'].sum())
                  )

這是罪魁禍首('Exposure1', 'sum') / ('Exposure2', 'sum')

在此('Exposure1', 'sum')是一個元組, ('Exposure2', 'sum')是另一個元組。 /操作沒有為元組定義。 請用示例 DataFrame 解釋您要實現的目標。

我試圖將 Exposure1 的總和值除以 Exposure2 的總和值。 我可以得到 Exposure1 的總和值:grouped_columns = df1.groupby(['Parent1', 'Parent2']).agg(Attr_fac = ('Exposure1', 'sum'))。 我想添加額外的總和列(不像這個)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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