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

如何从嵌套字典创建单行且展开嵌套字段的Pandas DataFrame

解决方案

直接使用Pandas内置的pd.json_normalize()函数即可实现需求,该函数原生支持嵌套结构的扁平化处理,生成的列名默认遵循父字段名_子字段名的规则,完全匹配你要求的命名格式,且会直接输出单行DataFrame。

最简实现代码

import pandas as pd

# 直接将你的嵌套字典传入函数即可
df = pd.json_normalize(my_dict)

执行后即可得到目标结果:原来的非嵌套字段(如id、stage_id、title)会原样保留,creator_user_id这类嵌套字典字段会自动展开为creator_user_id_id、creator_user_id_name等独立列。

备选方案(已生成初始DataFrame的情况)

如果你已经通过pd.DataFrame.from_dict生成了初始的竖表结构,可以用下面的方法二次处理得到目标结果:

# 先将竖表转置为单行横表
df_base = df.T.reset_index(drop=True)
# 筛选出所有值为字典的嵌套列
dict_cols = [col for col in df_base.columns if isinstance(df_base[col].iloc[0], dict)]

for col in dict_cols:
    # 展开字典为多列,统一添加父字段名前缀
    expanded_cols = df_base[col].apply(pd.Series).add_prefix(f"{col}_")
    # 合并展开后的列到原表,删除原嵌套列
    df_base = pd.concat([df_base.drop(columns=[col]), expanded_cols], axis=1)

df = df_base

优先推荐使用第一种方案,代码更简洁、执行效率更高,适配绝大多数嵌套字典转单行DataFrame的场景。

内容的提问来源于stack exchange,提问作者David López

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 10:03:02