pandas groupby max

mac2026-05-14  6

假设数据如下:

array = [ ['a', 2], ['a', 1], ['a', 0], ['b', 2], ['b', 4], ['b', 6], ] data = pd.DataFrame(array, columns=["name", "age"])

数据如下:

name score 0 a 2 1 a 1 2 a 0 3 b 2 4 b 4 5 b 6

求每个人的最高分

需求1,每条记录后面跟一个最大值,即新增一列为每个人的最大值

用transfrom关键字

data['max_socre'] = data.groupby('name')['score'].transform('max') print(data)

结果如下

name score max_socre 0 a 2 2 1 a 1 2 2 a 0 2 3 b 2 6 4 b 4 6 5 b 6 6

需求2, 只保留每个人的最高分

用agg关键字或者直接max

data1 = data.groupby('name')["score"].max().reset_index() data2 = data.groupby('name')["score"].agg('max').reset_index()

结果如下

name score 0 a 2 1 b 6
最新回复(0)