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

如何从pandas DataFrame列的列表内嵌字典中提取值生成新列

实现方法

你可以直接通过以下两种方式从列表嵌套字典的results列中提取label值生成新列:

方法1:apply实现(易读性高,适合小数据量)

如果每行results的列表固定只有1个字典元素,直接写lambda表达式取值即可:

import pandas as pd

# 你的原始示例DataFrame
df=pd.DataFrame({
    'results':[[{'label': 'POSITIVE', 'score': 0.9989271759986877}],
              [{'label': 'POSITIVE', 'score': 0.9988722801208496}]
]})

# 新增label列
df['label'] = df['results'].apply(lambda x: x[0]['label'])

如果要兼容列表为空、字典无label键的异常场景,避免报错可以加判断:

df['label'] = df['results'].apply(lambda x: x[0].get('label') if len(x) > 0 else None)

方法2:str访问器实现(性能更高,适合大数据量)

直接用pandas内置的序列化访问方法,不需要写自定义函数:

df['label'] = df['results'].str[0].str['label']

特殊场景补充

如果每行results列表中存在多个字典,需要提取所有label值的话,可以改成列表推导式实现:

df['label'] = df['results'].apply(lambda x: [item['label'] for item in x])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.18 02:36:01