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

如何将多份字典列表与单个列表转换为DataFrame?

将嵌套数据转换为指定格式DataFrame的实现方法

核心实现代码

注意不要用Python内置函数名list作为变量名,避免语法冲突。以下是生成目标格式DataFrame的代码:

import pandas as pd

# 原始数据
list_val = [0.2, 0.5]
dict1 = [{'a':13, 'b':16}, {'a':25, 'b':70}]
dict2 = [{'a':0.15, 'b':0.02}, {'a':0.30, 'b':0.24}]

# 构造每行数据条目
data_rows = []
for val, d1, d2 in zip(list_val, dict1, dict2):
    # 遍历字典的键,对应生成a、b两行数据
    for key in d1:
        data_rows.append([key, val, d1[key], d2[key]])

# 转换为DataFrame并设置列名
df = pd.DataFrame(data_rows, columns=['index', 'list', 'dict1', 'dict2'])
# 将index列设为DataFrame的索引(可选,和示例格式完全匹配)
df.set_index('index', inplace=True)

print(df)

运行后输出结果与要求格式一致:

list  dict1  dict2
index                    
a       0.2     13   0.15
b       0.2     16   0.02
a       0.5     25   0.30
b       0.5     70   0.24

更优的DataFrame呈现方式

如果希望数据结构更紧凑、可读性更强,可以采用层次化列+索引的格式,把list的值作为行索引,a/b和dict1/dict2作为层次化列:

import pandas as pd

list_val = [0.2, 0.5]
dict1 = [{'a':13, 'b':16}, {'a':25, 'b':70}]
dict2 = [{'a':0.15, 'b':0.02}, {'a':0.30, 'b':0.24}]

# 构造层次化数据结构
hierarchical_data = {}
for val, d1, d2 in zip(list_val, dict1, dict2):
    hierarchical_data[val] = {'dict1': d1, 'dict2': d2}

# 转换为层次化列DataFrame
df_hier = pd.DataFrame.from_dict(hierarchical_data, orient='index').stack().unstack(level=1)
df_hier.columns = pd.MultiIndex.from_tuples(df_hier.columns)

print(df_hier)

输出格式如下,能直观看到每个list值对应的所有指标数据:

dict1     dict2
          a   b      a     b
0.2     13  16   0.15  0.02
0.5     25  70   0.30  0.24

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 12:17:25