[//]: # (title: concat) Returns a [`DataFrame`](DataFrame.md) with the union of rows from several given [`DataFrame`](DataFrame.md) objects. **Related operations**: [](multipleDataFrames.md) `concat` is available for: [`DataFrame`](DataFrame.md): ```kotlin df.concat(df1, df2) ``` [`DataColumn`](DataColumn.md): ```kotlin val a by columnOf(1, 2) val b by columnOf(3, 4) a.concat(b) ``` `Iterable`: ```kotlin listOf(df1, df2).concat() ``` `Iterable`: ```kotlin val rows = listOf(df[2], df[4], df[5]) rows.concat() ``` `Iterable`: ```kotlin val a by columnOf(1, 2) val b by columnOf(3, 4) listOf(a, b).concat() ``` [`groupBy`](groupBy.md#transformation): ```kotlin df.groupBy { name }.concat() ``` [`FrameColumn`](DataColumn.md#framecolumn): ```kotlin val x = dataFrameOf("a", "b")( 1, 2, 3, 4, ) val y = dataFrameOf("b", "c")( 5, 6, 7, 8, ) val frameColumn by columnOf(x, y) frameColumn.concat() ``` If you want to take the union of columns (not rows) from several [`DataFrame`](DataFrame.md) objects, see [`add`](add.md). ## Schema unification If input [`DataFrame`](DataFrame.md) objects have different schemas, every column in the resulting [`DataFrame`](DataFrame.md) will get the lowest common type of the original columns with the same name. For example, if one [`DataFrame`](DataFrame.md) has a column `A: Int` and another [`DataFrame`](DataFrame.md) has a column `A: Double`, the resulting [`DataFrame`](DataFrame.md) will have a column `A: Number`. Missing columns in [`DataFrame`](DataFrame.md) objects will be filled with `null`.