pandas.merge_ordered #

熊猫。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 或命名系列
正确的DataFrame 或命名系列
标签或清单

要加入的字段名称。必须在两个 DataFrame 中找到。

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

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

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

要加入到右 DataFrame 或每个 left_on 文档的向量/向量列表中的字段名称。

left_by列名或列名列表

按组列对左侧 DataFrame 进行分组,并与右侧 DataFrame 逐段合并。如果左或右是一个系列,则必须为 None。

right_by列名或列名列表

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

fill_method {'ffill', None}, 默认 None

数据插值方法。

后缀列表,默认为(“_x”,“_y”)

长度为 2 的序列,其中每个元素都可以是一个字符串,指示分别添加到左侧右侧重叠列名称的后缀 。传递None值而不是字符串,以指示左侧右侧的列名称应保持原样,不带后缀。至少其中一个值不得为 None。

如何{'left', 'right', 'outer', 'inner'}, 默认 'outer'
  • 左:仅使用左框架中的键(SQL:左外连接)

  • 右:仅使用右框架中的键(SQL:右外连接)

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

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

返回
数据框

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

也可以看看

merge

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

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