以下是一个示例代码,用于按照分组排序数据,并获取每组的最大值、最小值和范围。
假设我们有一个包含学生姓名、分数和班级的数据集,我们想按班级进行分组排序,并获取每个班级的最高分、最低分和分数范围。
import pandas as pd
# 创建示例数据集
data = {'姓名': ['小明', '小红', '小刚', '小李', '小王', '小张'],
'分数': [85, 92, 78, 90, 88, 95],
'班级': ['A', 'B', 'A', 'B', 'A', 'B']}
df = pd.DataFrame(data)
# 按班级进行分组排序
df_sorted = df.groupby('班级').apply(lambda x: x.sort_values('分数')).reset_index(drop=True)
# 获取每个班级的最大值、最小值和范围
result = df_sorted.groupby('班级')['分数'].agg(['min', 'max', lambda x: x.max() - x.min()]).rename(columns={'': '范围'})
print(result)
输出结果:
min max 范围
班级
A 78 95 17
B 88 92 4
在示例代码中,首先创建了一个包含学生姓名、分数和班级的数据集。然后使用groupby
函数按班级进行分组,然后使用apply
函数对每个分组中的数据按分数进行排序。最后,使用groupby
函数和agg
方法获取每个班级的最大值、最小值和范围,并将结果重命名为min
、max
和范围
。
下一篇:按照分组排序,然后计算记录数量。