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

电子表格首行年份转列生成tidy规范结构化数据集的方法咨询

按Tidy规范转换宽表数据的实现方案

原始数据集样例如下(行维度为车型,列维度为年份,单元格值为对应产量):
样例图片

Excel 操作方案

直接使用Power Query的逆透视功能完成转换,步骤如下:

  • 选中全表数据区域,点击顶部菜单栏「数据」-「从表格/范围」,将数据导入Power Query编辑器
  • 在编辑器内选中「车型名称」列,右键点击「逆透视其他列」
  • 将生成的「属性」列重命名为年份,「值」列重命名为产量
  • 点击左上角「关闭并上载」,即可将转换后的规范数据导出到Excel工作表

Python 实现方案(基于Pandas库)

使用melt方法完成宽表转长表操作,示例代码如下:

import pandas as pd

# 读取源数据,可根据文件格式替换为read_csv等方法
df = pd.read_excel("你的源数据文件路径.xlsx")

# 执行逆透视转换
tidy_df = df.melt(
    id_vars = "车型名称",  # 指定保持不变的列
    var_name = "年份",    # 原表头年份字段转换后的新列名
    value_name = "产量"   # 原单元格产量值转换后的新列名
)

# 导出转换完成的Tidy数据
tidy_df.to_excel("整理后的数据.xlsx", index=False)

R 实现方案(基于tidyverse生态)

使用pivot_longer函数完成转换,示例代码如下:

library(readxl)
library(tidyr)
library(dplyr)

# 读取源数据
df <- read_excel("你的源数据文件路径.xlsx")

# 执行长表转换
tidy_df <- df %>% 
  pivot_longer(
    cols = !`车型名称`, # 除车型名称外的所有列都参与转换
    names_to = "年份",
    values_to = "产量"
  )

# 导出结果
writexl::write_xlsx(tidy_df, "整理后的数据.xlsx")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 16:27:04