前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何利用 pandas 批量合并 Excel?

如何利用 pandas 批量合并 Excel?

作者头像
刘早起
发布2022-09-21 11:04:23
7540
发布2022-09-21 11:04:23
举报
文章被收录于专栏:早起Python早起Python

大家好,我是早起。

今天分享一个利用Pandas进行数据分析的小技巧,也是之前有粉丝在后台进行提问的,即如何将多个pandas.dataframe保存到同一个Excel中。

其实只需要灵活使用pandas中的pd.ExcelWriter()方法即可,还是以300题中的数据为例。

假设现在我们有df1 df2 df3三个dataframe,需要将它们保存到同一个Excel的不同sheet中,只需要先创建一个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方法类似,我们也可以使用同样的方法

with pd.ExcelWriter("test1.xlsx") as 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)

得到的结果是一样的,可以将多个df保存到一个Excel中

这个方法虽然简单好用,但是如果要保存的 df 太多了,一个一个手动去读取再手动去保存就显得十分麻烦,另外我们希望sheet是文件名,如果手动复制粘贴,就更麻烦了。

这时,办公自动化系列的文章就发挥作用了,我们先简单拿来一个小脚本「获取指定目录下的全部Excel文件名」

import os
def getfile(dirpath):
    
    filelist = []
    for root,dirs,files in os.walk(dirpath):
        for file in files:
            if file.endswith("xlsx") or file.endswith("csv"):
                filelist.append(os.path.join(root,file)) 
    
    return filelist

执行一下,可以看到指定目录下的全部Excel文件名

下面要做的,我想不用多说了「循环读取,自动保存」

filelist = getfile('/Users/liuzaoqi/Desktop/zaoqi/2022公众号文章/如何保存多个df')
writer = pd.ExcelWriter('test.xlsx')
for file in filelist:
    if file.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中的不同sheet中,并且sheet名是对应的文件名

如果你对本文的内容感兴趣,不妨拿走代码试一下,如果你还有pandas相关问题,欢迎在评论区留言。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-05-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 早起Python 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档