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')[源代码][源代码]#

对有序数据执行合并,可选择填充/插值。

专为有序数据设计,如时间序列数据。可选地执行分组合并(见示例)。

参数:
DataFrame 或命名 Series

第一个要合并的 pandas 对象。

DataFrame 或命名 Series

第二个要合并的 pandas 对象。

标签或列表

要连接的字段名称。必须同时存在于两个DataFrame中。

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

左DataFrame中用于连接的字段名。可以是向量或向量列表,长度与DataFrame相同,使用特定向量作为连接键而不是列。

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

在右DataFrame中用于连接的字段名,或根据left_on文档的向量/向量列表。

left_by列名或列名列表

按组列对左 DataFrame 进行分组,并与右 DataFrame 逐块合并。如果左或右是 Series,则必须为 None。

right_by列名或列名列表

按组列对右 DataFrame 进行分组,并与左 DataFrame 逐块合并。如果左或右是 Series,则必须为 None。

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

数据的内插方法。

后缀类似列表,默认是 (“_x”, “_y”)

一个长度为2的序列,其中每个元素可以是可选的字符串,分别指示在 leftright 中重叠列名后添加的后缀。传递一个值 None 而不是字符串,以指示应保持 leftright 的列名不变,不添加后缀。至少一个值不能是 None。

如何{‘left’, ‘right’, ‘outer’, ‘inner’},默认 ‘outer’
  • left: 仅使用左框架中的键(SQL: left outer join)

  • right: 仅使用右帧中的键(SQL: 右外连接)

  • outer: 使用两个帧的键的并集(SQL: 完全外连接)

  • inner: 使用两个帧的键的交集(SQL: 内连接)。

返回:
DataFrame

合并后的 DataFrame 输出类型将与 ‘left’ 相同,如果它是 DataFrame 的子类。

参见

合并

与数据库风格的连接合并。

merge_asof

在最近的键上合并。

示例

>>> from pandas import merge_ordered
>>> 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