0
我试图使用.agg函数创建一个应用程序,可以进任何算术函数(通常SUM,AVG,divis &减法),与任何列,然后可以使用这些结果来执行第二个算术函数,但我无法找出正确的方法来做到这一点。的Python /大熊猫.agg功能
尝试1(两个聚合分离成两个步骤):
aggregation = {
'Att': {'metric_numerator': 'sum'},
'Enr': {'metric_denominator': 'sum'},
}
df_aggregated = data_filtered.groupby(groupby_columns).agg(aggregation)
aggregation2 = {
'calculated_rate': lambda x: (x['metric_numerator'] - x['metric_denominator']) * 100
}
groupby_list.append('metric_numerator')
groupby_list.append('metric_denominator')
input_df = input_df.groupby(groupby_list).agg(aggregation2)
注意:第一个聚合的工作原理,但第二步不
尝试#2(包括在一个所有聚合字典(首选)):
aggregation = {
'Att': {'metric_numerator': 'sum'},
'Enr': {'metric_denominator': 'sum',
'AGG': lambda x: (x['metric_numerator'] - x['metric_denominator']) * 100}
}
df_aggregated = data_filtered.groupby(groupby_columns,).agg(aggregation)
注:此失败,因为我对“AGG”计算错误的语法,但我不知道它应该是什么
谢谢您的帮助。如果您认为.agg函数不是我应该使用的,我也会接受建议。