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

如何用Python/Pandas将含JSON数组的DataFrame列拆分为两列?

在Pandas中展开JSON数组列的最简方法

首先需要注意你提供的原始数据存在JSON语法错误:部分字符串缺少闭合引号、使用了中文引号,实际处理前要确保vehicules列的每个字典都有正确的英文引号,否则会解析失败。

以下是实现需求的最简步骤:

  1. 使用explode()将vehicules列中的列表拆分为单独行,每行对应一个字典
  2. 使用pd.json_normalize()将字典展开为指定的两列

完整代码示例

import pandas as pd

# 构造修正语法后的示例DataFrame
df = pd.DataFrame({
    'vehicules': [
        [{'immatriculation': 'AAAAAA', 'type': 'car'}],
        [{'immatriculation': 'BBBBBB', 'type': 'truck'}, {'immatriculation': 'CCCCCC', 'type': 'car'}],
        [{'immatriculation': 'DDDDDD', 'type': 'car'}]
    ]
})

# 一行完成转换
result = pd.json_normalize(df.explode('vehicules')['vehicules']).reset_index(drop=True)

print(result)

输出结果

immatriculation   type
0           AAAAAA    car
1           BBBBBB  truck
2           CCCCCC    car
3           DDDDDD    car

代码说明

  • df.explode('vehicules'):把每个列表中的字典拆分为独立行,原本一个列表占一行的内容会拆成多个行,每行对应一个字典
  • pd.json_normalize():将字典的键(immatriculation、type)转换为列名,字典的值填充到对应单元格
  • .reset_index(drop=True):可选操作,用于重置结果的索引,让索引从0开始连续递增

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 09:57:28