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

如何旋转DF?实现长格式到宽格式的转换求助

解决DataFrame旋转为宽格式的方法

用pandas的pivot方法就能快速实现你要的长格式转宽格式需求,具体操作步骤如下:

1. 确保DataFrame列名正确

如果你的原始DataFrame没有列名,先给三列分别命名(对应你的数据:分组、类别、数值):

import pandas as pd

# 以你的示例数据构造DataFrame
data = [
    ['wbp', 'l', 45],
    ['wbp', 'ml', 7],
    ['wbp', 'k', 27],
    ['wbp', 'mk', 37],
    ['bpz', 'l', 22],
    ['bpz', 'ml', 34],
    ['bpz', 'k', 12],
    ['bpz', 'mk', 41],
    ['pmh', 'l', 35],
    ['pmh', 'ml', 13],
    ['pmh', 'k', 9],
    ['pmh', 'mk', 44]
]
df = pd.DataFrame(data, columns=['group', 'category', 'value'])

2. 使用pivot转换格式

直接调用pivot方法,指定行索引、列名和对应数值的列:

pivoted_df = df.pivot(index='group', columns='category', values='value')

3. 查看结果

打印转换后的DataFrame即可得到目标格式:

print(pivoted_df)

输出结果:

category   l  ml   k  mk
group                   
wbp       45   7  27  37
bpz       22  34  12  41
pmh       35  13   9  44

特殊情况处理

如果数据中存在同一group+category的重复行,可使用pivot_table指定聚合方式(比如取第一个值):

pivoted_df = df.pivot_table(index='group', columns='category', values='value', aggfunc='first')

内容的提问来源于stack exchange,提问作者maciej.o

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 10:15:39