[//]: # (title: sortBy)
Returns [`DataFrame`](DataFrame.md) with rows sorted by one or several columns.
By default, columns are sorted in ascending order with `null` values going first. Available modifiers:
* `.desc` — changes column sort order from ascending to descending
* `.nullsLast` — forces `null` values to be placed at the end of the order
**Related operations**: [](reorderRows.md)
See [column selectors](ColumnSelectors.md) for how to select the columns for this operation.
```kotlin
df.sortBy { age }
df.sortBy { age and name.firstName.desc() }
df.sortBy { weight.nullsLast() }
```
```kotlin
df.sortBy("age")
df.sortBy { "age" and "name"["firstName"].desc() }
df.sortBy { "weight".nullsLast() }
```
## sortByDesc
Returns [`DataFrame`](DataFrame.md) sorted by one or several columns in descending order.
See [column selectors](ColumnSelectors.md) for how to select the columns for this operation.
```kotlin
df.sortByDesc { age and weight }
```
```kotlin
df.sortByDesc("age", "weight")
```
## sortWith
Returns [`DataFrame`](DataFrame.md) sorted with comparator.
```kotlin
df.sortWith { row1, row2 ->
when {
row1.age < row2.age -> -1
row1.age > row2.age -> 1
else -> row1.name.firstName.compareTo(row2.name.firstName)
}
}
```