一次性彻底讲透Python中pd.concat与pd.merge

 更新时间:2022年06月15日 08:15:15   作者:我爱Python数据挖掘  
本文主要介绍了一次性彻底讲透Python中pd.concat与pd.merge,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

数据的合并与关联是数据处理过程中经常遇到的问题,在SQL、HQL中大家可能都有用到 join、uion all 等 ,在 Pandas 中也有同样的功能,来满足数据处理需求,个人感觉 Pandas 处理数据还是非常方便,数据处理效率比较高,能满足不同的业务需求

数据拼接:pd.concat

concat 是pandas级的函数,用来拼接或合并数据,其根据不同的轴既可以横向拼接,又可以纵向拼接

函数参数

pd.concat(
    objs: 'Iterable[NDFrame] | Mapping[Hashable, NDFrame]',
    axis=0,
    join='outer',
    ignore_index: 'bool' = False,
    keys=None,
    levels=None,
    names=None,
    verify_integrity: 'bool' = False,
    sort: 'bool' = False,
    copy: 'bool' = True,
) -> 'FrameOrSeriesUnion'
  • objs:合并的数据集,一般用列表传入,例如:[df1,df2,df3]
  • axis:指定数据拼接时的轴,0是行,在行方向上拼接;1是列,在列方向上拼接
  • join:拼接的方式有 inner,或者outer,与sql中的意思一样

以上三个参数在实际工作中经常使用,其他参数不再做介绍

案例:

图片

模拟数据

横向拼接

图片

横向拼接-1

字段相同的列进行堆叠,字段不同的列分列存放,缺失值用NAN来填充,下面对模拟数据进行变换用相同的字段,进行演示

图片

横向拼接-2

纵向拼接

图片

纵向拼接

可以看出在纵向拼接的时候,会按索引进行关联,使相同名字的成绩放在一起,而不是简单的堆叠

数据关联:pd.merge

数据关联与SQL中的join基本一样,一次可以关联两个数据表,有左表、右表的区分,需要可以指定关联的字段

函数参数

pd.merge(
    left: 'DataFrame | Series',
    right: 'DataFrame | Series',
    how: 'str' = 'inner',
    on: 'IndexLabel | None' = None,
    left_on: 'IndexLabel | None' = None,
    right_on: 'IndexLabel | None' = None,
    left_index: 'bool' = False,
    right_index: 'bool' = False,
    sort: 'bool' = False,
    suffixes: 'Suffixes' = ('_x', '_y'),
    copy: 'bool' = True,
    indicator: 'bool' = False,
    validate: 'str | None' = None,
) -> 'DataFrame'

  • left:左表
  • right:右表
  • how:关联的方式,{‘left’, ‘right’, ‘outer’, ‘inner’, ‘cross’}, 默认关联方式为 ‘inner’
  • on:关联时指定的字段,两个表共有的
  • left_on:关联时用到左表中的字段,在两个表不共有关联字段时使用
  • right_on:关联时用到右表中的字段,在两个表不共有关联字段时使用

以上参数在实际工作中经常使用,其他参数不再做介绍

案例:

图片

数据关联

merge 的使用与SQL中的 join 很像,使用方式基本一致,既有内连接,也有外连接,用起来基本没有什么难度

两者区别

  • concat 只是 pandas 下的方法,而 merge 即是 pandas 下的方法,又是DataFrame 下的方法
  • concat 可以横向、纵向拼接,又起到关联的作用
  • merge 只能进行关联,也就是纵向拼接
  • concat 可以同时处理多个数据框DataFrame,而 merge 只能同时处理 2 个数据框

到此这篇关于一次性彻底讲透Python中pd.concat与pd.merge的文章就介绍到这了,更多相关Python pd.concat与pd.merge内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python实现全排列代码(回溯、深度优先搜索)

    python实现全排列代码(回溯、深度优先搜索)

    今天小编就为大家分享一篇python实现全排列代码(回溯、深度优先搜索),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • 从PySpark中的字符串获取列表方法讲解

    从PySpark中的字符串获取列表方法讲解

    在本篇内容里小编给大家分享的是一篇关于从PySpark中的字符串获取列表方法讲解及相关实例,有需要的朋友们跟着学习下。
    2021-12-12
  • VScode中不同目录间python库函数的调用

    VScode中不同目录间python库函数的调用

    本文主要介绍了VScode中不同目录间python库函数的调用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • 一文详解如何配置Pycharm进行远程开发

    一文详解如何配置Pycharm进行远程开发

    在搞深度学习的时候,我们在本地开发,但是需要在服务器去运行工程,所以需要使用Pycharm进行远程配置,下面这篇文章主要给大家介绍了关于如何配置Pycharm进行远程开发的相关资料,需要的朋友可以参考下
    2024-02-02
  • python基础之定义类和对象详解

    python基础之定义类和对象详解

    这篇文章主要为大家详细介绍了python的定义类和对象,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-02-02
  • 基于Python实现条形码图片识别程序

    基于Python实现条形码图片识别程序

    这篇文章主要为大家详细介绍了如何基于Python实现一个简单的条形码图片识别程序,可以视频图片中的条形码,感兴趣的小伙伴可以跟随小编学习一下
    2023-09-09
  • pthon贪吃蛇游戏详细代码

    pthon贪吃蛇游戏详细代码

    这篇文章主要为大家详细介绍了Python贪吃蛇游戏详细代码和注释,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-01-01
  • 利用Anaconda简单安装scrapy框架的方法

    利用Anaconda简单安装scrapy框架的方法

    今天小编就为大家分享一篇利用Anaconda简单安装scrapy框架的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06
  • python判断字符串以什么结尾的实例方法

    python判断字符串以什么结尾的实例方法

    在本篇文章里小编给大家整理了关于python判断字符串以什么结尾的实例方法 ,需要的朋友们可以学习参考下。
    2020-09-09
  • CoordConv实现卷积加上坐标实例详解

    CoordConv实现卷积加上坐标实例详解

    这篇文章主要介绍了CoordConv实现卷积加上坐标实例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03

最新评论