文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Python批量合并Excel表

2023-09-11 06:12

关注

一、问题的提出

现收集到多个Excel表,需要对这些表进行汇总合并。但是这些Excel表并不规则,有不少空列,而且这些列名虽然一致,但是顺序各不相同,所以汇总起来并不是那么简单。单独的一个Excel表显示如下:

Excel表

二、问题的解决

起初考虑用openpyxl,但是由于问题较为复杂,最后决定用os和pandas来解决。

第一步:用os来遍历当前目录下的所有excel表格,用列表表达式来生成这些文件名的列表:

import osfiles = [file for file in os.listdir(".") if file.endswith(".xlsx") if not file.endswith("~")]

第二步:导入pandas,批量读取Excel表,删除空例。

    df =  pd.read_excel(file, index_col=None,header = 0)    df1 = df.dropna(how='all', axis=1,inplace=False) #inplace=True不创建新的对象    lst.append(df1)

第三步:利用pandas中的concat来按照列名合并数据框,最后把数据框转化为Excel,最终形成以下代码:

import pandas as pdimport oslst = []files = [file for file in os.listdir(".") if file.endswith(".xlsx") if not file.endswith("~")]for file in files:    df =  pd.read_excel(file, index_col=None,header = 0)    df1 = df.dropna(how='all', axis=1,inplace=False) #inplace=True不创建新的对象    lst.append(df1)sava_data = pd.concat(lst,axis = 0,ignore_index=True) #ignore_index 重建索引 axis=1 列空值sava_data.to_excel("合并.xlsx",index=False,header=1) #设置无索引

三、合并的Excel表

以下是合并后的Excel表展示,效果还不错,保持了原为表头和格式,而且排列整齐。

合并后的Excel表

四、学后反思

  1. 用习惯了openpyxl就不太喜欢用pandas,主要是因为pandas比较复杂,但是它能解决复杂的问题,有机会以还是要认真地学习。
  2. pandas的功能强大,学起来虽然不容易,但是可以帮助我们解决很多现实问题。唯一的缺点是它做成的程序打包以后个头比较大,需要的时间也更长。比如上面的10行代码,打包以后竟然达到了90M。打包后程序运行速度也不错,整理的数据更整齐,格式更为规范,便于后期的分析和处理。
  3. 最后还是想强调一点,很多Python包的学习要以项目为导向,从解决现实问题入手,在了解pandas基础上,通过大胆尝试,小心验证,边学习边实践,收获才能收获满满。

来源地址:https://blog.csdn.net/henanlion/article/details/130692020

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