Pandas将字典转为DataFrame时列表值被展开如何解决
解决方案
你可以将字典中每个值外层包裹一层单元素列表,再传入DataFrame构造函数,即可让Pandas将原列表整体作为单个单元格存储,不会拆分展开。
正确代码示例:
import pandas as pd # 注意不要用dict作为变量名,避免覆盖Python内置dict关键字 data_dict = {'A': [1,2,3], 'B': [1,2,3,4]} df = pd.DataFrame({key: [value] for key, value in data_dict.items()})
打印输出即可得到你预期的结果:
A B 0 [1, 2, 3] [1, 2, 3, 4]
原代码问题原因
pd.DataFrame.from_dict处理字典时,默认会将每个键对应的可迭代对象(这里是列表)逐元素拆分,映射为不同的行,两个列表长度不一致时,短列表末尾会自动填充空值,因此会出现你看到的列表被展开的结果。
内容的提问来源于stack exchange,提问作者denpy
相关产品推荐
相关产品推荐

