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

Pandas如何从含嵌套列表的列提取所有参与者信息并用***分隔生成新列

首先你需要先确认participants列的数据类型:如果是从CSV读取的默认是字符串格式,需要先转换为Python原生的列表字典结构,之后遍历每条记录里的所有参与方元素拼接内容即可,完整代码如下:

import ast
import pandas as pd

# 第一步:将字符串格式的嵌套结构转换为Python可识别的列表字典
responses['participants'] = responses['participants'].apply(ast.literal_eval)

# 第二步:提取所有参与方的角色,不同参与方用***分隔
responses['Role of Participant(s)'] = responses['participants'].apply(
    lambda x: '***'.join([', '.join(role['type'] for role in item['roles']) for item in x])
)

# 第三步:提取所有参与方的姓名,不同参与方用***分隔
responses['Name of Participant(s)'] = responses['participants'].apply(
    lambda x: '***'.join([item['life']['name'] for item in x])
)

逻辑说明

你之前的代码只取了每个列表的第0个元素element[0],所以只能拿到第一条参与方信息。上面的代码会遍历列表里所有的参与方对象,分别提取对应信息后按要求拼接。
如果你的participants列已经是Python列表格式,跳过第一步的类型转换即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 08:45:08