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

如何按Class分组生成新DataFrame并获取每组Number的最大值

拆分Pandas DataFrame并计算分组最大值

原始数据

首先定义并生成目标DataFrame:

import pandas as pd

data = [(1,"tom", 23),
        (1,"nick", 12),
        (1,"jim",24),
        (2,"tom", 44),
        (2,"nick", 56),
        (2,"jim",77),
        (3, "tom", 88),
        (3, "nick", 10),
        (3, "jim", 13),
        ]
df = pd.DataFrame(data,columns=['class', 'Name','Number'])

生成的DataFrame如下:

class  Name  Number
0      1   tom      23
1      1  nick      12
2      1   jim      24
3      2   tom      44
4      2  nick      56
5      2   jim      77
6      3   tom      88
7      3  nick      10
8      3   jim      13

实现代码

通过groupby按class分组,循环处理每个分组,打印子DataFrame并计算最大值:

# 按class列分组
for class_num, group_df in df.groupby('class'):
    # 打印当前分组的DataFrame
    print(group_df)
    # 计算并打印该分组Number列的最大值
    max_num = group_df['Number'].max()
    print(f"\nmax_number_class_{class_num} = {max_num}\n")

输出结果

运行上述代码后,将得到如下输出(注:原预期输出中class_1的最大值为笔误,实际计算结果为24):

class  Name  Number
0      1   tom      23
1      1  nick      12
2      1   jim      24

max_number_class_1 = 24

   class  Name  Number
3      2   tom      44
4      2  nick      56
5      2   jim      77

max_number_class_2 = 77

   class  Name  Number
6      3   tom      88
7      3  nick      10
8      3   jim      13

max_number_class_3 = 88

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 05:10:23