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

Pandas如何通过pivot将类型、值列转为各类型对应的新列?

你之前的pivot参数配置错误,不需要拆分的公共参数列被你放到了columns参数中,同时把原表逐行的索引设为了行维度,才会得到不符合预期的结果。

正确的实现逻辑是把需要保留的公共参数param1、params2作为透视的行维度,把需要展开为列的metric作为列维度,取值对应score即可,不需要额外聚合操作,只要你的数据中每个(param1, params2, metric)组合唯一,直接用下面的代码就能得到目标结构:

# 方法1:pivot实现
res = df.pivot(
    index=['param1', 'params2'],
    columns='metric',
    values='score'
).reset_index(drop=False)
# 如果需要和示例一致的连续数字index列,再加下面这行
res = res.reset_index(drop=True)

也可以用set_index + unstack的组合实现相同效果:

# 方法2:set_index + unstack实现
res = df.set_index(['param1', 'params2', 'metric'])['score']\
        .unstack('metric')\
        .reset_index(drop=False)

最终输出的DataFrame列顺序为param1、params2、XXX、YYY、ZZZ,行索引为从0开始的连续数字,完全匹配你需要的格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 23:18:03