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

如何在Pandas DataFrame中为每个唯一ID生成对应的元素列表

表格格式转换解决方案

你需要完成的是*宽表转长表(逆透视)*操作,常用工具的操作方案如下:

Excel 操作步骤

  • 选中原始表格的全部数据区域
  • 按下Alt + D + P 快捷键调出「数据透视表和数据透视图向导」
  • 选择「多重合并计算数据区域」选项,点击下一步
  • 选择「创建单页字段」选项,点击下一步
  • 将你选中的原始数据区域添加到「所有区域」列表中,点击下一步
  • 选择透视表的生成位置,点击完成
  • 在生成的透视表中,双击右下角的总计单元格,系统会自动生成你需要的长表格式
  • 后续根据实际需求调整列名即可

Python Pandas 操作方案

使用pandas内置的melt方法可以快速完成转换,示例代码如下:

import pandas as pd

# 读取原始表格数据,支持xlsx、csv等常见格式
df = pd.read_excel("你的原始表格路径.xlsx")

# 执行宽表转长表操作
# id_vars参数填写需要保留的固定维度列,例如品类、地区等
# var_name参数填写原表格表头转换后对应的列名,例如月份
# value_name参数填写原表格数值转换后对应的列名,例如销售额
res_df = df.melt(
    id_vars=["品类", "地区"],
    var_name="月份",
    value_name="销售额"
)

# 导出转换后的结果
res_df.to_excel("转换后表格.xlsx", index=False)

SQL 操作方案

如果数据存储在关系型数据库中,可以通过UNION ALL语句完成转换,示例代码如下:

SELECT 品类, 地区, '1月' AS 月份, `1月` AS 销售额 FROM 原始表
UNION ALL
SELECT 品类, 地区, '2月' AS 月份, `2月` AS 销售额 FROM 原始表
UNION ALL
-- 依次补充所有需要转换的月份列即可
SELECT 品类, 地区, '12月' AS 月份, `12月` AS 销售额 FROM 原始表

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 21:06:03