You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python:基于两个分类列聚合DataFrame 获取金额最值

Pandas按Offer和Client分组聚合实现方案

原始样本数据

先把你的样本数据转换成Pandas DataFrame,原始数据如下:

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

1. 获取每个(Offer, Client)分组的金额最大值

我们可以用Pandas的groupby()方法按Offer和Client分组,然后调用max()方法获取每组的金额最大值,具体实现代码如下:

import pandas as pd

# 构建原始DataFrame
data = [
    ('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)
]
df = pd.DataFrame(data, columns=['Offer', 'Client', 'amount'])

# 按Offer和Client分组,取金额最大值
max_result = df.groupby(['Offer', 'Client'], as_index=False)['amount'].max()

# 打印结果
print(max_result)

运行后得到的结果和你预期的一致:

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

2. 扩展需求:获取每个客户在每个Offer下的金额最小值和最大值

这个需求可以用agg()方法来同时指定多个聚合函数,一次性获取每组的最小和最大金额,具体代码如下:

# 按Offer和Client分组,同时取金额的最小值和最大值
min_max_result = df.groupby(['Offer', 'Client'], as_index=False)['amount'].agg(min_amount='min', max_amount='max')

# 打印结果
print(min_max_result)

运行后会得到每个分组的最小和最大金额:

Offer Client  min_amount  max_amount
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

补充说明

  • as_index=False参数可以让分组的列(Offer和Client)保持为普通列,而不是变成索引,这样输出格式更贴合你的预期结构。
  • 如果想要保留原始amount列名的多级结构,也可以用agg({'amount': ['min', 'max']}),不过会生成多级列名,你可以根据实际需求选择。

内容的提问来源于stack exchange,提问作者PeCaDe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:06:35