VJoin Table¶
VJoin Tables into a single Table, stacking rows on top of each other.
Documentation¶
The operation of vertical join, or VJoin, stacks the columns from the incoming Tables that have the same name vertically upon each other, under the condition that they exist in all Tables. If the condition is fulfilled the number of rows in the outgoing Table will be equal to the sum of the number of rows in the incoming Tables. If there exist no overlap over all Tables the output will be an empty Table.
In the GUI it is possible to override the overlap requirement and let the node work in a state where the output will include all columns that exist in the incoming Tables. The columns that do not exist in all Tables are either ignored, created as a “masked” value, or complemented with default values. The strategy for this is decided by the “Complement missing columns”-checkbox as well as the “Complement-strategy” combo options. In the case of complementing with a value a column with numerical values is filled with NaNs while for a column with strings the elements it is filled with empty strings.
The second port can be duplicated, making it possible to join several inputs using one node. To join a dynamic number of tables use VJoin Tables.
Column types¶
When the columns stacked have different types, the node will try to find a result type to accommodate the new values. For example, combining an integer and a boolean would result in an integer column with the boolean values translated from False to 0 and True to 1. LIMITATION: If the types differ and part of the column is date-time or time-delta no resulting type can be found.
Index column¶
An index column will be created in the outgoing Table if a name is specified for the column in the GUI, by default the index column has the name “VJoin-index”. In the index column, elements in the joined output that originate from the same incoming Table will be given the same index number. If one wants to do the reversed operation, VSplit Table, the index column is important. No index column will be created if the specified name is an empty string.
In the GUI it is also possible to specify the name of an incoming index column, a column with information about previous VJoin operations. If the specified index column exists in the incoming Tables the information of the previous join operations will be regarded when the new index column is constructed. The new index column will replace the old ones in the output of the node.
An increment will be applied to the outgoing index column if there exist incoming Tables with the number of rows equal to zero. The size of this increment can be specified in the GUI of the node, where default value is 0.
Definition¶
Input ports¶
- port1 1 - 1, table
Input Table
- port2 1 - inf, table
Input Table
Output ports¶
- port1 table
Joined Table
Configuration¶
- Complement missing columns (fill)
Select if columns that are not represented in all Tables should be complemented
- Complement strategy (fill_strategy)
When “Complement with nan or empty string” is selected missing columns will be replaced by columns of nan or empty strings. When “Mask missing values” is selected missing columns will be result in masked values
- Increment for empty tables (minimum_increment)
Specify the increment in the outgoing index column for tables with no rows. Either 1 or 0.
- Output index (output_index)
Specify name for output index column. If left empty, no index column will be created
Examples¶
Implementation¶
- class node_vjoin_tables.VJoinTableNode[source]