本文概述
- 句法
- 参数
句法
pd.merge(left, right, how='inner', on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=True)
参数右:DataFrame或命名的Series
它是一个与DataFrame合并的对象。
方式:{‘ 左’ , ‘ 右’ , ‘ 外’ , ‘ 内’ }, 默认为’ 内’
要执行的合并类型。
- left:仅使用左框架中的键, 类似于SQL左外部联接;保留关键顺序。
- 右:它仅使用右框架中的键, 类似于SQL右外部联接;保留关键顺序。
- 外部:它使用了两个框架中键的并集, 类似于SQL完全外部联接;按字典顺序对键进行排序。
- 内部:它使用两个框架中关键点的交集, 类似于SQL内部联接;保留左键的顺序。
它是要连接的列或索引级别的名称。必须在左侧和右侧的DataFrame中都可以找到它。如果on为None且未在索引上合并, 则默认为两个DataFrame中列的交集。
left_on:标签或列表, 或类似数组
它是左侧DataFrame中的列或索引级别名称, 用作键。它可以是长度等于DataFrame长度的数组。
right_on:标签或列表, 或类似数组
它是来自右侧DataFrame的列或索引级别名称, 用作键。它可以是长度等于DataFrame长度的数组。
left_index:布尔值, 默认为False
如果为true, 它将使用左侧DataFrame的索引作为连接键。对于MultiIndex(分层), 另一个DataFrame中的许多键(索引或某些列)应与级别数匹配。
right_index:布尔值, 默认为False
它使用来自右侧DataFrame的索引作为连接键。它的用法与left_index相同。
排序:布尔值, 默认为False
如果为True, 它将在结果DataFrame中按字典顺序对连接键进行排序。否则, 联接键的顺序取决于联接类型(how关键字)。
后缀:(str, str)的元组, 默认值(‘ _x’ , ‘ _y’ )
后缀适用于分别在左侧和右侧DataFrame中重叠列名称。列使用(False, False)值在重叠时引发异常。
复制:bool, 默认为True
如果为True, 则返回DataFrame的副本。
否则, 可以避免复制。
指示符:bool或str, 默认为False
如果为True, 它将添加一列以输出DataFrame” _merge” , 其中包含有关每一行源的信息。如果是字符串, 则将在每行的源上包含信息的列添加到输出DataFrame, 并将该列命名为字符串的值。信息列定义为分类类型, 其值为:
- 合并键仅出现在DataFrame的” 左侧” 的观测值的” left_only” ,
- 为观察项定义了” right_only” , 其中合并键仅出现在DataFrame的” 右边” ,
- 如果在两个视图中都找到观察的合并键, 则” 两者” 。
如果指定, 它将检查下面给出的合并类型:
- ” one_to_one” 或” 1:1″ :它检查合并键在左右数据集中是否唯一。
- ” one_to_many” 或” 1:m” :它检查合并键在仅左数据集中是否唯一。
- ” many_to_one” 或” m:1″ :它检查合并键在仅正确的数据集中是否唯一。
- ” many_to_many” 或” m:m” :允许, 但不进行检查。
# import the pandas libraryimport pandas as pdleft = pd.DataFrame({'id':[1, 2, 3, 4], 'Name': ['John', 'Parker', 'Smith', 'Parker'], 'subject_id':['sub1', 'sub2', 'sub4', 'sub6']})right = pd.DataFrame({'id':[1, 2, 3, 4], 'Name': ['William', 'Albert', 'Tony', 'Allen'], 'subject_id':['sub2', 'sub4', 'sub3', 'sub6']})print (left)print (right)
输出
idNamesubject_id01Johnsub112Parkersub223Smithsub434Parkersub6idNamesubject_id01Williamsub212Albertsub423Tonysub334Allensub6
示例2:在多个键上合并两个DataFrame:
import pandas as pdleft = pd.DataFrame({'id':[1, 2, 3, 4, 5], 'Name': ['Alex', 'Amy', 'Allen', 'Alice', 'Ayoung'], 'subject_id':['sub1', 'sub2', 'sub4', 'sub6', 'sub5']})right = pd.DataFrame({ 'id':[1, 2, 3, 4, 5], 'Name': ['Billy', 'Brian', 'Bran', 'Bryce', 'Betty'], 'subject_id':['sub2', 'sub4', 'sub3', 'sub6', 'sub5']})print pd.merge(left, right, on='id')
【Pandas DataFrame.merge()用法详解】输出
idName_xsubject_id_xName_ysubject_id_y01Johnsub1Williamsub212Parkersub2Albertsub423Smithsub4Tonysub334Parkersub6Allensub6
推荐阅读
- Pandas DataFrame.pivot_table()使用示例
- Pandas melt()用法介绍
- Pandas DataFrame.join()用法介绍
- Kotlin之let,apply,with,run函数区别(转)
- 支付宝支付之App支付
- xcrun: error: unable to find utility "PackageApplication", not a developer tool or in PATH
- Android开发中常见的设计模式——单例模式
- ARC-100C - Linear Approximation
- spring基础----事件(Applicaition Event)