Excel中如何对Unpivoted已逆透视数据执行Pivot透视操作
已逆透视数据转回透视格式的通用解决方案
方案1:Excel 界面操作(适合非代码场景)
- 选中所有原始数据区域
- 点击顶部菜单栏「插入」选项卡,选择「数据透视表」
- 配置数据透视表字段:
- 将不需要透视的前置列全部拖入「行」区域
- 将需要作为新列名的字段(即逆透视时生成的属性/名称列)拖入「列」区域
- 将需要填充的数值字段拖入「值」区域,值汇总方式根据数据特性选「求和/最大值/最小值」即可(如果每组对应唯一值,任意汇总方式结果一致)
- 可选操作:右键生成的透视表选择「转换为普通区域」,可取消透视表联动属性,转为普通可编辑表格
方案2:Power Query 操作(适合需要批量重复执行的场景)
- 选中数据后点击「数据」选项卡下的「从表格/范围」,将数据导入Power Query编辑器
- 选中所有不需要参与透视的列,右键点击「透视其他列」;或者直接选中要作为新列名的字段列,点击顶部「转换」选项卡下的「透视列」
- 在弹出的配置框中,「值列」选择要填充的数值字段,聚合函数根据需求选「不要聚合/求和」,确认后导出数据即可
方案3:Python Pandas 代码实现
核心调用pivot或pivot_table方法即可完成转换,示例代码如下:
import pandas as pd # 读取本地数据,替换为你自己的文件路径 df = pd.read_excel("你的数据文件路径.xlsx") # 无重复分组的场景用pivot方法 pivot_df = df.pivot( index=["列1", "列2", "列3"], # 替换为你实际不需要透视的前置列名 columns="需转为新列名的字段名", values="需填充的数值字段名" ).reset_index() # 存在重复分组需要聚合的场景用pivot_table # pivot_df = df.pivot_table( # index=["列1", "列2", "列3"], # columns="需转为新列名的字段名", # values="需填充的数值字段名", # aggfunc="sum" # 可替换为你需要的聚合规则,比如'mean'、'max' # ).reset_index() # 导出转换后的结果 pivot_df.to_excel("转换后的数据.xlsx", index=False)
内容的提问来源于stack exchange,提问作者user16978245
相关产品推荐
相关产品推荐

