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

如何解析Pandas DataFrame列中字符串格式列表并提取指定name字段值

解决方案

核心逻辑是通过apply将你已验证的单行提取逻辑批量作用到整列,同时增加异常兼容避免报错。

完整可运行代码

import pandas as pd
import ast

# 模拟DataFrame
df = pd.DataFrame({'org [dtype: Object]': {0: "[{'name': 'Org Lvl 1'}, {'name': 'Org Lvl 2'}, {'name': 'Org Lvl 3'}, {'name': 'Org Lvl 4'}]"}})

# 批量提取目标值
df['target_org_name'] = df['org [dtype: Object]'].astype(str).apply(
    lambda s: ast.literal_eval(s)[3].get('name') 
    if isinstance(ast.literal_eval(s), list) and len(ast.literal_eval(s)) >=4 
    else None
)

运行后df['target_org_name']即为你需要的提取结果,示例行对应值为Org Lvl 4。如果你不需要兼容异常场景,且确认所有行的org列表长度都≥4,可以简化为:

df['target_org_name'] = df['org [dtype: Object]'].astype(str).map(ast.literal_eval).str[3].str.get('name')

补充说明

  • 之前调用.str访问器报错的原因是org列的object类型中存在非字符串值,提前加astype(str)即可解决,但用split拆分的方式不稳定,如果name字段本身包含逗号会出现拆分错误,用ast.literal_eval转成原生Python结构是更可靠的方案。
  • 如需省略中间生成的辅助列,可以直接将结果赋值到原org列覆盖原有值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 10:15:04