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

Python提取矩阵各列中分数≥85的学生及对应科目

解决方案

嘿,作为Python新手你已经做得很棒啦!咱们一步步来实现你想要的需求:

第一步:统一列名(避免大小写/名称不一致坑)

你提供的自定义表头和示例DataFrame里的科目名有大小写差异(比如english vs English、art vs Arts),先把列名统一成小写,避免后续筛选出错:

import pandas as pd

# 你读取xlsx的原有代码
header = ['S.No', 'Name', 'Science', 'english','History','art','Maths']
df = pd.read_excel('matrix.xlsx', header=None, names=header)

# 统一所有列名为小写,消除匹配歧义
df.columns = df.columns.str.lower()

第二步:写个小函数处理高分科目并格式化输出

咱们定义一个函数,专门处理每一行学生数据,找出成绩≥85的科目,再转换成你要的格式:

def format_high_score_line(row):
    # 提取学生名字,转成小写和示例输出一致(不想转的话去掉.lower())
    student_name = row['name'].lower()
    # 提取所有科目成绩(排除序号和名字列)
    score_data = row.drop(['s.no', 'name'])
    # 筛选出成绩≥85的科目名称
    high_score_subjects = score_data[score_data >= 85].index.tolist()
    
    # 如果需要和示例输出一样的缩写(比如arts→art、maths→math),加上这一步
    high_score_subjects = [
        subj[:-1] if subj in ['arts', 'maths'] else subj 
        for subj in high_score_subjects
    ]
    
    # 拼接成指定格式的字符串
    return f"{student_name}[{','.join(high_score_subjects)}]"

第三步:遍历输出结果

最后把函数应用到每一行,打印出你要的格式:

# 遍历每一行生成并打印结果
for output_line in df.apply(format_high_score_line, axis=1):
    print(output_line)

用你提供的示例DataFrame测试

如果想用你给的示例DataFrame验证效果,先把它转换成和xlsx读取后的结构一致,再运行:

# 你的示例DataFrame
p = pd.DataFrame.from_items([
    ('Roy', [80, 75, 85, 90, 95]), 
    ('John', [75, 80, 75, 85, 100]), 
    ('Dave', [80, 80, 80, 90, 95])
], orient='index', columns=['Science', 'English', 'History', 'Arts', 'Maths'])

# 转换成和xlsx读取后的结构(添加Name列)
p = p.reset_index().rename(columns={'index': 'Name'})
p.columns = p.columns.str.lower()

# 应用函数输出结果
for output_line in p.apply(format_high_score_line, axis=1):
    print(output_line)

运行后会输出:

roy[history,art,math]
john[art,math]
dave[art,math]

小提示

  • 如果你的xlsx里成绩列是字符串类型(比如带了百分号),记得先转换成数值:
    score_columns = ['science', 'english', 'history', 'art', 'maths']
    df[score_columns] = df[score_columns].apply(pd.to_numeric, errors='coerce')
    
  • 要是不需要把学生名字转成小写,删掉函数里的.lower()就行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:18:59