大家好,这里是程序员晚枫。
上次我们通过阅读源码,分享了:官方推荐:6种Pandas读取Excel的方法,太方便了~
今天我们继续阅读源码,学一个实用技巧:如何2个excel里的合并数据?
每个方法都配了一张合并效果图,建议小白直接看图,有不理解的再配合文字阅读。
以下方法,按照从易到难
排序。有些方法文字描述起来比较抽象,但看图一定可以秒懂~
一、源码解析
通过研究源码可以发现,除去被淘汰的append方法,目前通用的合并方法一共有4个,
- concat、merge,来自源码的./pandas/core/reshape文件夹,是pandas本身可以调用的;
- join、combine,来自源码的./pandas/core/frame.py文件,是只能由dataframe调用的。
每种方法都有复杂的用法,本文主要是入门引导性
说明。
所以每种方法只给大家介绍一个最容易理解的效果,如果想深入学习,可以加一下读者群进行讨论~
二、方法说明
1、concat
对2个有着相同列名的excel表格,进行上下拼接式的合并。
应用场景
当我想把自己所有平台账号的基本信息,汇总到一个表格里。如下图所示,一行代码完成合并。👇
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更关心列之间的合并。
3、join
如上文所述,join是对数据的精细化操作。
例如我有的文件有2行,有的文件有1行,但是他们的格式是一样的,我想对它们进行横向的拼接。有些文件没有第2行的情况下,自动填充空白,方便我的后续操作。如下图所示👇
join更关心行之间的合并。
4、combine
这是一个最复杂的方法,因为它需要在合并时进行计算。
例子
我想看一下哪天的微博浏览量最少,于是在合并的同时,进行了大小比较的计算。如下图所示👇combine在合并的同时,对数据列进行了比较、计算。
三、写在最后
以上就是使用pandas进行合并的4个常用方法了。
我们的python-office库,也使用这几个方法开发了几个功能:
近期还会发布若干个1行代码合并Excel的极简操作,大家可以关注一下我,收到最新消息。