大家好,我是菜鸟小哥哥!其实只需要灵活使用pandas中的pd.ExcelWriter()方法即可!假设现在我们有三个数据框df1df2df3,我们需要将它们保存在同一个Excel的不同工作表中。我们只需要先创建一个ExcelWriter对象,然后继续写df1=pd.read_csv('东京奥运会奖牌数据.csv')df2=pd.read_excel("TOP250.xlsx")df3=pd.read_excel("2020中国大学排名.xlsx")writer=pd.ExcelWriter('test.xlsx')df1.to_excel(writer,sheet_name="df1",index=False)df2.to_excel(writer,sheet_name="df2",index=False)df3.to_excel(writer,sheet_name="df3",index=False)writer.save()类似于普通的文件读写with方法,我们也可以用pd.ExcelWriter("test1.xlsx")作为xlsxwriter:df1.to_excel(xlsxwriter,sheet_name="df1",index=False)df2.to_excel(xlsxwriter,sheet_name="df2",index=False)df3.to_excel(xlsxwriter,sheet_name="df3",index=False)结果是一样的,可以将多个dfs保存到一个Excel中。这种方法虽然简单易用,但是如果要保存的df太多,需要手动一一读取再手动保存,会很麻烦。另外希望sheet是文件名,如果手动复制粘贴就更麻烦了。这时候办公自动化系列文章就派上用场了。让我们简单地使用一个小脚本来“获取指定目录中的所有Excel文件名”importosdefgetfile(dirpath):filelist=[]forroot,dirs,filesinos.walk(dirpath):forfileinfiles:iffile.endswith("xlsx")或file.endswith("csv"):filelist.append(os.path.join(root,file))returnfilelist执行,可以看到指定目录下的所有Excel文件名。下面怎么办,我想不用我多说了。/howtosavemultipledf')writer=pd.ExcelWriter('test.xlsx')forfileinfilelist:iffile.endswith("xlsx"):df=pd.read_excel(file)else:df=pd.read_csv(file)df.to_excel(writer,sheet_name=file.split('/')[-1].split('.')[0],index=False)writer.save()现在,都在当前目录Excel在Excel中会自动合并成不同的工作表,工作表名称就是对应的文件名。如果你对本文的内容感兴趣,不妨拿出代码来试试看。
