之前曾尝试用 Python 写过整理 Excel 表格的代码,记录在《Python 自动整理 Excel 表格》中。当时也是自己初试 pandas,代码中用到的也是结合需求搜索来的 merge 方法实现两个表格的“融合”,现在看来也不算复杂。起初没什么人看,也没留意;最近很意外地被几位朋友转载了去,竟也带着原文阅读破千了,吸引了不少新的关注。

由此想到,可能 pandas 处理表格并没有想象中被熟知,如果不接触可能完全意识不到会有这类工具的存在。

今天要分享的这个问题和之前的类似,也是表格合并:

首先是需求一:有 表 A.xlsx 和 表 B.xlsx,想将其纵向合并成同一张表格:

以及需求二:想在 表 C.xlsx 中提取第三列、在 表 D.xlsx 中提取前两列,整合成新的表格:


如果不用编程,纯手工操作其实并不难,选中区域、复制再粘贴就搞定了。工作量小的情况下,手工操作一番还挺快乐的;但如果文件几十上百份、甚至成百上千的话就一言难尽了。所以,工作量大时,编程代码来实现上述操作的优势就凸显了:修改代码中几个参数,设置几个循环遍历,等几秒钟便可轻松搞定。

下面看 Python 实现的思路和步骤,还是要用之前提到过的 pandas 库。

pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。pandas提供了大量能使我们快速便捷地处理数据的函数和方法。你很快就会发现,它是使Python成为强大而高效的数据分析环境的重要因素之一。

pandas 百度百科

关于 pandas 网上一堆这里先不赘述。此外,由于涉及 xlsx 格式的 Excel 表格读写,还需要 xlrd 和 openpyxl 模块的支持,可通过以下命令安装模块:

pip install xlrdpip install openpyxl

如果运行代码过程中,报错 No Module ... 可以尝试安装相应模块来解决。

需求一编码

模块准备就绪,首先是导入 pandas 模块,通过 read_excel  方法来读取表格内容。表 A 读取如下:

表 B 读取如下:

读取到的表格内容的数据格式是 Dataframe (pandas 中的一种数据格式),最左侧竖排 0 开始的数字是该数据格式的 index。

我们可以通过 pandas 中的 concat 方法来合并不同的 Dataframe。注意 concat 方法中有个参数是 axis,默认为 0 表示按行即纵向合并,此处我们没有做设置使用的是默认值:

合并成功,但仍有问题,即最左侧的 index 和 "序号" 一列中的数字并没有实现依据实际表格数据进行更新,仍是保持原样需要做调整。首先是通过 reset_index 来重置下 index:

此外还要对"序号"这一列中的数字更新处理:

OK,纵向合并完成,将合并后的数据通过 to_excel 方法保存到 xlsx 表格中:

最终,文件夹内会生成 result1.xlsx 表格文件,即合并后的结果了。

需求二编码

相较上个需求,此处额外多了一个提取某列,即定位数据格式中的部分数据,同时不同的是这次我们要横向按列合并提取出的内容。大致有些思路,仍是一步步来,首先仍是通过 read_excel 读取两个表格:

因为需求要定位到特定某列,故通过 iloc 方法实现通过索引定位并提取某行某列数据,首先是 iloc[:,2] 获取 表 C 中的第三列(此处 ":" 代表所有行;2 代表由0开始的列索引值,即第三列):

以及 iloc[:,[0,1]] 获取 表 D 中的第一、二列(此处 ":" 代表所有行;[0,1] 代表由0开始的列索引值,即第一列和第二列):

获取到了特定的数据内容,仍然通过 concat 来合并,这里由于我们需要横向按列合并,故需要额外设置 axis 参数为 1:

最终仍是通过 to_excel 方法保存 xlsx 格式表格文件:

至此,需求完成,任务搞定。

后续编码

接下来我们可能还有疑问,这样写出来的代码不还是只能将两份表格合并为一,怎么处理大量表格呢?

还记得学 Python 或其它编程语言开头都要学的 for 循环、定义方法么?基于刚实现的代码,我们就可以将整个合并流程定义成一个独立的方法,针对我们需要处理的大量文件,可以通过 for 循环来遍历、调用定义的方法来逐一完成处理。

由于我手头上没有太多文件,且提问题的朋友没做要求,所以后续代码没有展开。


此外,对于公众号的文章,我最初的观点是写自觉有趣的东西给大家当个乐子看。随着大家的反馈与提问,现在我对 "有趣" 的理解也丰富了些:除了博人眼球,用编程思路去优化现实中的问题也是很有意思的。

应懒癌朋友的要求,在这整理一下之前发过的几篇关于 Excel 表格处理以及 PDF 文件相关的文章,如有需要自取哈~

Excel 表格处理相关:

  • 用 Python 整理 Excel 表格

    摘要:将一份表格文件中不同 sheet 单页面中的数据汇总整理到一起

  • Python 自动整理 Excel 表格

    摘要:将两份表格通过共有的数据信息进行合并融合

  • 给无网络的办公电脑插上 Python 小翅膀

    摘要:Windows 办公电脑在无网络情况下 Python 和 pandas 安装参考

  • 本篇

    摘要:提取表格内容进行横、纵向合并

PDF 文件处理相关:

  • Python 读取 PDF 信息插入 Word 文档

    摘要:批量在不同 PDF 中提取特定位置的数据插入到对应 Word 文档中

  • Python 办公小助手:读取 PDF 中表格并重命名

    摘要:批量读取 PDF 中特定数据,并以读取到的数据重命名该 PDF 文件

