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的序列,其中每个元素都是可选的字符串,指示要添加到中的重叠列名的后缀 left 和 right 分别为。将值传递给 None 而不是用来指示列名来自 left 或 right 应保留原样,不带后缀。其中至少有一个值不能为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