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

如何在Python/Excel中对含重复键的数据透视MW列为多列?

实现MW列值转多列的方法(Python/Excel)

Python 实现(基于pandas)

  1. 先安装依赖库(未安装时执行):
    pip install pandas openpyxl
    
  2. 代码实现步骤:
    import pandas as pd
    
    # 读取数据(支持csv/excel格式,替换为你的文件路径)
    df = pd.read_excel("your_data.xlsx")
    # df = pd.read_csv("your_data.csv")
    
    # 给每个分组内的MW值添加序号(分组列根据你的实际列名调整)
    df["mw_index"] = df.groupby(["Type", "Round", "Period", "Season", "Year"]).cumcount() + 1
    df["mw_col_name"] = "MW_" + df["mw_index"].astype(str)
    
    # 透视转换为目标格式
    result_df = df.pivot_table(
        index=["Type", "Round", "Period", "Season", "Year"],
        columns="mw_col_name",
        values="MW",
        aggfunc="first"
    ).reset_index()
    
    # 保存结果到Excel
    result_df.to_excel("pivoted_result.xlsx", index=False)
    
    执行后会生成一个新文件,每个分组对应一行,后续列依次为该分组下的所有MW值。

Excel 实现(两种方案)

方案1:Power Query(推荐)

  1. 选中数据区域(含表头),点击数据选项卡 → 从表格/区域,进入Power Query编辑器。
  2. 选中所有分组列(如Type、Round、Period、Season、Year),点击转换 → 分组依据:
    • 分组依据选已选中的列,新列名设为MW列表,操作选择所有行,点击确定。
  3. 点击MW列表列右侧的展开箭头,选择自定义列,输入公式:Table.Column([MW列表], "MW"),生成MW值的列表列。
  4. 选中新生成的列表列,点击转换 → 提取值,分隔符选一个数据中不存在的符号(如|),点击确定。
  5. 再次点击该列的展开箭头,选择按分隔符拆分列 → 拆分成列,将每个MW值拆为独立列。
  6. 右键重命名列(如MW_1、MW_2...),最后点击关闭并上载,结果会同步到新工作表。

方案2:透视表+辅助列

  1. 在原数据中新增辅助列序号,输入公式(假设分组列为A-E列):
    =COUNTIFS($A$2:A2,A2,$B$2:B2,B2,$C$2:C2,C2,$D$2:D2,D2,$E$2:E2,E2)
    
    下拉填充至所有行,给每个分组内的MW值标记序号。
  2. 插入透视表:行区域拖入所有分组列,列区域拖入序号,值区域拖入MW。
  3. 透视表生成后,选中透视表区域,右键复制,再右键粘贴为值,即可得到目标格式的表格。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 12:25:18