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

将字典转换为DataFrame时如何避免值被包裹在列表中

解决pandas from_dict转换后值被包裹在列表中的问题

常见场景与对应解决方法

场景1:字典每个值是长度为1的列表,需得到标量值的DataFrame

如果你的字典结构类似 {'col1': ['val1'], 'col2': ['val2']},直接预处理字典提取列表内的元素即可:

import pandas as pd

original_dict = {'姓名': ['张三'], '年龄': [28], '城市': ['北京']}
# 提取列表中的单个元素
cleaned_dict = {k: v[0] for k, v in original_dict.items()}
# 生成单行DataFrame
df = pd.DataFrame([cleaned_dict])

转换后的DataFrame每个单元格都是标量值,不再是列表。

场景2:字典中的列表包含多个元素,需展开为多行

如果列表长度大于1,想要把每个列表元素拆成单独的行,使用explode方法:

original_dict = {'姓名': ['张三', '李四'], '年龄': [28, 30]}
df = pd.DataFrame.from_dict(original_dict)
# 展开所有列的列表元素
df = df.explode(df.columns.tolist())

场景3:调整orient参数适配行式字典结构

如果你的字典是按行组织的(键对应行标识,值是该行的字段值列表),可以指定orient='index'并设置列名:

original_dict = {'行1': ['张三', 28, '北京'], '行2': ['李四', 30, '上海']}
df = pd.DataFrame.from_dict(original_dict, orient='index', columns=['姓名', '年龄', '城市'])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 17:30:45