如何解决从数据框字典创建Excel表
我有数据框字典。
dd = {
'table': pd.DataFrame({'Name':['Banana'],'color':['Yellow'],'type':'Fruit'}),'another_table':pd.DataFrame({'city':['Atlanta'],'state':['Georgia'],'Country':['United States']}),'and_another_table':pd.DataFrame({'firstname':['John'],'middlename':['Patrick'],'lastnme':['Snow']}),}
我想创建一个Excel文件,其中包含根据这些数据框创建的Excel Table对象。每个表都必须位于单独的选项卡/表上,并且表名称应与数据框名称匹配。
这可能与Python有关吗?
到目前为止,我只能将数据正常导出到Excel,而不能使用xlsxwriter
writer = pd.ExcelWriter('Results.xlsx',engine='xlsxwriter')
for sheet,frame in dd.items():
frame.to_excel(writer,sheet_name = sheet)
writer.save()
解决方法
要从Pandas编写多张纸,请使用 openpyxl 库。另外,为防止覆盖,请在每次更新之前设置工作簿表。
尝试以下代码:
import pandas as pd
import openpyxl
dd = {
'table': pd.DataFrame({'Name':['Banana'],'color':['Yellow'],'type':'Fruit'}),'another_table':pd.DataFrame({'city':['Atlanta'],'state':['Georgia'],'Country':['United States']}),'and_another_table':pd.DataFrame({'firstname':['John'],'middlename':['Patrick'],'lastnme':['Snow']}),}
filename = 'Results.xlsx' # must exist
wb = openpyxl.load_workbook(filename)
writer = pd.ExcelWriter(filename,engine='openpyxl')
for sheet,frame in dd.items():
writer.sheets = dict((ws.title,ws) for ws in wb.worksheets) # need this to prevent overwrite
frame.to_excel(writer,index=False,sheet_name = sheet)
writer.save()
# convert data to tables
wb = openpyxl.load_workbook(filename)
for ws in wb.worksheets:
mxrow = ws.max_row
mxcol = ws.max_column
tab = openpyxl.worksheet.table.Table(displayName=ws.title,ref="A1:" + ws.cell(mxrow,mxcol).coordinate)
ws.add_table(tab)
wb.save(filename)
输出
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。