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

如何从Pandas DataFrame的字典格式列中提取值生成新列

Pandas提取JSON列字段解决方案

原有代码错误原因

你使用的explode方法仅适用于列表类型的列展开,且DataFrame中不存在"orderNum"列,因此无法提取到目标值。

实现方法

情况1:Details列为JSON字符串类型

绝大多数场景下存储的是字符串格式的JSON,需要先将其转为Python字典再取值:

import json
import pandas as pd

# 提取orderNum值存入目标列
df['OrderNumber'] = df['Details'].apply(lambda x: json.loads(x)['orderNum'])

情况2:Details列为Python字典类型

如果该列已经经过字典转换,可以直接用pandas的str访问器取值,执行效率更高:

df['OrderNumber'] = df['Details'].str['orderNum']

完整测试示例

import pandas as pd
import json

# 构造和需求一致的测试数据
df = pd.DataFrame({
    'ActionTime': ['1/2/2021 17:21', '1/2/2021 20:16', '1/3/2021 8:38'],
    'Details': ['{"orderNum":123456}', '{"orderNum":467899}', '{"orderNum":753951}']
})

df['OrderNumber'] = df['Details'].apply(lambda x: json.loads(x)['orderNum'])
print(df)

运行后输出的结果和预期结构完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 23:36:01