piper.verbs.left_join

piper.verbs.left_join(df: pandas.core.frame.DataFrame, *args, **kwargs)pandas.core.frame.DataFrame[source]

df (All) | df2 (All/na) df always returned

This is a wrapper function rather than using e.g. df.merge(how=’left’) For details of args, kwargs - see help(pd.DataFrame.merge)

Examples

order_data = {'OrderNo': [1001, 1002, 1003, 1004, 1005],
              'Status': ['A', 'C', 'A', 'A', 'P'],
              'Type_': ['SO', 'SA', 'SO', 'DA', 'DD']}
orders = pd.DataFrame(order_data)

status_data = {'Status': ['A', 'C', 'P'],
               'description': ['Active', 'Closed', 'Pending']}
statuses = pd.DataFrame(status_data)

order_types_data = {'Type_': ['SA', 'SO'],
                    'description': ['Sales Order', 'Standing Order'],
                    'description_2': ['Arbitrary desc', 'another one']}
types_ = pd.DataFrame(order_types_data)

%%piper
orders >> left_join(types_, suffixes=('_orders', '_types'))

|   OrderNo | Status   | Type_   | description    | description_2   |
|----------:|:---------|:--------|:---------------|:----------------|
|      1001 | A        | SO      | Standing Order | another one     |
|      1002 | C        | SA      | Sales Order    | Arbitrary desc  |
|      1003 | A        | SO      | Standing Order | another one     |
|      1004 | A        | DA      | nan            | nan             |
|      1005 | P        | DD      | nan            | nan             |