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

已实现Pandas多列表头,如何添加多行(多级)行索引?

Pandas多级行索引实现方案

你已经通过pandas.MultiIndex.from_tuples成功实现了多级列索引,要实现多级行索引,核心思路是直接给DataFrame的index参数传入构建好的多级索引对象,不需要通过转置表头的方式操作。

具体实现代码

import pandas as pd

# 原有的多级列索引定义
headers = [
    ('data1', 'value1'),
    ('data1', 'value2'),
    ('data2', 'value1'),
    ('data2', 'value2'),
    ('data3', 'value1'),
    ('data3', 'value2'),
    ('data4', 'value1'),
    ('data4', 'value2'),
]

# 原数据
data = [
    (1, 2, 3, 4, 5, 6, 7, 8),
    (11, 12, 13, 14, 15, 16, 17, 18),
]

# 定义多级行索引的元组列表,对应预期的行层级结构
row_indexes = [
    ('groupA', 'row1'),
    ('groupB', 'row2')
]

# 创建DataFrame时同时指定多级列索引和多级行索引
df = pd.DataFrame(
    data,
    columns=pd.MultiIndex.from_tuples(headers),
    index=pd.MultiIndex.from_tuples(row_indexes)
)

print(df)

拓展:给多级行索引命名

如果需要给行的每一层级添加名称,可使用from_arrays方法让结构更清晰:

# 定义行的层级数据和对应名称
row_levels = [
    ['groupA', 'groupB'],  # 第一级行索引
    ['row1', 'row2']       # 第二级行索引
]
row_index = pd.MultiIndex.from_arrays(
    row_levels,
    names=['Group', 'SubRow']  # 给每个层级命名
)

# 重新创建带命名的多级行索引DataFrame
df = pd.DataFrame(
    data,
    columns=pd.MultiIndex.from_tuples(headers),
    index=row_index
)

这样就能得到你预期的多级行索引效果,直接通过index参数指定多级索引即可,无需转置操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 20:33:14