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

如何使用Pandas from_dict(orient='index')生成多级索引DataFrame?

解决方法:直接将字典元组键转为MultiIndex索引

嘿,这个问题我之前也碰到过!当你用orient='index'调用pd.DataFrame.from_dict()时,Pandas默认不会自动把元组类型的键转换成MultiIndex,不过有两种简洁的方法可以直接实现你要的效果:

方法一:先构造DataFrame再转换索引

这是最贴合你原有思路的写法,先通过orient='index'生成DataFrame,再把普通索引转换成MultiIndex:

import pandas as pd

input_dict = {('row_1','row_1_1'): [1], ('row_1','row_1_2'): [2], ('row_2','row_2_1'): [3]}

df = pd.DataFrame.from_dict(input_dict, orient='index')
# 将元组组成的普通索引转换为MultiIndex
df.index = pd.MultiIndex.from_tuples(df.index)

print(df)

方法二:初始化时直接指定MultiIndex索引

这种写法更一步到位,直接从字典的键和值构造DataFrame并设置MultiIndex:

import pandas as pd

input_dict = {('row_1','row_1_1'): [1], ('row_1','row_1_2'): [2], ('row_2','row_2_1'): [3]}

df = pd.DataFrame(
    list(input_dict.values()),
    index=pd.MultiIndex.from_tuples(input_dict.keys())
)

print(df)

两种方法都会输出你预期的结果:

0
row_1 row_1_1  1
      row_1_2  2
row_2 row_2_1  3

相比转置.T的方案,这两种方法逻辑更清晰,也避免了转置操作可能带来的不必要步骤,完全符合你想要的简洁性要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:46:42