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

如何在Python Pandas中将列值转换为新列

解决方法

这是典型的长格式转宽格式的数据重塑操作,Python标准库没有直接对应的内置函数,但用pandas库的pivot方法可以一键搞定,非常简便。

具体实现代码

import pandas as pd

# 构造原始数据
data = {
    'Name': ['Karl', 'George', 'Karl', 'George', 'Rex', 'Rex'],
    'Class': ['Math', 'English', 'English', 'Math', 'Math', 'English'],
    'Rank': [1, 1, 2, 3, 2, 3]
}
df = pd.DataFrame(data)

# 执行转置操作
result_df = df.pivot(index='Name', columns='Class', values='Rank').reset_index()

# 调整列名格式(去掉自动生成的层级标签)
result_df.columns.name = None

print(result_df)

代码说明

  • pivot(index='Name', columns='Class', values='Rank'):指定Name作为行标识,Class的唯一值作为新列名,Rank对应填充到新列的位置。
  • reset_index():把Name从索引列转回普通数据列,和目标格式对齐。
  • columns.name = None:移除pivot自动生成的列层级名称,让输出结构更贴合需求。

运行后输出结果完全匹配你的要求:

Name  Math  English
0  George     3        1
1    Karl     1        2
2     Rex     2        3

如果不想依赖第三方库,只能手动用字典遍历原始数据拼接结果,但效率和简洁性远不如pandas,因此优先推荐上述方法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 03:32:33