Python-pandas:数据合并merge函数用法详解

这篇具有很好参考价值的文章主要介绍了Python-pandas:数据合并merge函数用法详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、语法格式

介绍一下数据分析中很常用的一个函数——merge,它能够进行高效的数据合并操作。先看一下语法格式及其初步解释:

pd.merge(left: 'DataFrame | Series',  # 左右两个需要合并的DataFrame对象。  
         right: 'DataFrame | Series',
         how: 'str' = 'inner',  # 要执行的合并类型,从{'left','right','outer','inner','cross'}中取值,默认为'inner'。
         on: 'IndexLabel | None' = None,  # 用于连接的键(即列标签名),该键必须存在于左右两个DataFrame中。若没有指定,则以列名的交集作为连接键。
         left_on: 'IndexLabel | None' = None, 
         right_on: 'IndexLabel | None' = None,  # 指定左右DataFrame对象中作为连接键的列名。适用于左右拟连接列名称有差异时。
         left_index: 'bool' = False,
         right_index: 'bool' = False,  # 和上,将左右frame的索引作为连接键,进行数据合并。
         sort: 'bool' = False,  # DataFrame对象结果中,按词典顺序排序,默认False。
         suffixes: 'Suffixes' = ('_x', '_y'),  # 当左右DataFrame存在相同列名时,通过该参数为其添加后缀。
         copy: 'bool' = True,
         indicator: 'bool' = False,  # 输出结果中添加_merge列,表明每一行使用的左右键来源情况。
         validate: 'str | None' = None  # 验证连接键在左侧、右侧或两侧是否唯一,即'1:1','1:m','m:1'。
        )

二、举例解释

(一)首先生成两个DataFrame对象,以供我们案例使用:

dep_inf = {'部门':['业务一部','业务二部','业务三部','办公室'],
           '城市': ['深圳','上海','北京','广州'],
           '部门名称':['业务一部','业务二部','业务三部','办公室']}
emp_inf = {'姓名':['张飞','赵云','金莲','关习','和珅','宋江'],
           '学历':['本科','硕士','本科','本科','博士','硕士'],
           '部门':['业务一部','业务一部','业务二部','业务三部','业务三部','业务四部'],
           '城市':['北京','深圳','广州','上海','深圳','深圳']}
df_d = pd.DataFrame(dep_inf)
df_e = pd.DataFrame(emp_inf)

生成的两个DataFrame对象如下:

python merge函数,Pandas,pandas,python,数据分析

(二)下面举个栗子,介绍一下主要参数

1、参数left,right:

将df_d作为左侧的frame,df_e作为右侧的frame,则参数left=df_d,right=df_e;

2、参数how:

当参数how='left':仅使用左侧frame的键;
当参数how='right':仅使用右侧frame的键;
当参数how='outer':使用左右两侧frame的键的并集;
当参数how='inner':使用左右两侧frame的键的交集;

3、参数on:

df_d,df_e中都有“部门”列(键),则使用“部门”作为连接键,即参数on='部门'。

下面就以“部门”作为连接键,顺便看一下参数how的效果。

pd.merge(df_d, df_e, how='left',on='部门',indicator=True)
pd.merge(df_d, df_e, how='right',on='部门',indicator=True)
pd.merge(df_d, df_e, how='inner',on='部门',indicator=True)
pd.merge(df_d, df_e, how='outer',on='部门',indicator=True)

python merge函数,Pandas,pandas,python,数据分析

4、参数indicator:

在输出结果中添加_merge列,表明每一行使用的左右键来源情况,如上图所示。

同时,可以看一下merge参数的结果_merge列加深对参数how的理解。

5、参数left_on,right_on:

这两个参数其实和参数'on'是同一性质,当左右两个frame的连接键的名字相同时,可以直接用参数‘on’。但是如果像本例中,左侧frame键名为“部门名称”(假设左侧frame中没有“部门这一列”),右侧frame键名为“部门”,但是其内容实质相同。此时就用left_on和right_on参数以替代参数on。

python merge函数,Pandas,pandas,python,数据分析

 6、参数suffixes:

该参数默认suffixes = ('_x', '_y'),所以命令中未写。

当左右frame存在相同列名时,通过该参数为其添加后缀。因为左侧frame和右侧frame均有城市、部门列,因此为了防止相同列互相覆盖,给左右两侧的列加了后缀_x和_y以保留数据。当然这个_x和_y是默认后缀,你也可以根据需要修改为其他形式。

其他参数请参照本文第一部分:语法格式中的解释。

<原创内容,引用请注明出处>文章来源地址https://www.toymoban.com/news/detail-557667.html

