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

如何将横向CSV格式转换为指定的纵向格式?

问题描述

现有一份CSV数据(仅展示片段,实际包含数千行),其结构为宽表格式:每行对应一个数据主体,后续多列为该主体的不同属性及对应属性值。

简单使用Pandas的transpose()方法无法满足需求,需要将其转换为长表格式:每行对应一个主体的单个属性条目,包含三列:主体标识、属性名称、属性值。

解决方案(基于Pandas)

使用Pandas的melt()函数可以快速实现宽表转长表的转换,完美匹配需求,代码示例如下:

import pandas as pd

# 读取原始CSV文件
df = pd.read_csv("your_input.csv")

# 执行转换:
# id_vars:指定作为标识的列(比如原数据中第一列是主体名称,就用df.columns[0],或直接写列名)
# var_name:设置转换后属性名的列标题
# value_name:设置转换后属性值的列标题
transformed_df = df.melt(
    id_vars=df.columns[0],
    var_name="属性名",
    value_name="属性值"
)

# 保存转换后的数据到新CSV
transformed_df.to_csv("your_output.csv", index=False)

注意事项

  • 如果原始数据中作为主体标识的列不是第一列,直接将id_vars参数改为对应的列名即可(例如id_vars="产品ID")
  • 该方法针对数千行数据的处理效率很高,无需担心性能问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 15:05:14