pandas.merge¶
-
pandas.
merge
(left, 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)[source]¶ 通过按列或索引执行数据库样式的连接操作来合并DataFrame对象。
如果在列上连接列,则会忽略DataFrame索引。否则,如果对一个或多个列上的索引或索引连接索引,则将传递索引。
参数: 左 T0>:DataFrame
right:DataFrame
如何:{'left','right','outer','inner'},default'inner'
- 左:仅使用左框架的键(SQL:左外连接)
- 右:仅使用来自右框架的键(SQL:右外连接)
- outer:使用来自两个框架的键的联合(SQL:full outer join)
- inner:使用两个帧的密钥(SQL:inner join)
on:标签或列表
要加入的字段名称。必须在两个DataFrames中都找到。如果on是None并且不合并索引,则默认情况下它将合并到列的交集。
left_on:标签或列表,或类似数组
要在左侧DataFrame中加入的字段名称。可以是DataFrame长度的向量或向量列表,以使用特定向量作为连接键而不是列
right_on:标签或列表,或类似数组
要在右侧DataFrame或向量/向量列表中每个left_on文档中连接的字段名称
left_index:boolean,default False
使用左侧DataFrame中的索引作为连接键。如果是MultiIndex,则其他DataFrame中的键数(索引或列数)必须与级别数量相匹配
right_index:boolean,default False
使用右侧DataFrame中的索引作为连接键。与left_index相同的注意事项
sort:boolean,default False
在结果DataFrame中按字典顺序对连接键进行排序
后缀:2长度序列(tuple,list,...)
后缀,分别应用于左侧和右侧的重叠列名称
copy:boolean,default True
如果为False,请勿不必要地复制数据
指示符:布尔或字符串,默认为False
如果为True,则向输出DataFrame的一个名为“_merge”的列添加一个有关每行源的信息。如果string,每行的信息都会被添加到输出的DataFrame,并且列将被命名为string的值。信息列是分类类型,并且对于其合并键仅出现在“左”DataFrame中的观察值采用值“left_only”,对于合并关键字仅出现在“右”DataFrame中的观察值采用“right_only”,并且如果观察的合并键在两者中都找到。
版本0.17.0中的新功能。
返回: 合并:DataFrame
如果它是DataFrame的子类,输出类型将与“left”相同。
也可以看看
例子
>>> A >>> B lkey value rkey value 0 foo 1 0 foo 5 1 bar 2 1 bar 6 2 baz 3 2 qux 7 3 foo 4 3 bar 8
>>> A.merge(B, left_on='lkey', right_on='rkey', how='outer') lkey value_x rkey value_y 0 foo 1 foo 5 1 foo 4 foo 5 2 bar 2 bar 6 3 bar 2 bar 8 4 baz 3 NaN NaN 5 NaN NaN qux 7