pandas.merge_ordered — pandas 3.0.0.dev0+2104.ge637b4290d documentation (original) (raw)
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')[source]#
Perform a merge for ordered data with optional filling/interpolation.
Designed for ordered data like time series data. Optionally perform group-wise merge (see examples).
Parameters:
leftDataFrame or named Series
First pandas object to merge.
rightDataFrame or named Series
Second pandas object to merge.
onlabel or list
Field names to join on. Must be found in both DataFrames.
left_onlabel or list, or array-like
Field names to join on in left DataFrame. Can be a vector or list of vectors of the length of the DataFrame to use a particular vector as the join key instead of columns.
right_onlabel or list, or array-like
Field names to join on in right DataFrame or vector/list of vectors per left_on docs.
left_bycolumn name or list of column names
Group left DataFrame by group columns and merge piece by piece with right DataFrame. Must be None if either left or right are a Series.
right_bycolumn name or list of column names
Group right DataFrame by group columns and merge piece by piece with left DataFrame. Must be None if either left or right are a Series.
fill_method{‘ffill’, None}, default None
Interpolation method for data.
suffixeslist-like, default is (“_x”, “_y”)
A length-2 sequence where each element is optionally a string indicating the suffix to add to overlapping column names inleft and right respectively. Pass a value of None instead of a string to indicate that the column name from left orright should be left as-is, with no suffix. At least one of the values must not be None.
how{‘left’, ‘right’, ‘outer’, ‘inner’}, default ‘outer’
- left: use only keys from left frame (SQL: left outer join)
- right: use only keys from right frame (SQL: right outer join)
- outer: use union of keys from both frames (SQL: full outer join)
- inner: use intersection of keys from both frames (SQL: inner join).
Returns:
DataFrame
The merged DataFrame output type will be the same as ‘left’, if it is a subclass of DataFrame.
See also
Merge with a database-style join.
Merge on nearest keys.
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