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')[源代码]#
对有序数据执行合并,并可选择填充/插值。
专为有序数据(如时间序列数据)设计。可选择执行分组合并(参见示例)。
- Parameters:
- leftDataFrame 或命名的 Series
- rightDataFrame 或命名的 Series
- on标签或列表
用于连接的字段名称。必须在两个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
数据的插值方法。
- suffixes类列表,默认为(”_x”, “_y”)
一个长度为2的序列,其中每个元素是可选的字符串,表示要添加到`left`和`right`中重叠列名的后缀。通过提供`None`而不是字符串来表示`left`或`right`中的列名应保持不变,没有后缀。至少有一个值不能为None。
- how{‘left’, ‘right’, ‘outer’, ‘inner’},默认’outer’
left:只使用左表的键(SQL:左外连接)。
right:只使用右表的键(SQL:右外连接)。
outer:使用两个表的键的并集(SQL:全外连接)。
inner:使用两个表的键的交集(SQL:内连接)。
- Returns:
- DataFrame
合并后的DataFrame输出类型将与’left’相同,如果它是一个DataFrame的子类。
参见
merge使用类似数据库的连接进行合并。
merge_asof按最近的键合并。
Examples
>>> 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