All nodes/Data/DataFrame Ops
DF Select
SQL SELECT: selects/renames/drops columns. Each list row specifies source → alias or drop.
Type in the graph: df_select
Exec
An error branch can be enabled (expose_error_output) to handle failures on their own path.
Ports can be split into separate execution and data handles.
Try it
Minimal working workflow
- Execute + Data
Runs as pasted
When to use it
Works on the columns of a table: keep the ones you need, rename them, drop the rest. Rows are untouched — filtering rows is df_query, collapsing repeats is df_drop_duplicates.
It usually sits right before an export (so the file gets only the needed columns under readable headers) and before df_merge, which requires the key columns to carry the same name in both tables.
How it works
Each row of the “Columns” list describes one column: source is the name in the incoming table,
alias is the new name (empty = keep the old one), drop marks it for removal.
The list then splits in two. If at least one row is not marked drop, the result consists of
exactly those rows, in the order you listed them; everything else is discarded. If every row
is a drop, the node switches to blocklist mode: it starts from all incoming columns and
subtracts the listed ones. An empty list passes the table through unchanged.
A column listed both as kept and as dropped is dropped.
Common mistakes
- One
droprow next to rows without it. That is not “remove one column out of twelve”: as soon as the list holds a single keep row, only that column survives. To drop one column and keep the rest, every row in the list must be markeddrop. - A typo in the name of a kept column. The node fails, saying the column is not there. Dropping a column that does not exist is silent instead — there is nothing to remove.
- Underestimating the order of the list. It is the column order of the output: CSV headers will come out exactly in that sequence.
- Expecting
aliasto rename a column that is not listed.aliasonly applies to the row that keeps the column; while the keep-list is non-empty, an unlisted column simply disappears.
Inputs
| Port | Wire | Payload | Notes |
|---|---|---|---|
DataFramedf | Execute + Dataexecute_data | dataframe |
Outputs
| Port | Wire | Payload | Notes |
|---|---|---|---|
Successoutput | Execute + Dataexecute_data | dataframe | |
Erroron_error | Execute + Dataexecute_data | — | shown when expose_error_output = true |
Configuration
| Field | Type | Default | Description |
|---|---|---|---|
Columnscolumns | array | — | If empty, all columns are kept unchanged. Rows with ``drop`` removed, the rest form the keep-list (in this order). |
Shared fields
Every node has these three — the platform adds them, not the node author.
expose_error_output— When enabled, show an execution output to connect nodes that run if this step fails.split_ports_in— Show separate execution and data input handles instead of one combined port.split_ports_out— Show separate execution and data output handles instead of one combined port.