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

如何将DataFrame的列转换为多层行索引,得到指定数据结构?

Pandas将列转为多层行索引的实现

核心方法:stack()(最简洁高效)

stack()是Pandas专门用于将列标签转为行层级索引的方法,完美匹配你的需求:

  1. 先构建示例DataFrame:
import pandas as pd

df = pd.DataFrame({'A': [1, 3], 'B': [2, 4]}, index=['a', 'b'])

原始数据:

A  B
a  1  2
b  3  4
  1. 一行代码完成转换:
result = df.stack().rename('value')

输出结果完全符合要求:

value
a A        1
  B        2
b A        3
  B        4

备选方法:melt()(逻辑更直观)

如果需要更清晰地控制字段转换过程,可以用melt():

# 先把原行索引转为普通列,再重塑数据
result = df.reset_index().melt(
    id_vars='index', 
    var_name='level_1', 
    value_name='value'
).set_index(['index', 'level_1'])

这个方法步骤更明确,适合需要自定义中间字段名的场景。


内容的提问来源于stack exchange,提问作者이승훈

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 06:20:17