这么一整理,也没几篇。。

以上,感谢阅读~

excel怎么把竖排变成横排_Python 合并 Excel 表格相关推荐

  1. html代码怎么把竖排转横排,Excel怎么把竖排变成横排 两个方法实现

    很多时候我们在Excel处理数据的时候需要将原本竖排的数据给弄成横排,但是一个一个复制粘帖可不行,效率太低,那么如何做到快速将竖排数值转成横排呢,下面通过两种方法来讲一下. Excel2007 类别: ...

  2. excel怎么把竖排变成横排_Word2013竖排文字怎么排版

    在excel中进行文字排版时,都是横排文字,但有着竖排文字,竖排文字怎么排版呢?下面小编一起看看Word2013竖排文字怎么排版吧. --------------------------------- ...

  3. excel怎么把竖排变成横排_排版丑怎么办?5个方法拯救你

    天空一声巨响 P君闪亮登场 然后我 又带着新鲜干货 来和你们见面啦! 今天要给大家说一说的是图文封面以及内容页的排版 怎么样才能看起来高大上,并且在众多PPT中脱颖而出呢? 来看我!天秀! 首先我们先 ...

  4. excel怎么把竖排变成横排_桐城家谱编修丨麻城家谱数字化丨新时代编修家谱该怎么编修?...

    桐城家谱编修丨麻城家谱数字化丨新时代编修家谱该怎么编修? 新中国成立后的50-70年代,编修家谱活动曾一度停止,大量的旧谱牒遭到破坏.80年代改革开放以来,在福建.浙江等东南沿海省份率先出现了重修家谱 ...

  5. excel怎么把竖排变成横排_如何优雅的使用Excel作出高大上的图片

    点击下图可看科研绘图专辑 解螺旋公众号·陪伴你科研的第2200天 Excel绘制弦图.标准化热图.相关性系数图.地图.Cleveland图全在行!几乎所有人电脑上都安装有Excel.微软花了20年时间 ...

  6. excel怎么把竖排变成横排_excel:斜线表头的制作方法,并且拖拽也不变形,值得收藏...

    我们是Excel技术控,大家看完文章喜欢的话,可以关注下.谢谢支持. 在excel的使用过程中,经常要制作单斜线表头,双斜线表头,以及多斜线表头,实际都不难.一个痛点是,斜线表头的在拖拽,也就是列宽变 ...

  7. python表格多列合并_python 合并excel表格数据-如何用python从excel中同时提取两个列的数据,并生成dict(用xlrd)...

    用Python导出工程文件两个子页里的数据成为两个excel表格,但我想把它合并成个一个excel表格的两个sheet 可以采用一些操作Excel块去实现,比如xlrd.xlwt.openpyxl.x ...

  8. excel怎么把竖排变成横排_预算在6000元!这四款手机怎么选?

    近期的手机市场可以说是非常的热闹,很多手机厂商都发布了2019年度压轴的旗舰产品!但是对于很多用户来说,因为资金预算不足问题,不得不妥协选择了千元机暂时使用,但是不管是什么原因,大家都还是需要一台&q ...

  9. excel怎么把竖排变成横排_PS虚线字怎么制作-PS虚线字绘制教程详解

    PS是一个功能强大的图形图像处理工具,我们可以使用软件给图片添加各种有趣的特效,也可以制作出创意文字.下面翻翻小编就教大家PS虚线字怎么制作,感兴趣的小伙伴不要错过,赶快来看一下吧! PS虚线字怎么制 ...

最新文章

  1. c语言计算字符串的函数是什么,字符函数
  2. Golang的time包:秒、毫秒、纳秒时间戳输出
  3. unordered_map使用自定义enum作为键值
  4. 重磅!阿里推出国产开源JDK!
  5. 023文件类型,权限,chmod,文件特殊属性
  6. C#学习-程序集和反射
  7. Java对证书的操作
  8. php在apache中式模块,在WIN98下以apache模块方式安装php
  9. 蓝牙mesh组网-JDY-24M初步探索
  10. GNS3安装和使用教程
  11. Windows 10的“稳定”于2019年4月更新将在某些游戏中导致BSOD
  12. ADF单位根检验三种形式_【EViews】面板数据的处理方法及检验步骤
  13. vue 路由守卫的使用
  14. jd-gui中文乱码解决方案
  15. 商业智能在医疗卫生领域的应用
  16. 妈妈见我来了的香港旅游局
  17. Latex制作beamer幻灯片、写论文的基本语句
  18. 5年运维经验分享:一个小白走向高级运维工程师之路
  19. 4.2.2异步请求高级模式
  20. 自学整理之HTML5常用标签和知识——小白篇

热门文章

  1. kafka核心技术与实战 思维导图
  2. 用Python Scrapy爬取某电影网站并存储入mysql
  3. 解析数据分析中的SAS
  4. Linux下pdf 编辑器 pdftk 用法集锦(最全易懂)
  5. HTTP协议简析《图解http》
  6. Win+ubuntu单硬盘双系统安装(雷神新911机型)
  7. 撸一个VS Code插件——红白机模拟器 支持手柄 支持保存
  8. 荣耀MagicBook重装系统后安装指纹驱动教程
  9. 以微博核心业务为例,解读如何仅用1台服务器支持百万DAU
  10. ppt模板怎么统一添加动画效果?