详解pandas.merge()(合并数据框)函数使用方法

yizhihongxing

pandas.merge()是一个在pandas库中用于合并、连接和 join 数据集的函数。这个函数能够参考多个键来合并不同数据集的行。具体而言,merge()函数根据列之间的关系来合并 DataFrame 对象。

merge()函数的语法如下所示:

pandas.merge(left, right, how='inner', on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=True, suffixes=('_x', '_y'), copy=True, indicator=False, validate=None)

下面分别说明每个参数的功能:

  • left:一个 DataFrame 对象,即“左” 数据集
  • right:一个 DataFrame 对象,即“右” 数据集
  • on:连接键。作为合并的键。必须存在于左、右两个DataFrame对象里
  • left_on:左DataFrame对象的连接键
  • right_on:右DataFrame对象的连接键
  • left_index:如果设为 True,则使用左 DataFrame 对象的索引作为连接键
  • right_index:如果设为 True,则使用右 DataFrame 对象的索引作为连接键
  • how:合并方式,可以是下列其中之一:'left','right','outer','inner'。默认值是 'inner'
  • sort:根据连接键对合并后的数据进行排序。默认值是 True
  • copy:如果设为 True,则复制数据。默认值是 True
  • validate:允许指定连接类型,'one_to_one', 'one_to_many', 'many_to_one', 'many_to_many', 默认是 None
  • suffixes:代表合并后的数据中同名列名的后缀, 默认取('_x', '_y')
  • indicator:方法实际上会将合并后的数据集增加一列,默认的列名是"_merge"。它的作用是让我们知道每一行数据的来源,如果来自 left,值就是 left_only,如果来自 right,值就是 right_only,如果是两者都有,值就是 both

上面的参数有很多,如果不理解可以多次使用返回值浅阅读影响,有利于熟悉参数和现象之间关系。

下面分别用两个实例来讲解 merge() 函数的使用方法:

例 1 :合并单个连接键的 DataFrame 对象

下面我们将使用以下两个 DataFrame 对象:

left       right
 key value   key value
  1   10      1   20
  2   20      2   30

代码如下所示:

import pandas as pd

# 两个 DataFrame 对象
left = pd.DataFrame({
    'key': [1, 2],
    'value': [10, 20]
})
right = pd.DataFrame({
    'key': [1, 2],
    'value': [20, 30]
})
result = pd.merge(left, right, on='key')
print(result)

打印结果如下:

 key value_x value_y
  1      10       20
  2      20       30

上述实例的做法是,以 'key' 列为连接键,在结果的 DataFrame 中通过列名 'value_x' 和 'value_y' 分别表示两个原始 DataFrame 对象中的列。

例 2 :合并多个连接键的 DataFrame 对象

下面我们将使用以下两个 DataFrame 对象:

df1          df2
 key1 key2    key1 key2
  1     a      1     a
  2     b      2     b
  3     c      4     c

代码实例如下:

import pandas as pd

# 两个DataFrame对象
df1 = pd.DataFrame({
    'key1': [1, 2, 3],
    'key2': ['a', 'b', 'c'],
    'value1': [10, 20, 30]
})
df2 = pd.DataFrame({
    'key1': [1, 2, 4],
    'key2': ['a', 'b', 'c'],
    'value2': [40, 50, 60]
})
result = pd.merge(df1, df2, on=['key1', 'key2'])
print(result)

执行上述代码,得到如下输出:

 key1 key2 value1 value2
  1    a    10     40
  2    b    20     50

上述实例的做法是,使用 'key1' 和 'key2' 两列作为连接键,在结果的 DataFrame 中成对的列也被用来表示它们来自的各个原始 DataFrame 对象。(当然,这里只是对于连接键的合并,还有很多合并的方式需要读者慢慢去总结理解,毕竟细节点万事通。。。)

本文简单讲解了 pandas.merge() 函数的语法、参数和合并方式,同时给出了两个实例来更好的理解当中的细节。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解pandas.merge()(合并数据框)函数使用方法 - Python技术站

