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

如何将嵌套字典列表转换为多级列名的Pandas DataFrame

嵌套字典转多级列名DataFrame实现方案

实现思路

把原始字典中每个外层键对应的内层列表单独转为普通DataFrame,为每个子DataFrame的列增加一级对应外层键的前缀,最后按列拼接所有子DataFrame即可,拼接过程会自动为长度不一致的列表补全缺失值为NaN。

完整代码

import pandas as pd

# 示例原始数据
raw_data = {'a': [{'aa': '10', 'bb': '11'}, {'aa': '12', 'bb': '13'}], 'b': [{'aa': '14', 'bb': '15'}, {'aa': '16', 'bb': '17'}]}

df_collection = []
for outer_key, inner_items in raw_data.items():
    # 内层列表转DataFrame
    sub_df = pd.DataFrame(inner_items)
    # 构造多级列名
    sub_df.columns = pd.MultiIndex.from_tuples([(outer_key, col) for col in sub_df.columns])
    df_collection.append(sub_df)

# 按列拼接,自动兼容不同长度的内层列表
final_df = pd.concat(df_collection, axis=1)

效果验证

打印final_df即可得到你预期的输出结果:

a       b    
     aa  bb  aa  bb
0    10  11  14  15
1    12  13  16  17

常见扩展需求

  • 缺失值自定义填充:拼接完成后调用final_df = final_df.fillna(自定义值)即可替换默认的NaN填充值
  • 内层字典键不统一的场景:代码会自动为每个外层键生成对应存在的二级列,不存在的列自动补NaN

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 19:54:01