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

如何从嵌套字典的键与值列表生成pandas MultiIndex DataFrame

解决代码

import pandas as pd
import ast

# 原始字典
dictionary ={
    "{'a': 12.0, 'b': 0.8, 'c': ' bla1'}": [200, 0.0, '0.0'],
    "{'a': 12.0, 'b': 0.8, 'c': ' bla2'}": [37, 44, '0.6'],
    "{'a': 12.0, 'b': 1.8, 'c': ' bla3'}": [100, 2.0, '1.0'],
    "{'a': 12.0, 'b': 1.8, 'c': ' bla4'}": [400, 3.0, '1.0']
}

rows = []
for key_str, val_list in dictionary.items():
    # 把字符串格式的键解析为字典对象
    key_dict = ast.literal_eval(key_str)
    # 拼接索引字段和数值字段为单行数据
    row = {**key_dict, **{f"col_{i}": v for i, v in enumerate(val_list)}}
    rows.append(row)

# 生成DataFrame并设置多层索引
df = pd.DataFrame(rows).set_index(["a", "b", "c"])
# 可自定义列名,示例:df.columns = ["数值1", "数值2", "数值3"]

代码说明

你之前的代码没有对原始字典的字符串键做解析,直接把整段字符串作为单级索引处理,所以无法生成分层索引。上述代码先把字符串格式的键解析为字典,提取a/b/c三个字段的值,再将其设置为多层索引,最终结构和你预期的效果完全匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 11:06:04