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

如何将DataFrame列中的字典提取为以键为列名的新DataFrame

报错原因

pd.DataFrame.from_dict直接接收存储字典的Series类型输入时,会将每个字典识别为独立标量值,无法自动拆分键值对为列,因此触发需要传入索引的错误提示。

可行解决方法

方法1:使用pd.json_normalize(最推荐,性能最优)

这是Pandas专门用于处理嵌套JSON/字典结构的内置方法,默认自动保留原DataFrame的索引:

import pandas as pd
new_DF = pd.json_normalize(old_DF['Col'])

如果使用的Pandas版本极旧发现索引丢失,可以手动指定索引:

new_DF = pd.json_normalize(old_DF['Col']).set_index(old_DF.index)

该方法也支持多层嵌套字典的自定义拆分,适配性更强。

方法2:使用apply转Series(兼容老版本Pandas)

对字典列逐行应用pd.Series,会自动将字典键转为列名、值转为对应单元格内容,同时保留原索引:

new_DF = old_DF['Col'].apply(pd.Series)

写法更简洁,适配低版本Pandas场景,缺点是大数据量下性能弱于方法1。

方法3:修正from_dict写法

如果要继续使用from_dict方法,先将列转为字典列表,再手动指定原索引即可解决报错:

new_DF = pd.DataFrame.from_dict(old_DF['Col'].tolist(), index=old_DF.index)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 05:45:02