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

如何实现DataFrame列转多行且指定行保持不变的格式转换

实现方案

你需要的是宽表转长表的操作,使用Pandas的melt方法即可实现,操作逻辑如下:

  • 首先确认固定保留列:即需要保持不变的列,在方法的id_vars参数中指定这些列即可
  • 其次确认需要转成行的列:在方法的value_vars参数中指定对应列,若省略该参数,默认会将所有未加入id_vars的列全部做行转换
  • 转换后会生成两个自定义名称的新列:存储原列名的列通过var_name指定名称,存储原列值的列通过value_name指定名称

示例代码

import pandas as pd

# 替换为你自己的DataFrame读取逻辑,此处为模拟原始数据
df = pd.DataFrame({
    "部门": ["技术部", "市场部"],
    "人员ID": ["A001", "B001"],
    "姓名": ["张三", "李四"],
    "1月绩效": [95, 88],
    "2月绩效": [92, 90],
    "3月绩效": [89, 94]
})

# 执行转换
converted_df = df.melt(
    id_vars=["部门", "人员ID", "姓名"], # 保留不变的列
    var_name="统计月份", # 原列名转为新列的字段名
    value_name="绩效分数" # 原列值转为新列的字段名
)

print(converted_df)

转换效果说明

原始宽表结构:

部门人员ID姓名1月绩效2月绩效3月绩效
技术部A001张三959289
市场部B001李四889094

转换后长表结构:

部门人员ID姓名统计月份绩效分数
技术部A001张三1月绩效95
市场部B001李四1月绩效88
技术部A001张三2月绩效92
市场部B001李四2月绩效90
技术部A001张三3月绩效89
市场部B001李四3月绩效94

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 20:12:03