Join
Join — join
Combine two inputs (left, right) on a key. Join is one of two multi-input
nodes — connect one upstream node to its left handle and another to its
right handle.
Use cases
- Enrich transactions with customer attributes.
- Look up reference data (region names, prices) by key.
What it does
Join combines the left and right inputs on a shared key. The how parameter
controls which rows survive — inner keeps only matches, left keeps all rows from
the left input (filling nulls for unmatched right-side columns).
Left input
Left input
orders aggregated by customer_id
Right input
Right input
customers.csv
Join
on: customer_id · how: left
Enriched result
transactions + customer name/country
Before
| customer_id | total_spent |
|---|---|
| 1 | 100 |
| 2 | 500 |
| 3 | 15 |
3 rows · 2 cols
Join (on=customer_id, how=left)
After
| customer_id | total_spent | namenew | countrynew |
|---|---|---|---|
| 1 | 100 | Ada | UK |
| 2 | 500 | Grace | US |
| 3 | 15 | Linus | FI |
3 rows · 4 cols
Configuration
| Config key | Type | Required | Description |
|---|---|---|---|
on | string | string[] | Conditional | Key(s) present in both frames |
left_on / right_on | string | string[] | Conditional | Use when key names differ (supply both) |
how | string | No | inner (default), left, right, outer |
suffixes | [string, string] | No | Suffixes for overlapping columns (default _x, _y) |
Provide either on (same key name on both sides) or both left_on and
right_on (different names).
Generated Python code
df_3 = df_1.merge(df_2, on='customer_id', how='left')
Tips & common mistakes
howcontrols which rows survive:innerkeeps matches only;left/rightkeep all rows from one side;outerkeeps everything (unmatched cells become null).- Overlapping non-key columns get
suffixes. Rename or drop them upstream to avoid_x/_ycolumns. - A shared-key (
on=) outer join produces a single key column (the keys are coalesced), matching pandas — verified across both engines. - Join takes two inputs at a time; chain join nodes to combine three or more.