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

如何借助Python pandas库实现指定格式的数据转换

利用Pandas实现长表转宽表操作

你这个需求是典型的长格式数据表转宽格式数据表的透视需求,直接用pandas内置的透视方法即可实现,操作步骤如下:

  • 导入依赖并加载原始数据
import pandas as pd
# 按照你的数据存储格式选择对应的读取方法,csv用pd.read_csv,excel用pd.read_excel
df = pd.read_excel("你的原始数据存储路径")
  • 执行透视转换
    • 如果你确定原始数据中,同一个行维度+列维度的组合没有重复记录,直接用pivot方法性能更好:
# 参数说明:
# index:传入作为行唯一标识的列名,也就是最终结果里每行代表的实体维度,比如用户ID、姓名
# columns:传入要将其取值拆分为独立新列的分类列,比如科目、考试类型
# values:传入要填充到新生成列中的数值列,比如分数、销售额
df_transformed = df.pivot(
    index="姓名",
    columns="考试类型",
    values="成绩"
).reset_index()
# 按需重命名生成的新列
df_transformed.columns = ["姓名", "期中成绩", "期末成绩"]
  • 如果原始数据存在同维度组合的重复记录,使用pivot_table方法,可自定义聚合规则处理重复值:
df_transformed = df.pivot_table(
    index="姓名",
    columns="考试类型",
    values="成绩",
    aggfunc="max" # 聚合规则可按需替换为mean(平均)、sum(求和)、min(最小值)等
).reset_index()
  • 导出转换完成的结果
# 导出时设置index=False,避免把pandas默认行索引写入文件
df_transformed.to_excel("转换完成的结果文件.xlsx", index=False)

小提示:如果需要多个列共同作为行的唯一标识,给index参数传入列名组成的列表即可,例如index=["班级", "学号", "姓名"]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 14:48:16