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

如何使用pandas将包含嵌套列表的嵌套字典转换为指定格式的DataFrame

实现代码

你可以通过先将嵌套字典打平为长表,再重塑结构的方式得到目标格式的DataFrame,完整代码如下:

import pandas as pd

# 替换为你自己的newDict即可
newDict = {
    "dataset_1": {
        "model_1": {
            "method_1": [[1, 2]],
            "method_2": [[3, 4]]
        },
        "model_2": {
            "method_1": [[5, 6]],
            "method_2": [[7, 8]]
        }
    },
    "dataset_2": {
        "model_1": {
            "method_1": [[9, 10]],
            "method_2": [[11, 12]]
        },
        "model_2": {
            "method_1": [[13, 14]],
            "method_2": [[15, 16]]
        }
    }
}

# 1. 打平嵌套字典为长格式记录
records = []
for dataset_name, model_dict in newDict.items():
    for model_name, method_dict in model_dict.items():
        for method_name, value_list in method_dict.items():
            # 将嵌套的[[value1, value2]]转为逗号分隔的字符串
            format_value = ", ".join(map(str, value_list[0]))
            records.append([dataset_name, model_name, method_name, format_value])

# 2. 转换为DataFrame并重塑结构
df = pd.DataFrame(records, columns=["dataset", "model", "method", "value"])
target_df = df.pivot(
    index=["model", "method"],
    columns="dataset",
    values="value"
).rename_axis(columns=None) # 移除列索引的默认名称

输出说明

得到的target_df完全符合你要求的结构:

  • 行索引为两级:第一级是model,第二级是method
  • 列名为两个数据集的名称dataset_1、dataset_2
  • 单元格值为你需要的逗号分隔的数值字符串

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 16:27:04