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

如何透视Pandas DataFrame 使每个值对应单独行且保留编号与名称列

实现方案

核心思路

你需要的是将宽格式DataFrame转换为长格式,直接使用Pandas内置的melt方法即可完成,无需复杂的自定义逻辑。

完整实现代码

import pandas as pd

# 1. 读取本地CSV文件,分隔符为|,自动去除字段前后的空格
df = pd.read_csv('你的本地文件路径.csv', sep='|', skipinitialspace=True)

# 2. 清理列名前后的空格,避免列名存在多余空格导致报错
df.columns = df.columns.str.strip()

# 3. 宽表转长表
long_df = df.melt(
    # 指定要保留的公共字段
    id_vars=['Number', 'Name'],
    # 指定要展开为行的字段
    value_vars=['v1', 'v2', 'v3', 'v4'],
    # 定义展开后存储值的列名
    value_name='values',
    # 临时存储原v1/v2等字段名的列,后续删除
    var_name='to_drop'
# 删除不需要的临时列
).drop('to_drop', axis=1)

# 4. 按Number排序,和你示例的输出顺序保持一致
long_df = long_df.sort_values(by='Number', ignore_index=True)

# 查看结果
print(long_df)

输出验证

运行后得到的long_df完全符合要求的格式:

NumberNamevalues
100000Name1value1
100000Name1value2
100000Name1value3
100000Name1value4
200000Name2value1
.........

内容的提问来源于stack exchange,提问作者John G Smith

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 05:45:05