如何组合多个Excel文件,但保留多个选项卡



我正在处理以下文件:

"2010sales.xlsx"(包括以下表格名称:国家/地区、产品和定价(

"2011sales.xlsx"(包括以下表格名称:国家/地区、产品和定价(

这些文件本质上是相同的,但与年份相对应的值不同

我想把这些文件合并成以下文件:

"totalsales.xlsx"(包括以下表格名称:国家、产品和定价(

我使用了以下代码:

import pandas as pd
excel1 = '2010sales.xlsx'
excel2 = '2011sales.xlsx'
output = 'totalsales.xlsx'
df1 = pd.read_excel(excel1,sheet_name=None)
df2 = pd.read_excel(excel2,sheet_name=None)
combine = [df1,df2]
join=pd.concat(combine)
print(join)
join.to_excel(output)

但我得到以下错误:

TypeError: cannot concatenate object of type '<class 'dict'>'; only Series and DataFrame objs are valid

如何在保持选项卡数量相同的情况下组合这些文件?

您的df1df2不是数据帧-它们是sheet_name的字典->sheet_data,因此您可以在加载它们(无论您选择如何称呼它们(后尝试:

with pd.ExcelWriter(output) as xlsout:
for sheet_name, rows in df1.items():
xlsout.to_excel(pd.concat([rows, df2[sheet_name]]), sheet_name, index=False)

最新更新