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’

Returns:

DataFrame

The merged DataFrame output type will be the same as ‘left’, if it is a subclass of DataFrame.

See also

merge

Merge with a database-style join.

merge_asof

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