以下示例:
Offer Client amount
'Off1' 'C1' 1000
'Off1' 'C1' 10
'Off1' 'C2' 2222
'Off1' 'C3' 0
'Off1' 'C3' 10
'Off2' 'C4' 11
'Off2' 'C1' 2342
'Off3' 'C3' 2131
'Off3' 'C100' 121
'Off3' 'C1' 1231
'Off3' 'C1' 31
我想根据每个要约和客户汇总数据,以获得最大金额。
结果将是:
Offer Client amount
'Off1' 'C1' 1000
'Off1' 'C2' 2222
'Off1' 'C3' 10
'Off2' 'C4' 11
'Off2' 'C1' 2342
'Off3' 'C3' 2131
'Off3' 'C100' 121
'Off3' 'C1' 1231
看来你需要使用max
汇总agg
和多个函数:
df1 = df.groupby(['Offer', 'Client'], as_index=False)['amount'].max()
print (df1)
Offer Client amount
0 'Off1' 'C1' 1000
1 'Off1' 'C2' 2222
2 'Off1' 'C3' 10
3 'Off2' 'C1' 2342
4 'Off2' 'C4' 11
5 'Off3' 'C1' 1231
6 'Off3' 'C100' 121
7 'Off3' 'C3' 2131
df2 = (df.groupby(['Offer', 'Client'])['amount']
.agg(['min','max'])
.add_prefix('amount_')
.reset_index())
print (df2)
Offer Client amount_min amount_max
0 'Off1' 'C1' 10 1000
1 'Off1' 'C2' 2222 2222
2 'Off1' 'C3' 0 10
3 'Off2' 'C1' 2342 2342
4 'Off2' 'C4' 11 11
5 'Off3' 'C1' 31 1231
6 'Off3' 'C100' 121 121
7 'Off3' 'C3' 2131 2131