利用Python进行数据分析(12) pandas基础: 数据合并

坚持看完每一篇文章,践行自己最初想学好数据分析的目标,我们不像在学校那样,我们现在要提高效率,必须给自己定位目标以驱动型学习,这样才能学好一件事,李笑来说过,给自己正在做的事情赋予伟大的意义,这就是理想。

pandas 提供了三种方法可以对数据进行合并

  • pandas.merge()方法:数据库风格的合并;

  • pandas.concat()方法:轴向连接,即沿着一条轴将多个对象堆叠到一起;

  • 实例方法combine_first()方法:合并重叠数据。

pandas.merge()方法

数据库风格的合并,例如,通过merge()方法将两个DataFrame合并:

利用Python进行数据分析(12) pandas基础: 数据合并

on='name'的意思是将name列当作键;

默认情况下,merge做的是内连接(inner),即键的交集。其他方式还有左连接(left),右连接(right)和外连接(outer)。例如将刚刚的合并指定为左连接:

利用Python进行数据分析(12) pandas基础: 数据合并

再试试外连接,结果取键的并集:

利用Python进行数据分析(12) pandas基础: 数据合并

刚刚的三个合并都是以列名作为连接键,DataFrame还有一个join()方法可以以索引作为连接键,例如:

利用Python进行数据分析(12) pandas基础: 数据合并


pandas.concat()方法

轴向连接,即沿着一条轴将多个对象堆叠到一起,例如:

利用Python进行数据分析(12) pandas基础: 数据合并

默认情况下,concat在竖轴(axis=0)上连接,即产生一个新的Series。如果想要在横轴方向连接,则传入axis=1,例如:

利用Python进行数据分析(12) pandas基础: 数据合并


实例方法combine_first()方法

合并重叠数据,例如:

利用Python进行数据分析(12) pandas基础: 数据合并

这个方法等价与:

利用Python进行数据分析(12) pandas基础: 数据合并

它做的是一个矢量化的if-else操作,如果s1里某个位置上的数据为空,则用s2同位置上的元素来补,你可以理解为“打补丁”操作。


欢迎关注我的公众号

利用Python进行数据分析(12) pandas基础: 数据合并