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”相同。

也可以看看

merge_orderedmerge_asof

例子

>>> 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
Scroll To Top