tabsdata.tableframe.functions.eager.concat#
- concat(items: Iterable[TdType], how: Literal['vertical', 'vertical_relaxed', 'diagonal', 'diagonal_relaxed'] = 'vertical') TdType[source]#
Combine multiple TableFrames by stacking their rows.
- Parameters:
items – The TableFrames to concatenate.
how –
{‘vertical’, ‘vertical_relaxed’, ‘diagonal’, ‘diagonal_relaxed’} * vertical: Appends the rows of each input below the previous one. All
inputs must have exactly the same column names and types; otherwise the operation fails.
vertical_relaxed: Same as vertical, but if columns with the same name have different data types across inputs, they are converted to a common type (e.g. Int32 → Int64).
diagonal: Aligns columns by name across all inputs. If a column is missing from a particular input, that input is padded with null values for the missing column. Matching columns keep their original type if consistent.
diagonal_relaxed: Same as diagonal, but when matching columns have different data types, they are converted to a common type (e.g. Int32 → Int64).
Example:
>>> import tabsdata as td >>> >>> tf1: td.TableFrame ... >>> ┌──────┬──────┐ │ a ┆ b │ │ --- ┆ --- │ │ str ┆ i64 │ ╞══════╪══════╡ │ a ┆ 1 │ │ b ┆ 2 │ └──────┴──────┘ >>> >>> tf2: td.TableFrame ... >>> ┌──────┬──────┐ │ a ┆ b │ │ --- ┆ --- │ │ str ┆ i64 │ ╞══════╪══════╡ │ x ┆ 10 │ │ y ┆ 20 │ └──────┴──────┘ >>> >>> tf = td.concat([tf1, tf2]) >>> ┌──────┬──────┐ │ a ┆ b │ │ --- ┆ --- │ │ str ┆ i64 │ ╞══════╪══════╡ │ a ┆ 1 │ │ b ┆ 2 │ │ x ┆ 10 │ │ y ┆ 20 │ └──────┴──────┘