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

如何对pandas dataframe执行Pivot操作将year转为列并保留val系列标签

Pandas 多字段Pivot转换实现方法

你可以通过以下两种方式实现需求中的数据重塑操作:

方法1:直接调用pivot方法

import pandas as pd

# 构造示例DataFrame
df = pd.DataFrame({'id': ['A','B','C'],
                   'year': [2012, 2014, 2016],
                   'val1': [1,2,3],
                   'val2': [5,6,7],
                   'val3': [9,10,11]})

# 执行Pivot转换
result = df.pivot(
    index='id',  # 保留id作为行索引
    columns='year',  # 将year的取值转为列维度
    values=['val1', 'val2', 'val3']  # 指定要保留的数值字段
)
# 调整列层级顺序,将年份放在字段名前,匹配需求结构
result = result.swaplevel(axis=1).sort_index(axis=1)
# 若需要将id从索引转为普通列,添加下行代码
result = result.reset_index()

方法2:使用set_index + unstack组合

# 先将id和year设为复合索引,再把year维度展开到列
result = df.set_index(['id', 'year']).unstack('year')
# 后续调整列层级的操作和方法1一致
result = result.swaplevel(axis=1).sort_index(axis=1).reset_index()

两种方法最终输出的结构完全一致,列依次为id、2012下的val1/val2/val3、2014下的val1/val2/val3、2016下的val1/val2/val3,和要求的结构匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 13:39:03