如何用不等长列表字典创建单列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
相关产品推荐
相关产品推荐