(0)
上一篇 2023年3月22日
下一篇 2023年3月22日

相关文章

  • 详解pandas.DataFrame.to_dict()(将数据框转换为字典)函数使用方法

    pandas.DataFrame.to_dict()函数将DataFrame转换为Python字典。字典的键是DataFrame的列名,而字典的值是由DataFrame数据中每一行构成的子字典。to_dict()函数的通用语法如下: to_dict(self, orient='dict', into=<class 'dic…

    Pandas函数大全 2023年3月22日
    00
  • 详解pandas.fillna()(填充缺失值)函数使用方法

    pandas.fillna() 用于对缺失值进行填充,可以将缺失值替换为指定的数值或使用指定的填充规则进行填充。该函数的语法格式如下: DataFrame.fillna(value=None, method=None, axis=None, inplace=False, limit=None, downcast=None) 其中各参数的含义如下: value…

    Pandas函数大全 2023年3月22日
    00
  • 详解pandas.str.lower()(转换字符串为小写)函数使用方法

    pandas.str.lower()是一个Series对象方法,它用于将Series中的所有字符串转换为小写。 语法:Series.str.lower() 返回值:返回一个新的Series对象,其中包含所有字符串转换为小写后的结果。 下面通过两个实例来说明pandas.str.lower()的使用方法: 实例1 我们有一个包含姓名和职业的数据集。现在我们想要…

    Pandas函数大全 2023年3月22日
    00
  • 详解pandas.apply()(应用函数)函数使用方法

    pandas.apply()是pandas中的一个方法,它可以在Series或DataFrame上执行一个函数,并将其应用于每个元素(或行/列)。它的作用是对数据进行一些自定义或特殊的操作。 基本语法: 在Series上使用apply()方法: Series.apply(func, axis=0, broadcast=None, raw=False, red…

    Pandas函数大全 2023年3月22日
    00
  • 详解pandas.str.replace()(字符串替换)函数使用方法

    pandas.str.replace() 函数用于替换 Series 或 DataFrame 中的子字符串。 语法: pandas.str.replace(pat, repl, n=-1, case=None, flags=0, regex=True) 参数介绍: pat:被替换的子字符串 repl:替换 pat 的字符串 n:要替换的子字符串数量。默认值是…

    Pandas函数大全 2023年3月22日
    00
  • 详解pandas.replace()(替换数值)函数使用方法

    pandas.replace() 函数的作用是将 DataFrame 或 Series 中的某一列或多列中的指定值替换为其他值或空值。其常用在数据清洗或转换的过程中。 pandas.replace() 的常用参数: to_replace:要替换的值,可以是单个值、多个值、字典或正则表达式 value:用来替换 to_replace 的值 inplace:是否…

    Pandas函数大全 2023年3月22日
    00
  • 详解pandas.qcut()(将数值分位数)函数使用方法

    pandas.qcut()概述 pandas.qcut()是Pandas库中的一个函数,可以根据数据的分位数进行分组。该函数将数据根据分位数进行分组,并生成一个新的Series对象,每组的数据数量相等,并且每组的范围都根据数据分布进行调整,因此可以确保每组的数据大小相似。 除此之外,pandas.qcut()还可以指定分组的数量,也可以自定义分位数的范围。该…

    Pandas函数大全 2023年3月22日
    00
  • 详解pandas.DataFrame()(创建二维表格)函数使用方法

    pandas.DataFrame() 是 pandas 库中一个十分重要的函数,它用于创建数据帧对象,可以方便地对多维数组或其他数据结构中的数据进行索引、计算、筛选、合并等操作。本文将为大家详细讲解 pandas.DataFrame() 的作用与使用方法。 作用 pandas.DataFrame() 可以将数据对象转变为数据帧对象。DataFrame 是二维…

    Pandas函数大全 2023年3月22日
    00
合作推广
合作推广
分享本页
返回顶部