数据变换(长⇄宽)

方法概述

数据的长格式(每行一个观测,常含标识列、变量名列与值列)与宽格式(每行一个样本,各变量各占一列)是两种常见的数据组织形式。统计分析、图表绘制与某些建模流程通常更适应长格式,而表格展示与逐步比较中宽格式更为直观。数据变换工具支持两种格式互转,可将”月份+销售额”类的长表展开为”每个月份一列”的宽表,也可将多列宽表折叠为”变量名+值”两列的长表,并支持多值列同时展开与自定义标识列。

计算步骤

1. 数据加载与预处理

  • 支持 CSV 与 Excel 文件上传(不超过 5MB),自动识别常见缺失符号并转为缺失值,删除完全空的行列;提供数据模板与方法介绍下载。

2. 选择转换方向

  • 长→宽
    • 名称列:该列的唯一取值将展开为新列名(通常为时间、组别等类别列)。
    • 值列:取值填充到对应单元格,支持多选,每个值列生成一组新列。
    • 标识列(可选):用于标识行的列;若不选择则自动使用其余列为标识,仍无标识时按行号处理。
  • 宽→长
    • 宽列:选择要折叠的若干列,合并为两列——新”变量名”列(存放原列名)与新”值”列(存放对应取值),并支持”全选/清空”快速操作。
    • 新变量名列名与新值列名可自定义(默认 variable / value)。

3. 执行转换

点击”开始处理”,工具按方向与参数执行长宽转换。长→宽时,设名称列取值集合为 \(\{c_1,c_2,\dots,c_k\}\),则函数值列展开为 \(k\) 个新列,第 \(c_j\) 列取原表中名称等于 \(c_j\) 时的对应值;宽→长为其逆操作,将 \(m\) 列宽表折叠为”变量名列 + 值列”两列,行数由 \(n\) 扩为 \(n \times m\)

4. 转换摘要

  • 维度变化:原始维度与转换后维度(行 × 列)及行、列数的变化量。
  • 列名变化:原始列名列表与新列名列表。

5. AI 智能分析

基于转换方向、维度变化等信息,调用大语言模型评估转换结果并为后续分析提供建议(每日限 3 次,需配置 API 密钥)。

6. 结果导出

  • 下载转换后数据(CSV 或 Excel)。
  • 下载包含转换方向、维度对比与数据预览的 HTML 报告。

案例分析

案例背景:某门店记录了各月各类商品的销售额(长格式),需转换为按商品分行、月份分列的宽格式便于横向比较。

原始数据(示例,长格式)

门店ID 月份 商品类别 销售额(元)
S1 1月 食品 12000
S1 2月 食品 13500
S1 1月 日用品 8000
S1 2月 日用品 8600
S1 1月 服装 15000
S1 2月 服装 14200

处理过程:选择长→宽,名称列选”商品类别”,值列选”销售额(元)“,标识列选”门店ID”与”月份”。

转换后数据(示例,宽格式)

门店ID 月份 食品 日用品 服装
S1 1月 12000 8000 15000
S1 2月 13500 8600 14200

结论:在本示例数据范围内,6 行长表转换为 2 行宽表,商品类别展开为 3 列,转换摘要显示维度由 6×4 变为 2×5,便于逐月横向比较各类别销售额。

常见问题

Q1: 长格式与宽格式各有哪些适用场景?
A: 长格式便于绘图、分组统计与面板数据管理;宽格式便于横向比较、报表展示与部分建模输入。可依需求双向互转。

Q2: 长→宽时标识列必须选择吗?
A: 不必。不选择时工具自动使用其余列(或行号)作为标识,但建议明确选择标识列,以免结果出现意外合并。

Q3: 值列可以多选吗?
A: 可以。长→宽时允许多个值列同时展开,每个值列会各自生成一组新列。

Q4: 转换后维度为什么会变化?
A: 长→宽行数通常减少(按标识合并)、列数增加(类别展开);宽→长反之。转换摘要会明确显示变化量。

Q5: 宽→长后新列名如何设置?
A: 新”变量名”列默认名为 variable,新”值”列默认名为 value,均可自定义为业务易读的名称。

平台功能

  • 数据输入:支持 CSV、Excel,自动识别缺失符号、清理空行列;提供数据模板与方法介绍下载。
  • 转换方向:长→宽(名称列、值列可多选、可自定义标识列)与宽→长(多列折叠、可全选/清空、自定义新列名)。
  • 结果展示:原始/转换后数据双预览、转换摘要(维度变化、列名变化)。
  • AI 智能分析:评估转换结果并建议后续分析步骤(每日限 3 次,需配置 API 密钥)。
  • 报告下载:转换后数据(CSV/Excel)与 HTML 报告。

使用建议

  1. 明确标识列:长→宽时尽量指定业务标识列(如门店、个体 ID),避免数据错位合并。
  2. 核对维度变化:依据转换摘要确认行数列数变化符合预期,防止重复或缺失单元格。
  3. 多值列谨慎展开:多个值列会成倍增加新列数量,确认确需展开再启用。
  4. 结合下游工具:绘图与分组统计多用长格式,报表与比较多用宽格式,按下游工具体验选择组织形式。
  5. 保留原始备份:转换前保留原表,便于在结果异常时回溯。

平台界面

官方地址:https://superr.online

数据变换(长⇄宽)工具界面

平台界面包含:数据上传区、转换方向选择与参数设置区(名称列/值列/标识列、折叠列/新列名)、原始/转换后数据双预览、转换摘要及 AI 分析模块

参考文献

  1. Wickham, H. (2014). Tidy Data. Journal of Statistical Software, 59(10), 1-23.
  2. Ball, R., & Eaton, D. F. (1987). Programming languages and the tidy organization of data. SIGPLAN Notices, 22(7), 46-55.