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

如何用不等长列表字典创建单列Pandas DataFrame?

解决方法:将字典转换为单列Pandas DataFrame

嗨,我来帮你解决这个问题!当你用pd.DataFrame.from_dict(dictionary, orient='index')时,Pandas会默认把每个列表里的元素拆成单独的列,这确实不是你想要的效果。这里有两种简单的方法可以生成仅含单列的DataFrame:

方法一:预处理字典,包装列表为嵌套结构

我们可以先把字典里的每个列表值包装成一个嵌套列表(也就是让每个值变成[原列表]),这样Pandas就不会把它拆分成多列了:

import pandas as pd

# 示例字典
dictionary = {0: [1, 2, 3, 4], 1: [2, 4, 6, 7, 9, 10]}

# 预处理:把每个值包装成单个元素的列表
processed_dict = {key: [value] for key, value in dictionary.items()}

# 生成单列DataFrame,指定列名
df = pd.DataFrame.from_dict(processed_dict, orient='index', columns=['data'])

方法二:用Series中转(更简洁)

另一种更直接的方式是先把字典转换成Pandas Series,再转成DataFrame。Series天然支持把列表作为单个元素存储,转成DataFrame时默认就是单列:

import pandas as pd

# 示例字典
dictionary = {0: [1, 2, 3, 4], 1: [2, 4, 6, 7, 9, 10]}

# 先转Series,再转成单列DataFrame
df = pd.Series(dictionary).to_frame(name='data')

两种方法最终生成的DataFrame效果完全一致,每一行的单元格都会保留完整的列表:

data
0[1, 2, 3, 4]
1[2, 4, 6, 7, 9, 10]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 20:22:34