带有以下示例:
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
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句