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

作者:我爱Python数据挖掘 时间:2023-02-06 19:04:33 

数据的合并与关联是数据处理过程中经常遇到的问题,在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中的意思一样

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

案例:

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

模拟数据

横向拼接

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

横向拼接-1

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

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

横向拼接-2

纵向拼接

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

纵向拼接

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

数据关联: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:关联时用到右表中的字段,在两个表不共有关联字段时使用

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

案例:

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

数据关联

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

两者区别

  • concat 只是 pandas 下的方法,而 merge 即是 pandas 下的方法,又是DataFrame 下的方法

  • concat 可以横向、纵向拼接,又起到关联的作用

  • merge 只能进行关联,也就是纵向拼接

  • concat 可以同时处理多个数据框DataFrame,而 merge 只能同时处理 2 个数据框

来源:https://blog.csdn.net/weixin_38037405/article/details/125287236

标签:Python,pd.concat,pd.merge
0
投稿

猜你喜欢

  • node.js express安装及示例网站搭建方法(分享)

    2024-05-13 09:58:22
  • Python中栈的详细介绍

    2023-05-16 07:22:02
  • Sql server中时间查询的一个比较快的语句

    2008-12-29 14:16:00
  • 如何利用Pyecharts可视化微信好友

    2022-04-13 07:34:14
  • python使用NumPy文件的读写操作

    2023-09-27 18:04:44
  • 天极网页版式设计的思考

    2008-01-18 12:44:00
  • Python flask与fastapi性能测试方法介绍

    2022-12-07 00:10:17
  • 如何在JavaScript中创建具有多个空格的字符串?

    2024-05-02 17:29:12
  • JavaScript高级程序设计 阅读笔记(十八) js跨平台的事件

    2024-04-10 11:01:56
  • 如何动态在文档中加入<script></script>写入大段js?

    2010-07-02 13:17:00
  • 将字典转换为DataFrame并进行频次统计的方法

    2023-11-21 05:37:30
  • Python模拟用户登录验证

    2021-07-12 19:58:28
  • jupyter notebook 重装教程

    2022-07-20 09:38:02
  • 详解Python实现URL监测与即时推送

    2023-12-29 08:18:35
  • 应用技术:如何通过SQLyog分析MySQL数据库

    2009-03-25 16:53:00
  • 一文秒懂pandas中iloc()函数

    2023-07-31 18:20:42
  • Python3.7 dataclass使用指南小结

    2023-10-02 13:36:14
  • 对Python random模块打乱数组顺序的实例讲解

    2023-03-24 16:51:57
  • Python编程实现简单的微博自动点赞

    2021-05-14 06:43:12
  • Pytorch模型转onnx模型实例

    2022-09-06 03:39:24
  • asp之家 网络编程 m.aspxhome.com