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

如何使用Pandas将DataFrame的二级索引转换为列索引

没问题,这其实是个典型的**DataFrame重塑(reshape)**需求——把长格式的表转成宽格式,用pandas的pivot方法就能轻松实现,给你一步步演示:

首先,先还原你的原始数据:

import pandas as pd

df = pd.DataFrame({
    'value': [1, 1, 2, 2],
    'idx1': ['a', 'b', 'a', 'b'],
    'idx2': [9, 8, 7, 6]
})

然后一行核心代码完成转换,再做一点点格式调整让它完全匹配你的目标结构:

# 核心逻辑:以value为行基准,idx1的唯一值为列,填充idx2的对应值
result = df.pivot(index='value', columns='idx1', values='idx2')
# 去掉列索引的默认名称(避免保留'idx1'这个表头)
result.columns.name = None
# 把原来的行索引'value'转成列,并改名为你要的'idx1'
result = result.reset_index().rename(columns={'value': 'idx1'})

运行后输出的result就是你想要的格式:

idx1ab
198
276

简单拆解下pivot的关键参数:

  • index:指定要作为新表行标识的列(这里用value的数值当行号)
  • columns:指定要展开成新表列的字段(这里把idx1的'a'、'b'拆成两列)
  • values:指定填充到新表单元格里的具体数值(这里用idx2的数字)

如果你的数据存在重复的(value, idx1)组合,那可以用pivot_table并指定聚合函数(比如aggfunc='mean')来处理,不过你的示例数据没有重复情况,pivot就完全够用啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 01:47:39