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

如何对含字典列表列的pandas DataFrame进行扁平化处理

问题原因

你调用pd.json_normalize时直接传入了由列表构成的Series,此时json_normalize只会将每个列表按位置拆分为多列,列值为单个字典对象,不会自动递归拆解字典的键值对,因此后续套DataFrame并指定索引时会全部显示为NaN。

解决方案

根据你的使用场景,可选择以下两种处理方式:


场景1:将同一SubProjectId下的多个字典拆分为多行(最常用)

适合需要按单个节点维度做后续分析的场景,输出后索引仍保留原SubProjectId,每行对应一个LoadNodes中的字典,列名为字典的键(Id、Description、Name等):

# 第一步:将LoadNodes列的列表炸开,每行仅保留一个字典,保留原索引
exploded_nodes = load_only_df['LoadNodes'].explode()
# 第二步:对字典做标准化,还原原索引
result = pd.json_normalize(exploded_nodes).set_index(exploded_nodes.index)

场景2:将同一SubProjectId下的多个字典拆分为多列

适合需要将同一个SubProjectId的所有节点属性放在同一行的场景,输出后列名会自动加序号后缀(如Id_0、Description_0、Id_1等):

result = load_only_df['LoadNodes'].apply(
    lambda node_list: pd.Series(
        {f"{key}_{idx}": val for idx, node_dict in enumerate(node_list) for key, val in node_dict.items()}
    )
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 09:36:06