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

在Pandas DataFrame中筛选指定学生并实现CSC103成绩条件判断

解决Pandas筛选学生并判断成绩的问题

先帮你梳理下原代码里的两处关键问题,再给出修正后的完整实现:

原代码的问题点

  • 注册编号FA15-BSE-081是字符串类型,必须用单/双引号包裹,否则Python会把它当成变量减法运算,直接报错
  • 筛选后得到的df是单行DataFrame,直接用df.CSC103 >=70会返回布尔Series,放在if条件里会触发Pandas警告,需要提取单个标量值判断

修正后的完整代码

import pandas as pd

# 读取目标Excel文件及工作表
df_xlsx = pd.read_excel('/content/FA15-BSE.xlsm', sheet_name='Final')

# 筛选指定注册编号的学生数据(注意字符串要加引号)
target_student = df_xlsx[df_xlsx['Registration#'] == 'FA15-BSE-081']

# 先判断是否找到对应学生,避免空数据报错
if not target_student.empty:
    # 提取该学生CSC103科目的成绩(取第一行的标量值)
    csc_score = target_student['CSC103'].iloc[0]
    if csc_score >= 70:
        print('hi')
else:
    print("未找到注册编号为FA15-BSE-081的学生")

额外优化说明

  • 加入了空DataFrame检查:防止找不到对应学生时,后续取成绩的操作抛出异常
  • 用iloc[0]提取单个成绩值:把Series转为标量,消除if判断时的Pandas警告

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:32:18