自动合并Excel的4种方法,pandas自动化办公,YYDS_自动化

大家好,这里是程序员晚枫。

上次我们通过阅读源码,分享了:​​官方推荐:6种Pandas读取Excel的方法,太方便了~​

今天我们继续阅读源码,学一个实用技巧:如何2个excel里的合并数据?

每个方法都配了一张合并效果图,建议小白直接看图,有不理解的再配合文字阅读。

以下方法,按照​​从易到难​​排序。有些方法文字描述起来比较抽象,但看图一定可以秒懂~

一、源码解析

通过研究源码可以发现,除去被淘汰的append方法,目前通用的合并方法一共有4个,

  • concat、merge,来自源码的./pandas/core/reshape文件夹,是pandas本身可以调用的;
  • join、combine,来自源码的./pandas/core/frame.py文件,是只能由dataframe调用的。

每种方法都有复杂的用法,本文主要是​​入门引导性​​说明。

所以每种方法只给大家介绍一个最容易理解的效果,如果想深入学习,可以加一下读者群进行讨论~

二、方法说明

1、concat

对2个有着相同列名的excel表格,进行上下拼接式的合并。

​应用场景​

当我想把自己所有平台账号的基本信息,汇总到一个表格里。如下图所示,一行代码完成合并。👇

自动合并Excel的4种方法,pandas自动化办公,YYDS_自动化_02

append(已经被淘汰了!!)

这个方法很多文章都在介绍。

其实它和concat效果一模一样,而且pandas官方在源码里明确提示了:这个方法即将在新的pandas版本里淘汰,不要使用了,请直接使用concat方法。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Rn8jJ5kd-1657947687083)(https://www.python-office.com/api/img-cdn/pandas/hebing/append.jpg)]

FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead.

下次再看到有介绍pandas用append方法进行合并的文章,你知道该怎么做了吧?

2、merge

merge合并稍微复杂一点。

​我们举个简单的例子:​

在同一行里,罗列出我所有平台的关注数,如下图所示。👇

merge更关心列之间的合并。

自动合并Excel的4种方法,pandas自动化办公,YYDS_pandas_03

3、join

如上文所述,join是对数据的精细化操作。

例如我有的文件有2行,有的文件有1行,但是他们的格式是一样的,我想对它们进行横向的拼接。有些文件没有第2行的情况下,自动填充空白,方便我的后续操作。如下图所示👇

join更关心行之间的合并。

自动合并Excel的4种方法,pandas自动化办公,YYDS_pandas_04

4、combine

这是一个最复杂的方法,因为它需要在合并时进行计算。

​例子​

我想看一下哪天的微博浏览量最少,于是在合并的同时,进行了大小比较的计算。如下图所示👇combine在合并的同时,对数据列进行了比较、计算。

自动合并Excel的4种方法,pandas自动化办公,YYDS_自动化_05

三、写在最后

以上就是使用pandas进行合并的4个常用方法了。

我们的python-office库,也使用这几个方法开发了几个功能:

近期还会发布若干个1行代码合并Excel的极简操作,大家可以关注一下我,收到最新消息。