Python pandas.DataFrame.merge 函数方法的使用
**DataFrame.merge(self, right, how=‘inner’, on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=False, suffixes=(‘_x’, ‘_y’), copy=True, indicator=False, validate=None) → ‘DataFrame’ ** source(http://github.com/pandas-dev/pandas/blob/v1.0.1/pandas/core/frame.py#L7265-L7298)
用数据库样式的联接合并DataFrame
或命名的Series
对象。
联接在列或索引上完成。如果在列上连接列,则DataFrame
索引将被忽略。否则,如果在索引上连接索引或在一个或多个列上建立索引,则将传递索引。
|
参数:
|
right : DataFrame
或命名的Series
要合并的对象。
how:{‘left’, ‘right’, ‘outer’, ‘inner’},
默认 ‘inner’
要执行的合并类型。
1) left:仅使用左框架中的键,
类似于 SQL 左外部联接;保留关键顺序
2) right:仅使用右框架中的键,
类似于 SQL 右外部联接;保留关键顺序
3) outer:使用两个框架中键的并集,
类似于 SQL 完全外部联接;按字典顺序排序键
4) inner:使用两个框架中关键点的交集,
类似于 SQL 内部联接;保留左键的顺序
on:label 或 list
要加入的列或索引级别名称。
这些必须在两个 DataFrame 中都可以找到。
如果 on 为 None 且未在索引上合并,
则默认为两个 DataFrame 中列的交集。
left_on:label
或list
,或类似数组
要在左侧 DataFrame 中加入的列或索引级别名称。
也可以是左侧 DataFrame 长度的数组或数组列表。
这些数组被视为列。
right_on:标签或列表,或类似数组
要在右侧 DataFrame 中加入的列或索引级别名称。
也可以是正确 DataFrame 长度的数组或数组列表。
这些数组被视为列。
left_index:布尔值,默认为False
使用左侧 DataFrame 中的索引作为连接键。
如果它是 MultiIndex,
则另一个 DataFrame 中的键数(索引或列数)
必须与级别数匹配
right_index:布尔值,默认为False
使用右侧 DataFrame 中的索引作为连接键。
与 left_index 相同的警告
sort:布尔值,默认为False
在结果 DataFrame 中按字典顺序对联接键进行排序。
如果为 False,则联接键的顺序取决于联接类型(how 关键字)
suffixes:2 个长度的序列(元组,列表等)
suffixes 分别应用于左侧和右侧的重叠列名
copy:布尔值,默认为True
如果为False
,请勿不必要地复制数据
indicator:布尔值或字符串,默认为False
如果为True
,则在输出 DataFrame 中添加一列,
称为“_merge”
,其中包含有关每一行源的信息。
如果为字符串,则将在每一行的源上带有信息的列,
添加到输出 DataFrame 中,
并将该列命名为字符串的值。信息列是分类类型的,
对于其合并键仅出现在'left'DataFrame
中的观测值,
其值为“left_only”
;对于其合并键仅出现在'right'
DataFrame
中的观测值,其值为“right_only”
,
如果两者中都存在观察值的合并键。
validate:字符串,默认为None
如果指定,则检查合并是否为指定的类型。
“one_to_one”
或“1:1”
:检查合并键在左右数据集中是否唯一。
“one_to_many”
或“1:m”
:检查合并键在左数据集中是否唯一。
“many_to_one”
或“m:1”
:检查合并键在正确的数据集中是否唯一。
“many_to_many”
或“m:m”
:允许,但不进行检查。
0.21.0 版中的新功能。
|
|
返回值:
|
DataFrame
如果输出类型是 DataFrame 的子类,
则其输出类型将与“left”相同。
|