繁体   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