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

如何将矩阵/表格格式数据集转换为table-list结构?

宽表转长表(逆透视)实现方法

你需要完成的结构转换标准称谓是宽表转长表(也叫逆透视、Unpivot操作),核心逻辑是把横向排列的多个指标列(示例中的SP1/SP2/SP3),打平为「维度值-指标类型-指标值」的三行长表结构,目标效果参考下图:
final table
以下是不同场景下可直接复用的实现方案:

方案1:Excel/WPS 无代码操作(适合中小规模数据)

  • 选中全部原始数据区域,点击顶部「数据」选项卡中的「从表格/区域」,将数据加载到Power Query编辑器
  • 选中station列,右键点击选择「逆透视其他列」,编辑器会自动完成结构转换
  • 将自动生成的「属性」列重命名为SP类别、「值」列重命名为对应数值,点击「关闭并上载」即可导出结果,支持百万行级数据稳定处理

方案2:Python Pandas 批量处理(适合大规模自定义数据集)

核心调用pandas内置的melt逆透视函数即可,示例代码可直接复用:

import pandas as pd

# 此处替换为你自己的数据集读取逻辑,支持csv/excel/数据库等多种来源
# df = pd.read_excel("你的原始数据文件路径.xlsx")
df = pd.DataFrame({
    "station": [2,10,34,53,56,57,62],
    "SP1": [0,0,0,0,6,1,1],
    "SP2": [1,3,0,3,0,0,8],
    "SP3": [1,0,0,5,3,0,10]
})

# 执行逆透视转换
result = df.melt(
    id_vars="station",   # 指定保留、不做打平的维度列
    var_name="SP_type",  # 指定转换后的指标类别列名
    value_name="value"   # 指定转换后的数值列名
).sort_values(by=["station", "SP_type"]).reset_index(drop=True)

# 导出转换完成的结果
result.to_csv("转换完成的长表数据.csv", index=False)

运行后输出的结果和目标结构完全一致,哪怕原始数据有上百个SP指标列、数十万行数据,都可以秒级完成处理,不需要手动调整列规则。

方案3:SQL 数据库内直接转换(适合数据存储在数据库的场景)

通过UNION ALL将多列指标逐列拆分为行记录即可,示例代码如下:

SELECT station, 'SP1' AS SP_type, SP1 AS value FROM raw_data_table
UNION ALL
SELECT station, 'SP2' AS SP_type, SP2 AS value FROM raw_data_table
UNION ALL
SELECT station, 'SP3' AS SP_type, SP3 AS value FROM raw_data_table
-- 存在更多SP指标列时,按照上述格式继续追加SQL段即可
ORDER BY station, SP_type;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 12:39:50