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

pandas中从列内字典列表提取name值生成新列的方法

从字符串存储的字典列表列提取name值的pandas实现

处理流程

  • 识别到目标列存储的是字符串形式的字典列表(非原生Python对象),无法直接遍历取值,需先将字符串解析为原生结构,再逐字典提取name字段存入新列
  • 无需针对Action、Adventure等具体类目做单独规则匹配,可自动覆盖列内所有字典条目的name取值

可直接复用的代码

  1. 导入依赖
import pandas as pd
import json
import ast
  1. 定义带容错的提取函数
def extract_target_names(cell):
    # 空值返回空列表,避免程序报错
    if pd.isna(cell):
        return []
    # 兼容双引号标准JSON、单引号非标准JSON两种字符串格式
    if "'" in cell:
        parsed = ast.literal_eval(cell)
    else:
        parsed = json.loads(cell)
    # 遍历提取所有字典的name值
    return [item["name"] for item in parsed]
  1. 生成新列
# 将"原始列名"替换为实际存储字典列表字符串的列名,提取结果存入"提取结果列"新列
df["提取结果列"] = df["原始列名"].apply(extract_target_names)

输出效果

示例输入单元格内容:'[{"id": 28, "name": "Action"}, {"id": 12, "name": "Adventure"}, {"id": 14, "name": "Fantasy"}, {"id": 878, "name": "Science Fiction"}]'
对应新列输出内容:['Action', 'Adventure', 'Fantasy', 'Science Fiction']

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.30 22:36:04