And*_*den 69 python pandas openpyxl
如何将DataFrame列表导出到一个Excel电子表格中?
国家文件to_excel:
注意
如果传递现有的ExcelWriter对象,则表单将添加到现有工作簿中.这可用于将不同的DataFrame保存到一个工作簿
writer = ExcelWriter('output.xlsx')
df1.to_excel(writer, 'sheet1')
df2.to_excel(writer, 'sheet2')
writer.save()
在此之后,我想我可以编写一个函数,将一个DataFrame列表保存到一个电子表格中,如下所示:
from openpyxl.writer.excel import ExcelWriter
def save_xls(list_dfs, xls_path):
writer = ExcelWriter(xls_path)
for n, df in enumerate(list_dfs):
df.to_excel(writer,'sheet%s' % n)
writer.save()
Run Code Online (Sandbox Code Playgroud)
但是(带有两个小DataFrame的列表,每个都可以to_excel单独保存),会引发异常(编辑:删除跟踪):
AttributeError: 'str' object has no attribute 'worksheets'
Run Code Online (Sandbox Code Playgroud)
大概是我没有ExcelWriter正确地打电话,我应该怎么做才能做到这一点?
And*_*den 105
你应该使用pandas自己的ExcelWriter类:
from pandas import ExcelWriter
# from pandas.io.parsers import ExcelWriter
Run Code Online (Sandbox Code Playgroud)
然后该save_xls函数按预期工作:
def save_xls(list_dfs, xls_path):
with ExcelWriter(xls_path) as writer:
for n, df in enumerate(list_dfs):
df.to_excel(writer,'sheet%s' % n)
writer.save()
Run Code Online (Sandbox Code Playgroud)
如果有人需要使用数据帧字典的示例,请执行以下操作:
from pandas import ExcelWriter
def save_xls(dict_df, path):
"""
Save a dictionary of dataframes to an excel file, with each dataframe as a seperate page
"""
writer = ExcelWriter(path)
for key in dict_df:
dict_df[key].to_excel(writer, key)
writer.save()
Run Code Online (Sandbox Code Playgroud)
例:
save_xls(dict_df = my_dict, path = '~/my_path.xls')