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

如何拆分DataFrame中的字典列为单独列且仅保留字典值

解决pandas DataFrame字典列拆分为多列的方案

适用场景

DataFrame中存在单列存储字典数据,需要将字典的键值对拆分到独立列,仅保留对应值。

代码实现

首先构造示例数据用于演示:

import pandas as pd

# 示例原始数据
df = pd.DataFrame({
    'dic': [
        {'_id': '1', 'value': 'apple'},
        {'_id': '2', 'value': 'car'}
    ]
})

方法1:键顺序固定的简单场景

当所有行字典的键顺序完全一致时,可直接提取值生成新列:

new_df = pd.DataFrame(df['dic'].apply(lambda x: list(x.values())).tolist(), columns=['_id', 'value'])

方法2:通用兼容场景

不受字典键顺序影响,存在部分行缺键时自动填充NaN,更稳定:

new_df = pd.json_normalize(df['dic'])

合并回原数据集

如果需要保留原始DataFrame除字典列外的其他字段,可按以下方式拼接:

df = pd.concat([df.drop('dic', axis=1), new_df], axis=1)

最终输出效果

处理后得到的结果如下:

_idvalue
1apple
2car

注意事项

  • 如需自定义列名,可直接修改生成的new_df的columns属性,如new_df.columns = ['第一列', '第二列']
  • 若字典嵌套层级超过1层,可调整pd.json_normalize的record_path、meta参数适配需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 08:54:03