You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用函数为学生成绩数据集添加grade列失败,如何解决?

问题分析与解决方案

核心问题总结

你的代码存在三个关键问题,导致grade列无法生成或不符合需求:

  • 定义了函数但未调用,代码逻辑根本没执行
  • 列名错误:使用了不存在的Gave列,而非G1、G2、G3的平均值
  • 及格条件逻辑偏离需求:依赖列的最大值计算阈值,而非固定的14分(20分的70%)

修正后的代码实现

def define_grade(df):
    # 计算G1、G2、G3三列的行平均值
    df['avg_grade'] = df[['G1', 'G2', 'G3']].mean(axis=1)
    # 根据固定阈值14分判断及格状态
    df['grade'] = df['avg_grade'].apply(lambda x: 'Pass' if x >= 14 else 'Fail')
    return df

# 关键步骤:调用函数处理你的数据集(替换成实际DataFrame名称)
df = define_grade(df)
# 查看结果
df.head()

关键修正点说明

  • 调用函数:必须执行define_grade(df)才能触发逻辑,否则函数仅定义未运行
  • 计算平均值:用df[['G1','G2','G3']].mean(axis=1)生成每行的三列均值,匹配需求
  • 固定阈值:直接使用14分作为及格线,避免因数据集最大值波动导致的判断错误

简化版实现(无需函数)

如果只是快速生成目标列,也可以省略函数,直接一行完成:

df['grade'] = df[['G1', 'G2', 'G3']].mean(axis=1).apply(lambda x: 'Pass' if x >=14 else 'Fail')
df.head()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 05:58:25