合并Excel-Pandas

普通办公一族处理数据用的都是excel,excel也是office最伟大的发明之一。自己平时工作生活中也经常会用,所以准备写一些实用的小代码供大家参考。用Python来处理excel,很多人会觉得大材小用,其实不然。不管黑猫白猫,只要能抓老鼠都是好猫。

处理excel的模块有很多

xlwings

可结合 VBA 实现对 Excel 编程,强大的数据输入分析能力,同时拥有丰富的接口,结合 pandas/numpy/matplotlib 轻松应对 Excel 数据处理工作。

openpyxl

简单易用,功能广泛,单元格格式/图片/表格/公式/筛选/批注/文件保护等等功能应有尽有,图表功能是其一大亮点,缺点是对 VBA 支持的不够好。

pandas

数据处理是 pandas 的立身之本,Excel 作为 pandas 输入/输出数据的容器。

win32com

从命名上就可以看出,这是一个处理 windows 应用的扩展,Excel 只是该库能实现的一小部分功能。该库还支持 office 的众多操作。需要注意的是,该库不单独存在,可通过安装 pypiwin32 或者 pywin32 获取。

xlsxwriter

拥有丰富的特性,支持图片/表格/图表/筛选/格式/公式等,功能与openpyxl相似,优点是相比 openpyxl 还支持 VBA 文件导入,迷你图等功能,缺点是不能打开/修改已有文件,意味着使用 xlsxwriter 需要从零开始。

DataNitro

作为插件内嵌到 Excel 中,可完全替代 VBA,在 Excel 中使用 python 脚本。既然被称为 Excel 中的 python,协同其他 python 库亦是小事一桩。然而,这是付费插件...

xlutils

基于 xlrd/xlwt,老牌 python 包,算是该领域的先驱,功能特点中规中矩,比较大的缺点是仅支持 xls 文件。

在上述模块中,pandas偏向于数据处理,并不支持VBA脚本操作,但对于今天想实现的功能,足够了。

需求:在一个文件夹里存在若干个excel表格,每一个表格由一个人提交数据。其中每个表格数据列顺序不一致,合并所有表格并且添加检查代码。

案例数据

导入模块

优化显示

文件路径

切换路径

新建df,list1

合并数据

遍历路径文件

计算文件个数

读取excel表格

累加到总的df

列表累加表格名

统计结果

运行结果

到了这一步已经合并完成,但是测试的时候只有3个人,一眼就看出了三个人都提交了数据,假如有300个人,我们无法用肉眼去识别和计算。所以咱们可以按照文件名称去核对每个人提交的数据是否有问题。

打印表格人数

清空王五数据

检查代码

去重姓名列

判定是否等于人数

挑选出不在list1中的人

打印结果

运行结果

否则输出文件

添加王五数据并运行

查看表格

代码分享链接:

https://pan.baidu.com/s/1K5SlOYwdVoKG6fhf_uUCuQ

密码:kji8

文件内容

以后我也会更新一些其他模块的用法,如果有什么需求或者奇思妙想,可以在文章底部留言,大家一起讨论进步。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180808G1R0OV00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

同媒体快讯

扫码关注云+社区

领取腾讯云代金券