将字典保存到.XLSX中

使用Python + Pandas,有没有一个简单快捷的方法来将Dict(包含键的文件名和值的几列数据)保存到.XLSX文件中?

经过一番研究,我尝试使用下面的代码将它转换成一个pandas数据框(因为我知道你可以从一个pandas数据框写入一个.XLSX文件):

import pandas as pd import glob f_list = glob.glob("C:\\Users\\me\\dt\\xx\\*.xlsx") sheets = {f: pd.read_excel(f) for f in f_list} new_df = pd.DataFrame.from_dict(sheets, orient = "index") new_df.to_excel("ALL_RUCDR_DATA.xlsx") 

但我得到这个错误:

TypeError:write()中不支持的types(class'pandas.core.frame.DataFrame')。

我知道它会成功创build字典,它似乎创buildDataFrame,但为什么不创build文件?

文档build议您使用以下操作:

 with pd.ExcelWriter('path_to_file.xlsx') as writer: for (sheet_name, df) in sheets.items(): df.to_excel(writer, sheet_name=sheet_name) 

由于from_dict的字典上的from_dict创build了一个奇怪的DataFrame,其中每个元素都是一个DataFrame:

 In [11]: sheets = {"a": pd.DataFrame([[1]], columns=["A"]), "b": pd.DataFrame([[2], [3]], columns=["B"])} In [12]: pd.DataFrame.from_dict(sheets, orient='index') Out[12]: 0 b B 0 2 1 3 a A 0 1 In [13]: pd.DataFrame.from_dict(sheets, orient='index').applymap(type) Out[13]: 0 b <class 'pandas.core.frame.DataFrame'> a <class 'pandas.core.frame.DataFrame'> 

这不会映射到Excel表单,因为它需要单个值(例如int / float / string)作为元素。

如果您想要将字典中的数据合并/连接/合并到单个文件中,请检出文档的合并部分 (根据大pandasDataFrame而不是电子表格来考虑)。