如何按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
相关产品推荐
相关产品推荐

