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

如何基于列表字典创建空MultiIndex DataFrame?列层级匹配字典键值

创建列层级为[字典键-列表值]的MultiIndex DataFrame

嘿,我来帮你搞定这个MultiIndex DataFrame的需求!你想要的是列分为两层:第一层是给定字典的键,第二层是每个键对应的列表元素,对吧?不管是空表还是基于这个结构生成带数据的表,咱们一步步来实现:

1. 创建空的MultiIndex DataFrame

首先我们需要根据字典生成符合要求的列MultiIndex,再用它初始化空DataFrame:

import pandas as pd

# 你的示例字典
dictionary = {"Col 1": ["foo", "bar"], "Col 2": ["one", "two"]}

# 构建列的MultiIndex元组列表:每个键和它的子元素配对
column_tuples = []
for main_col, sub_cols in dictionary.items():
    for sub_col in sub_cols:
        column_tuples.append( (main_col, sub_col) )

# 生成MultiIndex,还可以给层级命名(可选)
multi_col_index = pd.MultiIndex.from_tuples(
    column_tuples,
    names=['主列层级', '子列层级']  # 这里的名字可以根据需求修改
)

# 创建空的MultiIndex DataFrame
empty_multi_df = pd.DataFrame(columns=multi_col_index)

# 查看结果
print(empty_multi_df)

运行后你会得到一个空的DataFrame,列结构完全符合要求:

Empty DataFrame
Columns: [(Col 1, foo), (Col 1, bar), (Col 2, one), (Col 2, two)]
Index: []

2. 从字典结构创建带数据的MultiIndex DataFrame

如果需要生成有数据的表,我们可以基于刚才的MultiIndex来构造数据(这里用随机数举例,你可以替换成自己的数据):

import numpy as np

# 生成3行随机数据(行数可以自定义)
data = np.random.randn(3, len(multi_col_index))

# 创建带数据的MultiIndex DataFrame
multi_df = pd.DataFrame(data, columns=multi_col_index)

# 查看结果
print(multi_df)

输出大概是这样的(数据是随机的):

主列层级     Col 1               Col 2          
子列层级       foo       bar       one       two
0        0.469112 -0.282863 -1.509059 -1.135632
1        1.212112 -0.173215  0.119209 -1.044236
2       -0.861849 -2.104569 -0.494929  1.071804

这样就完美实现了你要的功能啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 12:22:45