Sort — agate 1.6.3 documentation

# Sort

## Alphabetical

Order a table by the `last_name` column:

    new_table = table.order_by('last_name')

## Numerical

Order a table by the `cost` column:

    new_table = table.order_by('cost')

## By date

Order a table by the `birth_date` column:

    new_table = table.order_by('birth_date')

## Reverse order

The order of any sort can be reversed by using the `reverse` keyword:

    new_table = table.order_by('birth_date', reverse=True)

## Multiple columns

Because Python’s internal sorting works natively with sequences, we can implement multi-column sort by returning a tuple from the key function.

    new_table = table.order_by(lambda row: (row['last_name'], row['first_name']))

This table will now be ordered by `last_name`, then `first_name`.

## Random order

    import random

    new_table = table.order_by(lambda row: random.random())