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

如何将含字典的嵌套列表转换为指定列的Pandas DataFrame?

解决嵌套列表转指定列名DataFrame的方法

先明确示例输入结构(和你的test格式一致):

test = [
    [{"label": "positive", "score": 0.8}, {"label": "negative", "score": 0.1}, {"label": "neutral", "score": 0.1}],
    [{"label": "positive", "score": 0.3}, {"label": "negative", "score": 0.6}, {"label": "neutral", "score": 0.1}]
]

你之前的方法无法实现需求,是因为stack()会打乱层级结构,没把label映射成列名。可以通过以下两种方式解决:

方法一:列表推导式转换字典结构

先将每个子列表中的三个字典,合并为一个以label为键、score为值的字典,再直接传入pd.DataFrame:

import pandas as pd

processed_data = [{d['label']: d['score'] for d in sublist} for sublist in test]
df = pd.DataFrame(processed_data)

运行后得到的DataFrame结构:

positivenegativeneutral
0.80.10.1
0.30.60.1

方法二:通过Series批量转换

如果子列表中字典的顺序不固定,或担心存在缺失的label,可以用pd.Series逐个转换子列表,再合并为DataFrame:

import pandas as pd

df = pd.DataFrame([pd.Series({d['label']: d['score'] for d in sublist}) for sublist in test])

这种方式会自动处理缺失的label,缺失值会填充为NaN。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 23:45:39