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函數不是我應該使用的,我也會接受建議。