pandas.merge_ordered#

pandas.merge_ordered(left, right, on=None, left_on=None, right_on=None, left_by=None, right_by=None, fill_method=None, suffixes=('_x', '_y'), how='outer')[源代码]#

使用可选填充/内插对有序数据执行合并。

专为时序数据等有序数据设计。可以选择执行分组合并(请参见示例)。

参数
leftDataFrame
rightDataFrame
on标签或列表

要联接的字段名称。必须在两个DataFrame中都找到。

left_on标签或列表,或类似数组

要在左侧DataFrame中联接的字段名称。可以是DataFrame长度的向量或向量列表,以使用特定向量而不是列作为联接键。

right_on标签或列表,或类似数组

要在右DataFrame或每个Left_On文档的向量/向量列表中联接的字段名称。

left_by列名或列名列表

按组列对左侧DataFrame进行分组,并与右侧DataFrame逐段合并。

right_by列名或列名列表

按组列对右DataFrame进行分组,并与左DataFrame逐段合并。

fill_method{‘ffill’,None},默认为None

数据的插值法。

suffixes列表式,默认为(“_x”,“_y”)

长度为2的序列,其中每个元素都是可选的字符串,指示要添加到中的重叠列名的后缀 leftright 分别为。将值传递给 None 而不是用来指示列名来自 leftright 应保留原样,不带后缀。其中至少有一个值不能为None。

在 0.25.0 版更改.

how{‘左’,‘右’,‘外’,‘内’},默认‘外’
  • LEFT:仅使用左帧的关键点(SQL:LEFT OUTER JOIN)

  • Right:仅使用右帧中的关键点(SQL:Right Out Join)

  • 外部:使用来自两个帧的关键点的并集(SQL:完全外部联接)

  • INTERNAL:使用来自两个帧的关键点的交集(SQL:INNER JOIN)。

退货
DataFrame

如果合并的DataFrame输出类型是DataFrame的子类,则它将与“Left”相同。

参见

merge

与数据库样式的联接合并。

merge_asof

在最近的关键点上合并。

示例

>>> df1 = pd.DataFrame(
...     {
...         "key": ["a", "c", "e", "a", "c", "e"],
...         "lvalue": [1, 2, 3, 1, 2, 3],
...         "group": ["a", "a", "a", "b", "b", "b"]
...     }
... )
>>> df1
      key  lvalue group
0   a       1     a
1   c       2     a
2   e       3     a
3   a       1     b
4   c       2     b
5   e       3     b
>>> df2 = pd.DataFrame({"key": ["b", "c", "d"], "rvalue": [1, 2, 3]})
>>> df2
      key  rvalue
0   b       1
1   c       2
2   d       3
>>> merge_ordered(df1, df2, fill_method="ffill", left_by="group")
  key  lvalue group  rvalue
0   a       1     a     NaN
1   b       1     a     1.0
2   c       2     a     2.0
3   d       2     a     3.0
4   e       3     a     3.0
5   a       1     b     NaN
6   b       1     b     1.0
7   c       2     b     2.0
8   d       2     b     3.0
9   e       3     b     3.0