Python 按多个和进行聚合

Python 按多个和进行聚合,python,pandas,Python,Pandas,新手问题。我想使用两个汇总列计算dataframe列,如下所示: grouped_columns = df1.groupby(['Parent1', 'Parent2']).agg(Attr_fac = ('Exposure1', 'sum') / ('Exposure2', 'sum')) 持续获取类型错误:/:“tuple”和“tuple”的操作数类型不受支持 Exposure1和Exposure2是从excel文件读入的数字列。请帮帮我,我做错了什么?你不能真的做('Exposure1'

新手问题。我想使用两个汇总列计算dataframe列,如下所示:

grouped_columns = df1.groupby(['Parent1', 'Parent2']).agg(Attr_fac = ('Exposure1', 'sum') / ('Exposure2', 'sum'))
持续获取类型错误:/:“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()

这就是罪魁祸首
('Exposure1','sum')/('Exposure2','sum')


在这个
('Exposure1','sum')
是一个元组,
('Exposure2','sum')
是另一个元组。并且没有为元组定义
/
操作。请用示例数据框解释您试图实现的目标。

我试图将曝光1的合计值除以曝光2的合计值。 我可以通过以下方式获取Exposure1的和值:grouped_columns=df1.groupby(['Parent1','Parent2']).agg(Attr_fac=('Exposure1','sum'))。我想添加额外的sum列(与此不同)

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