pandas 合并dataframe_数据处理必备工具之强大的pandas.merge合并方法!

数据分析和建模方面绝大部分的工作都是做数据处理,pandas是python标准库提供了一组高级的、灵活的、高效的核心算法和函数,能够轻松地将数据规整成适合机器学习建模的形式。

629b937e727871ba073fd30c1e0afd9d.png

pandas对象中的数据可通过一些内置的方法来合并,本文先给大家介绍一下数据的合并操作:pandas.merge。

pandas.merge的作用

pandas.merge 可根据一个或多个键将不同的dataframe中的行连接起来。使用方式如下:

4ea7fe2746b7dddc8fbefa328b54c4fe.png

pandas.merge的参数介绍

merge函数大致有12种,具体含义如下:

  • left: 参与合并左侧DataFrame对象
  • right: 参与合并的右侧DataFrame对象
  • on: 用于连接的列名。 必须在左侧和右侧DataFrame对象中找到。 如果未传递参数且left_index和right_index也为False,则DataFrame中的列的交集将被推断为连接键。
  • left_on:左侧DataFrame中的列或索引级别用作键。 可以是列名,索引级名称,也可以是长度等于DataFrame长度的数组。
  • right_on:左侧DataFrame中的列或索引级别用作键。 可以是列名,索引级名称,也可以是长度等于DataFrame长度的数组。
  • left_index:如果为True,则使用左侧DataFrame中的索引(行标签)作为其连接键。 对于具有MultiIndex(分层)的DataFrame,级别数必须与右侧DataFrame中的连接键数相匹配。
  • right_index: 与left_index功能相似。
  • how: ‘left’, ‘right’, ‘outer’, ‘inner’,默认inner。
  • sort:默认inner按字典顺序通过连接键对结果DataFrame进行排序。 默认为True,设置为False将在很多情况下显着提高性能。
  • suffixes: 用于重叠列的字符串后缀元组。 默认为(‘x’,’ y’)。
  • copy: 始终从传递的DataFrame对象复制数据(默认为True),即使不需要重建索引也是如此。
  • indicator:将一列添加到名为merge的输出DataFrame,其中包含有关每行源的信息。merge是分类类型,并且对于其合并键仅出现在“左”DataFrame中的观察值,取得值为left_only,对于其合并键仅出现在“右”DataFrame中的观察值为right_only,并且如果在两者中都找到观察点的合并键,则为left_only。

pandas.merge实例

首先创建两个数据框,并赋予数据,分别命名为left,right。

import pandas as pdleft = pd.DataFrame({'key1': ['k0', 'k0', 'k1', 'k2'], 'key2': ['k0', 'k1', 'k0', 'k1'], 'A': ['0', '1', '2', '3'], 'B': ['0', '1', '2', '3']})right = pd.DataFrame({'key1': ['k0', 'k1', 'k1', 'k2'], 'key2': ['k0', 'k0', 'k0', 'k0'], 'C': ['0', '1', '2', '3'], 'D': ['0', '1', '2', '3']})
5fd3f3d19270447478ded47c0d85a8b9.png

使用左连接合并参数

# Use keys from left frame onlyleft_result = pd.merge(left, right, how='left', on=['key1', 'key2'])
bdcb7f3eec8adea8512f6be1aa05eedc.png

使用左连接合并参数

# Use keys from right frame onlyright_result = pd.merge(left, right, how='right', on=['key1', 'key2'])
609bdddcb11d678710425c1e283ffcc1.png

使用外连接合并参数

# Use keys from outer frame onlyouter_result = pd.merge(left, right, how='outer', on=['key1', 'key2'])
b3a3454c756fa30bfb8be2dec0b096b0.png

使用内连接合并参数

# Use keys from inner frame onlyinner_result = pd.merge(left, right, how='inner', on=['key1', 'key2'])
8de5617c2480ea7328c149361daa85f0.png

好了,今天就到这,大家感兴趣的话,其他参数可以自己验证一下,如有疑问,欢迎关注留言!!!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值