如何在Python/Excel中对含重复键的数据透视MW列为多列?
实现MW列值转多列的方法(Python/Excel)
Python 实现(基于pandas)
- 先安装依赖库(未安装时执行):
pip install pandas openpyxl - 代码实现步骤:
执行后会生成一个新文件,每个分组对应一行,后续列依次为该分组下的所有MW值。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)
Excel 实现(两种方案)
方案1:Power Query(推荐)
- 选中数据区域(含表头),点击数据选项卡 → 从表格/区域,进入Power Query编辑器。
- 选中所有分组列(如Type、Round、Period、Season、Year),点击转换 → 分组依据:
- 分组依据选已选中的列,新列名设为
MW列表,操作选择所有行,点击确定。
- 分组依据选已选中的列,新列名设为
- 点击
MW列表列右侧的展开箭头,选择自定义列,输入公式:Table.Column([MW列表], "MW"),生成MW值的列表列。 - 选中新生成的列表列,点击转换 → 提取值,分隔符选一个数据中不存在的符号(如
|),点击确定。 - 再次点击该列的展开箭头,选择按分隔符拆分列 → 拆分成列,将每个MW值拆为独立列。
- 右键重命名列(如MW_1、MW_2...),最后点击关闭并上载,结果会同步到新工作表。
方案2:透视表+辅助列
- 在原数据中新增辅助列
序号,输入公式(假设分组列为A-E列):
下拉填充至所有行,给每个分组内的MW值标记序号。=COUNTIFS($A$2:A2,A2,$B$2:B2,B2,$C$2:C2,C2,$D$2:D2,D2,$E$2:E2,E2) - 插入透视表:行区域拖入所有分组列,列区域拖入
序号,值区域拖入MW。 - 透视表生成后,选中透视表区域,右键复制,再右键粘贴为值,即可得到目标格式的表格。
内容的提问来源于stack exchange,提问作者user17059762
相关产品推荐
相关产品推荐

