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

如何将Pandas单列中的嵌套字典数据展开为多列DataFrame?

解决DataFrame嵌套字典列表的拆分问题

步骤1:将字符串格式的列表字典转为Python对象

你的title列内容是字符串形式的列表字典(并非原生Python对象),首先得把它转成可操作的列表与字典结构。用ast.literal_eval比直接用eval更安全:

import ast
import pandas as pd

# 假设你的DataFrame名为df
df['title'] = df['title'].apply(ast.literal_eval)

执行后,title列的每个元素会变成包含单个字典的列表(比如[{'id': 'text1', ...}])。

步骤2:提取字典并展开嵌套结构

因为每个列表里只有一个字典,先把字典单独取出,再用pd.json_normalize()展开所有层级的键,包括嵌套的meta字典:

# 提取列表中的字典,得到字典类型的Series
dict_series = df['title'].str[0]
# 展开字典(含嵌套的meta结构)
expanded_df = pd.json_normalize(dict_series)

步骤3:合并到原DataFrame

如果需要保留原DataFrame的其他列,直接去掉原title列后合并展开结果:

final_df = df.drop('title', axis=1).join(expanded_df)

特殊情况处理(可选)

如果列表中存在多个字典,可先拆分列表为多行再展开:

# 把列表拆成多行
exploded_df = df.explode('title')
# 展开字典
final_df = pd.json_normalize(exploded_df['title'])

最终所有嵌套字段都会被拆为单独列,比如id、id2、info4(保留列表形式,如需拆分可再用explode)、meta.label1、meta.label2等。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 15:15:31