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

如何将重复循环列表追加到pandas DataFrame中

实现方法

直接用pandas长表转宽表逻辑即可完成需求,相关信息如下:

  • 给定固定科目列表:sub = ["A","B","C","D","E","F"]
  • 原始长表结构:
    原始DataFrame格式
  • 目标宽表结构(按ID、姓名分组,每个科目单独作为列存储对应分数):
    目标DataFrame格式

完整代码

import pandas as pd

# 替换为你自己的DataFrame读取逻辑,例如 df = pd.read_excel("你的数据文件.xlsx")
sub = ["A","B","C","D","E","F"]

# 核心行转列逻辑
df_result = df.pivot(
    index=["ID", "Name"],
    columns="Subject",
    values="Marks"
).reset_index()

# 强制科目列按给定sub列表顺序排列,避免自动排序打乱预期列顺序
df_result = df_result[["ID", "Name"] + sub]
# 清除pivot生成的多余列索引名
df_result.columns.name = None

异常适配

如果原始数据中存在同一个ID、Name对应同一科目多条分数记录的情况,把pivot替换为pivot_table,按需指定聚合规则即可:

df_result = df.pivot_table(
    index=["ID", "Name"],
    columns="Subject",
    values="Marks",
    aggfunc="sum" # 可替换为first/mean/max等符合业务需求的聚合方式
).reset_index()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 14:42:21