数据变换(长⇄宽)
方法概述
数据的长格式(每行一个观测,常含标识列、变量名列与值列)与宽格式(每行一个样本,各变量各占一列)是两种常见的数据组织形式。统计分析、图表绘制与某些建模流程通常更适应长格式,而表格展示与逐步比较中宽格式更为直观。数据变换工具支持两种格式互转,可将”月份+销售额”类的长表展开为”每个月份一列”的宽表,也可将多列宽表折叠为”变量名+值”两列的长表,并支持多值列同时展开与自定义标识列。
计算步骤
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 报告。
使用建议
- 明确标识列:长→宽时尽量指定业务标识列(如门店、个体 ID),避免数据错位合并。
- 核对维度变化:依据转换摘要确认行数列数变化符合预期,防止重复或缺失单元格。
- 多值列谨慎展开:多个值列会成倍增加新列数量,确认确需展开再启用。
- 结合下游工具:绘图与分组统计多用长格式,报表与比较多用宽格式,按下游工具体验选择组织形式。
- 保留原始备份:转换前保留原表,便于在结果异常时回溯。
平台界面

平台界面包含:数据上传区、转换方向选择与参数设置区(名称列/值列/标识列、折叠列/新列名)、原始/转换后数据双预览、转换摘要及 AI 分析模块
参考文献
- Wickham, H. (2014). Tidy Data. Journal of Statistical Software, 59(10), 1-23.
- Ball, R., & Eaton, D. F. (1987). Programming languages and the tidy organization of data. SIGPLAN Notices, 22(7), 46-55.