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

如何将含动态参数字段的嵌套字典列表转换为Pandas DataFrame

嵌套字典转DataFrame实现方案

你可以先将所有嵌套字典统一展平为单层结构,再直接生成DataFrame,pandas会自动处理字段缺失的场景,缺失位置默认填充空值(NaN),具体实现代码如下:

import pandas as pd

# 示例原始数据:嵌套字典组成的列表,第二个条目模拟存在Packet Size 3字段的场景
raw_data = [
    {'1278.1': 
      {'Time Distribution': 'Exponential', 
        'Time Distribution Parameters': {'Equivalent Lambda': 950.486, 'Average Packet Lambda': 0.950486, 'Exponential Max Factor': 10.0}, 
       'Size Distribution': 'Binomial',
        'Size Distribution Parameters': {'Average Packet Size': 1000.0, 'Packet Size 1': 300.0, 'Packet Size 2': 1700.0}}},
    {'1500.2': 
      {'Time Distribution': 'Poisson', 
        'Time Distribution Parameters': {'Equivalent Lambda': 1100.3, 'Average Packet Lambda': 1.1003}, 
       'Size Distribution': 'Multinomial',
        'Size Distribution Parameters': {'Average Packet Size': 1200.0, 'Packet Size 1': 400.0, 'Packet Size 2': 1600.0, 'Packet Size 3': 2200.0}}}
]

flatten_list = []
for item in raw_data:
    # 提取外层的max avg lambda值和对应的配置内容
    max_avg_lambda, config = next(iter(item.items()))
    flatten_item = {'Max Avg Lambda': float(max_avg_lambda)}
    for k, v in config.items():
        # 展开参数类嵌套字段到同一层级
        if k.endswith('Parameters'):
            flatten_item.update(v)
        else:
            flatten_item[k] = v
    flatten_list.append(flatten_item)

# 直接生成DataFrame,所有缺失字段自动填充NaN
df = pd.DataFrame(flatten_list)

# 若只需要保留指定列,可执行以下步骤,未匹配到的列自动填充空值
required_cols = ['Max Avg Lambda', 'Time Distribution', 'Equivalent Lambda', 'Average Packet Lambda', 'Size Distribution', 'Packet Size 2', 'Packet Size 3']
df = df.reindex(columns=required_cols)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 11:24:03