首页 > 解决方案 > Python:Excel的不同维度的字典

问题描述

有没有什么有效的方法可以使用 pandas 编写不同维度的字典来表现出色?

例子:

import pandas as pd
mylist1=[7,8,'woo']
mylist2=[[1,2,3],[4,5,6],['foo','boo','doo']]
d=dict(y=mylist1,x=mylist2)
df=pd.DataFrame.from_dict(d, orient='index').transpose().fillna('')
writer = pd.ExcelWriter('output.xls',engine = 'xlsxwriter')
df.to_excel(writer)
writer.save()

目前的结果,

在此处输入图像描述

想要的结果,

在此处输入图像描述

请注意,我的数据库比这个简单的例子大得多。所以一个通用的答案将不胜感激。

标签: python-3.xpandasdictionary

解决方案


您可以在导出到 excel 之前先修复您的数据框:

df=pd.DataFrame.from_dict(d, orient='index').transpose()

df = pd.concat([df["y"],pd.DataFrame(df["x"].tolist(),columns=list("x"*len(df["x"])))],axis=1)

或者在上游做:

df = pd.DataFrame([[a, *b] for a,b in zip(mylist1, mylist2)],columns=list("yxxx"))

两者产生相同的结果:

     y    x    x    x
0    7    1    2    3
1    8    4    5    6
2  woo  foo  boo  doo

推荐阅读