You need to enable JavaScript to run this app. Pandas 实现score ratio≤0.05时分配同组次优Percent学生
优惠活动
大模型
产品
解决方案
定价
更多

Pandas 实现score ratio≤0.05时分配同组次优Percent学生

Pandas低得分占比学生的替换人选分配实现

已完成的前置操作

基于给定的示例学生成绩数据集,已通过分组聚合完成得分占比score ratio列的计算,对应实现逻辑如下:

  1. 初始化示例数据集
    import pandas as pd
    df = pd.DataFrame({
        'Teacher': ['P','P','N','N','N','N','P','N','N','P','P','N'],
        'Class': ['A','A','A','A','B','B','B','C','C','C','C','C'],
        'Student': [1,2,3,4,1,2,3,1,2,3,4,5],
        'Total Score': [75,10,10,5,75,20,5,60,20,10,6,4],
        'Percent': [43,32,30,36,35,28,34,33,31,36,37,29]
    })
    
  2. 计算分组总得分并匹配到原表
    # 按授课教师、班级分组计算每组总得分
    df_2 = df.groupby(['Teacher','Class']).agg({'Total Score': 'sum'}).reset_index()
    # 合并分组总得分到原表
    final_data = pd.merge(df, df_2, on=['Teacher','Class'], how='inner')
    # 计算单学生得分占组内总得分的比例
    final_data['score ratio'] = final_data['Total Score_x'] / final_data['Total Score_y']
    

业务规则拆解

  • 触发条件:当学生的score ratio ≤ 0.05时,需要为其分配替换人选
  • 筛选范围:替换人选必须和触发学生属于同一授课教师、同一班级的分组内
  • 人选标准:取对应分组内Percent值次优的学生作为替换人选(例如教师N带的C班分组内,Percent值排序从高到低为33(学生1)、31(学生2)、29(学生5),次优值31对应的学生2即为规则要求的替换人选)

替换人选逻辑实现

  1. 遍历每个Teacher + Class分组,提取组内按Percent从高到低排序的次优学生编号
    # 生成分组对应的次优学生映射表
    group_second_best = (
        final_data
        .groupby(['Teacher', 'Class'])
        .apply(
            lambda group: group.sort_values('Percent', ascending=False)['Student'].iloc[1]
        )
        .reset_index(name='second_best_student')
    )
    
  2. 将次优学生映射合并回主表,按触发条件生成new_assigned_student列
    final_data = final_data.merge(group_second_best, on=['Teacher', 'Class'], how='left')
    # 满足得分占比阈值条件时填充次优学生,不满足则留空
    final_data['new_assigned_student'] = final_data.apply(
        lambda row: row['second_best_student'] if row['score ratio'] <= 0.05 else None,
        axis=1
    )
    

结果校验

最终生成的new_assigned_student列会严格匹配规则:仅当学生得分占比低于等于0.05时,才会填充同组Percent次优的学生编号,其余场景不填充。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.01 20:45:03