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

求助:如何使用Python Pandas实现特定列的转置操作

Pandas 实现特定列转置(保留固定列)

根据需求,核心是保留固定标识列,将指定多列(如季度列)转置为行结构并对应数值,可通过Pandas的melt函数快速实现:

步骤1:导入依赖

import pandas as pd

步骤2:构造/读取输入数据

以你提供的格式为例,构造示例数据:

df = pd.DataFrame({
    "ID": [1, 2],
    "Name": ["Alice", "Bob"],
    "Subject": ["Math", "Science"],
    "Q1": [85, 78],
    "Q2": [90, 82],
    "Q3": [88, 80],
    "Q4": [92, 85]
})

步骤3:转置特定列

使用melt函数,指定需要保留的列和需要转置的列:

transposed_df = df.melt(
    id_vars=["ID", "Name", "Subject"],  # 保留为列的固定字段
    value_vars=["Q1", "Q2", "Q3", "Q4"],  # 需要转置的列
    var_name="Quarter",  # 转置后原列名对应的新列名
    value_name="Score"   # 转置后原列值对应的新列名
)

输出结果

运行后得到的结果与期望格式一致:

ID    Name  Subject Quarter  Score
0   1   Alice     Math      Q1     85
1   2     Bob  Science      Q1     78
2   1   Alice     Math      Q2     90
3   2     Bob  Science      Q2     82
4   1   Alice     Math      Q3     88
5   2     Bob  Science      Q3     80
6   1   Alice     Math      Q4     92
7   2     Bob  Science      Q4     85

灵活调整

  • 如果固定列或需转置的列名不同,直接修改id_vars和value_vars中的列表即可。
  • 如需按ID和季度排序,可添加:transposed_df = transposed_df.sort_values(["ID", "Quarter"])

内容的提问来源于stack exchange,提问作者Soumya Ranjan Moharana

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 22:55:18