Oracle SQL双透视(Double Pivot)实现问题求助
双透视(Double Pivot)实现方案
Excel操作步骤
- 选中全部原始数据,点击「插入」→「数据透视表」,按提示确认透视表放置位置
- 在透视表字段面板中:
- 把**产品(A列)**拖到「行」区域
- 把B列拖到「列」区域,接着把C列也拖到「列」区域,放在B列字段的下方,形成二级列标题层级
- 把D列拖到「值」区域,默认是求和汇总,若需要其他汇总方式,右键值区域字段→「值字段设置」调整
- 若列标题布局不符合预期,右键列标题→「字段设置」,调整显示格式即可匹配目标效果
Python pandas实现代码
如果用代码处理,用pivot_table直接实现双维度列透视:
import pandas as pd # 假设你的数据存储在DataFrame df中,列名对应为'产品', 'B', 'C', 'D' pivot_result = df.pivot_table( index='产品', columns=['B', 'C'], # 双列维度,按B、C层级排列 values='D', aggfunc='sum', # 汇总方式,按需换成mean、count等 fill_value=0 # 空值填充为0,可根据需求修改 ) # 查看结果 print(pivot_result)
之前没得到预期结果,大概率是没把B、C列设置成层级列维度(Excel里没放对列区域的层级,代码里没把columns设为包含B、C的列表),调整后就能得到目标样式。
内容的提问来源于stack exchange,提问作者Greg Gibble
相关产品推荐
相关产品推荐

