Pandas按学生分组提取各成绩列最高值的实现方法咨询
实现方案
直接使用Pandas的分组聚合功能即可完成需求,代码如下:
# 按Students字段分组,对其余所有列取最大值,且不将分组字段设为索引 final_df = df.groupby("Students", as_index=False).max()
代码说明
groupby("Students"):指定按Students字段拆分数据集as_index=False:设置分组键(即学生名字段)不转为行索引,保持为DataFrame的普通列,最终输出结构和你要求的预期格式完全匹配max():对分组后的所有数值列(也就是所有Result成绩列)计算最大值,刚好满足你每个成绩列取学生最高得分的要求
注意事项
你提供的示例原始数据中存在拼写错误:第5行学生名写为Studen3(缺失字母t),如果希望输出学生名为Student3,提前修正原始数据的对应字段值即可。
内容的提问来源于stack exchange,提问作者Mato
相关产品推荐
相关产品推荐

