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

求助:基于学号/姓名合并数据并将科目成绩归入新列的实现方案

学生成绩数据合并解决方案

方法一:使用Excel Power Query(无需复杂公式)

  • 选中你的原始数据区域,点击顶部菜单栏「数据」→「从表格/区域」(弹出对话框时勾选「我的表格有标题」,点击确定)
  • 进入Power Query编辑器后,按住Ctrl选中「学号」和「姓名」两列
  • 点击顶部「转换」选项卡→「透视列」
  • 在弹出的设置窗口中:
    • 「值列」选择「成绩」
    • 「列名」选择「科目」
    • 「聚合函数」选择「不要聚合」(每个学号+姓名+科目仅对应一条成绩记录,无需聚合)
  • 点击「确定」后,点击编辑器左上角「关闭并上载」,合并后的表格会自动生成在新工作表中

方法二:使用Python Pandas快速处理

先通过pip install pandas openpyxl安装依赖库,再运行以下代码:

import pandas as pd

# 读取原始数据文件,替换为你的文件路径(支持xlsx、csv格式)
df = pd.read_excel("原始学生成绩.xlsx")

# 按学号、姓名分组,将科目转为列,对应填充成绩
merged_df = df.pivot_table(
    index=["学号", "姓名"],
    columns="科目",
    values="成绩",
    aggfunc="first"  # 针对唯一记录直接取值,避免重复聚合
).reset_index()

# 可选:将列名改为「语文成绩」「数学成绩」这类更直观的名称
merged_df.columns = ["学号", "姓名"] + [f"{subject}成绩" for subject in merged_df.columns[2:]]

# 保存合并后的结果到新文件
merged_df.to_excel("合并后学生成绩.xlsx", index=False)

补充说明

  • Excel的Consolidate功能更适合数值汇总计算,不匹配这种「行转列+唯一值匹配」的场景,Power Query是更适配的工具
  • 手动遍历Python代码容易出现索引匹配错误,用pandas的透视表函数可自动完成分组和列匹配,避免手动逻辑的bug

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 09:42:13