如何将重复循环列表追加到pandas DataFrame中
实现方法
直接用pandas长表转宽表逻辑即可完成需求,相关信息如下:
- 给定固定科目列表:
sub = ["A","B","C","D","E","F"] - 原始长表结构:

- 目标宽表结构(按ID、姓名分组,每个科目单独作为列存储对应分数):

完整代码
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
相关产品推荐
相关产品推荐