到了这里,关于Python-pandas:数据合并merge函数用法详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Pandas 入门-2】增加,删除与合并数据 concat, merge

    1.3.1 增加数据 在原数据末尾增加一列时,语法为 df[‘新列名\\\'] = 某个值或某个元素个数与 DataFrame 列数相同的列表 ,例如: 姓名 统计学 高数 英语 计算机 0 张三 95 82 84 92 1 赵四 100 90 89 69 2 王五 88 88 78 75 在原数据末尾增加一行数据时,比较简单的方式是用 loc 函数, df.loc[行

    2024年02月13日
    浏览(38)
  • python-pandas库

    目录 目录 目录 1.pandas库简介(https://www.gairuo.com/p/pandas-overview) 2.pandas库read_csv方法(https://zhuanlan.zhihu.com/p/340441922?utm_medium=socialutm_oi=27819925045248) 1.pandas库简介(https://www.gairuo.com/p/pandas-overview) 用途:     Pandas 可以用来进来各种表格数据处理,实现复杂的处理逻辑,这些

    2024年02月02日
    浏览(42)
  • 【python】数据可视化,使用pandas.merge()对dataframe和geopandas类型数据进行数据对齐

    目录 0.环境 1.适用场景 2.pandas.merge()函数详细介绍 3.名词解释“数据对齐”(来自chatGPT3.5) 4.本文将给出两种数据对齐的例子 1)dataframe类型数据和dataframe类型数据对齐(对齐NAME列); 数据对齐前的两组数据集: 数据对齐后的数据集(通过pandas.merge()函数对齐): 代码 2)

    2024年02月09日
    浏览(50)
  • 极速系列03—python进行数据合并(concat/merge)

    两个表中的数据,要根据段,进行合并。 在Excel中可以使用vlookup的方式,在python中可以使用concat或者是merge的方法。 pd.concat 函数 拼接的对象可以是series,还可以是dataframe 拼接对象的个数不受限 axis 控制拼接方向(既支持上下拼接,也支持左右拼接) 左右拼接 axis=1,

    2024年02月09日
    浏览(34)
  • Python中Pandas库提供的函数——pd.DataFrame的基本用法

    pd.DataFrame 是 Pandas 库中的一个类,用于创建和操作数据框(DataFrame)。DataFrame 是 Pandas 的核心数据结构,用于以表格形式和处理数据,类似提供电子表格或数据库表格。类了创建 pd.DataFrame 数据框、访问数据、进行数据操作和分析的方法和属性。 表格形式 :DataFrame是一个二维

    2024年02月05日
    浏览(56)
  • Python 教学 | Pandas 数据合并(含目录文件合并案例)

    目录 Part  1前言 Part2  Pandas 数据合并函数 1  df.append() 实现数据追加 (1)向表中追加相同结构的表 (2)向表中追加不同结构的表 (3)向数据中添加一行 2  pd.concat() 实现数据连接 (1)多个相同结构数据纵向合并 (2)多个结构不同的数据纵向合并 (3)多个数据横向合并

    2024年01月17日
    浏览(59)
  • 利用Python进行数据清洗与预处理:Pandas的高级用法【第147篇—Pandas的高级用法】

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【点击进入巨牛的人工智能学习网站】。 在数据科学和机器学习领域,数据清洗和预处理是至关重要的步骤。Pandas库作为Python中最受欢迎的数据处理工具之一,提供了强大的功能来处

    2024年04月09日
    浏览(107)
  • pd.merge()函数的使用(Python数据科学手册)

    left:参与合并的左侧的dataframe right:参与合并的右侧的dataframe how:连接方式 on:用于连接的列索引的名称,必须存在于左右的两个dataframe中,如果没有指定其他的 且其他的参数也没有指定,则以两个dataframe列名交集作为连接键 left_on:左侧dataframe中用于连接键的列名,这个

    2024年02月06日
    浏览(33)
  • 【C++】STL 算法 - 排序算法 ( 合并排序算法 - merge 函数 | 随机排序算法 - random_shuffle 函数 | 反转序列算法 - reverse 函数 )

    在 C++ 语言 的 标准模板库 ( STL , STL Standard Template Library ) 中 , 提供了 merge 合并排序算法函数 用于 将 两个已排序好的容器 合并成一个新的已排序的容器 ; merge 合并排序算法 函数原型 如下 : 参数解析 : InputIterator1 first1 参数 : 有序 输入 容器 1 的 迭代器范围 的 起始迭代器 (

    2024年01月18日
    浏览(52)
  • pandas之apply函数简介及用法详解

    ​ Pandas 的 apply() 方法是用来调用一个函数(Python method),让此函数对数据对象进行批量处理。Pandas 的很多对象都可以使用 apply() 来调用函数,如 Dataframe、Series、分组对象、各种时间序列等。 ​ apply() 使用时,通常放入一个 lambda 函数表达式、或一个函数作为操作运算,官方上

    2024年02月03日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包