一文搞定pandas的数据合并

在实际处理数据业务需求中,我们经常会遇到这样的需求:将多个表连接起来再进行数据的处理和分析,类似SQL中的连接查询功能

pandas中也提供了几种方法来实现这个功能,表现最突出、使用最为广泛的方法是merge。本文中将下面四种方法及参数通过实际案例来进行具体讲解

  • merge
  • append
  • join
  • concat

为方便大家练习,文末提供了本文数据源代码的获取方式。

文章目录




python中合并两个dataframe python拼接两个dataframe_python dataframe合并


导入库

做数据分析的时候这两个库是必须导入的,国际惯例一般。

import pandas as pdimport numpy as np

01

merge

官方参数

官方提供的 merge函数的参数如下:


python中合并两个dataframe python拼接两个dataframe_python merge on多个条件_02


下面将通过案例讲解几个重要参数的使用方法:

DataFrame.merge(left, right,                 how='inner',   # {‘left’, ‘right’, ‘outer’, ‘inner’}, default ‘inner’                on=None,                 left_on=None, right_on=None,                 sort=False,                 suffixes=('_x', '_y'))

模拟数据

注意4组数据的不同


python中合并两个dataframe python拼接两个dataframe_数据_03


python中合并两个dataframe python拼接两个dataframe_字段_04


使用默认参数

两种不同的写法,效果相同


python中合并两个dataframe python拼接两个dataframe_字段_05


参数how

how参数的取值有4种:

  • inner(默认)
  • outer
  • right
  • left


python中合并两个dataframe python拼接两个dataframe_数据_06


python中合并两个dataframe python拼接两个dataframe_数据_07


python中合并两个dataframe python拼接两个dataframe_python merge on多个条件_08


python中合并两个dataframe python拼接两个dataframe_数据_09


参数on

用于连接的列索引列名,必须同时存在于左右的两个dataframe型数据中,类似SQL中两个表的相同字段属性

如果没有指定或者其他参数也没有指定,则以两个dataframe型数据的相同键作为连接键

on参数为单个字段


python中合并两个dataframe python拼接两个dataframe_取值_10


另一个例子:


python中合并两个dataframe python拼接两个dataframe_python merge on多个条件_11


python中合并两个dataframe python拼接两个dataframe_数据_12


on参数为多个字段-列表形式


python中合并两个dataframe python拼接两个dataframe_取值_13


python中合并两个dataframe python拼接两个dataframe_字段_14


参数lefton/righton


python中合并两个dataframe python拼接两个dataframe_字段_15


参数suffixes

合并的时候一列两个表同名,但是取值不同,如果都想要保存下来,就使用加后缀的方法,默认是 _x,_y,可以自己指定


python中合并两个dataframe python拼接两个dataframe_取值_16


python中合并两个dataframe python拼接两个dataframe_取值_17


参数sort

对连接的时候相同键的取值进行排序


python中合并两个dataframe python拼接两个dataframe_python dataframe合并_18


python中合并两个dataframe python拼接两个dataframe_python dataframe合并_19


02

concat

官方参数

concat方法是将两个 DataFrame数据框中的数据进行合并

  • 通过axis参数指定是在行还是列方向上合并
  • 参数 ignore_index实现合并后的索引重排


python中合并两个dataframe python拼接两个dataframe_数据_20


生成数据


python中合并两个dataframe python拼接两个dataframe_python merge on多个条件_21


指定合并轴


python中合并两个dataframe python拼接两个dataframe_字段_22


改变索引


python中合并两个dataframe python拼接两个dataframe_python merge on多个条件_23


join参数


python中合并两个dataframe python拼接两个dataframe_python merge on多个条件_24


python中合并两个dataframe python拼接两个dataframe_取值_25


python中合并两个dataframe python拼接两个dataframe_python dataframe合并_26


sort-属性排序


python中合并两个dataframe python拼接两个dataframe_python dataframe合并_27


python中合并两个dataframe python拼接两个dataframe_字段_28