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

如何将深度不均的嵌套字典转换为指定格式的pandas DataFrame

首先导入pandas库:

import pandas as pd

你的原始嵌套字典:

data = {'x': 1, 'y': 2, 'z':{'a': 3, 'b': 4}, 'w': {'a': 5, 'b': 6}}

最优实现方案

最优方式优先用pandas内置的pd.json_normalize方法,这是官方专门为扁平化嵌套JSON/字典结构设计的API,内部做了性能优化,比手动遍历效率高,适配性也更强。

场景1:需要单层列名的宽表

直接调用即可:

df = pd.json_normalize(data)

输出结果如下,嵌套的键会默认用.拼接列名:

xyz.az.bw.aw.b
123456

如果要自定义分隔符,比如用下划线,加sep参数即可:

df = pd.json_normalize(data, sep='_')

场景2:需要最外层键为行索引、二级键为列的表结构

如果你的目标结构是把x、y、z、w作为行索引,a、b为列,x和y的单值单独存储,只需加简单的预处理:

processed = []
for k, v in data.items():
    row = v if isinstance(v, dict) else {'single_val': v}
    row['outer_key'] = k
    processed.append(row)
df = pd.DataFrame(processed).set_index('outer_key')

输出结果:

outer_keysingle_valab
x1NaNNaN
y2NaNNaN
zNaN34
wNaN56

这个方案代码简洁易读,性能足够应对绝大多数日常场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 09:45:07