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

如何从Pandas DataFrame的JSON列提取指定字段生成新DataFrame

你不需要关心JSON内部的键顺序,JSON本身是无序键值对结构,直接通过键名取值就能拿到正确结果,不受排列顺序影响,以下是具体实现方案:

方案1:逐行转字典后提取(易理解)
import pandas as pd
import json

# 假设你的原始DataFrame变量名为df
# 第一步:将Values列的JSON字符串转为Python字典
df["values_dict"] = df["Values"].apply(json.loads)

# 第二步:按字段名提取对应值,和JSON内部键顺序完全无关
# 用get方法可以避免部分JSON缺失目标键时报错,缺失时返回空值
df["Old"] = df["values_dict"].apply(lambda x: x.get("Old Value"))
df["New"] = df["values_dict"].apply(lambda x: x.get("New Value"))

# 第三步:生成目标格式的DataFrame
result_df = df[["ID", "Date", "Old", "New"]]
方案2:用json_normalize一步解析(更简洁)
import pandas as pd
import json

# 直接解析Values列的JSON字段,合并到原DataFrame
df = df.join(pd.json_normalize(df["Values"].apply(json.loads)))

# 重命名字段后提取需要的列即可
result_df = df.rename(columns={"Old Value": "Old", "New Value": "New"})[["ID", "Date", "Old", "New"]]
运行效果

针对你给出的示例数据,运行后得到的result_df输出如下:

IDDateOldNew
12342021-01-01Segment 1Segment 2

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 17:45:00