To sort by multiple columns ascending and descending in Pandas we can use syntax like:

``````df.sort_values(by=['name', 'salary'], ascending=[True, False])
``````

Let's cover two examples to explain sorting on multiple columns in more detail.

## Sort a DataFrame by two or more columns

To sort Pandas DataFrame by two and more columns we can use parameter `by`:

`df.sort_values(by=['name', 'age'], ascending=True)`

Example of sorting DataFrame by two columns:

``````import pandas as pd

df = pd.DataFrame({
'name': ['Alice', 'Bob', 'Charlie', 'Alice', 'Bob'],
'age': [25, 30, 35, 25, 40],
'salary': [50000, 70000, 60000, 55000, 80000]
})

df.sort_values(by=['name', 'age'], ascending=True)
``````

The code above sort the DataFrame by 'name' and 'age' columns in ascending order:

name age salary
0 Alice 25 50000
3 Alice 25 55000
1 Bob 30 70000
4 Bob 40 80000
2 Charlie 35 60000

DataFrame before sorting is:

name age salary
0 Alice 25 50000
1 Bob 30 70000
2 Charlie 35 60000
3 Alice 25 55000
4 Bob 40 80000

We can specify the sort order for each column using the ascending parameter as boolean or a list:

• `ascending=True` - the columns will be sorted in ascending order
• `ascending=False` - sorted in descending order.

## sort by multiple columns one ascending and descending

We can use Pandas method `sort_values()` to sort by multiple columns in different order: ascending and descending.

Parameter `ascending` can take a list of values: `ascending=[True, False]`.

Full example of sort both ascending and descending in Pandas:

``````import pandas as pd

df = pd.DataFrame({
'name': ['Alice', 'Bob', 'Charlie', 'Alice', 'Bob'],
'age': [25, 30, 35, 25, 40],
'salary': [50000, 70000, 60000, 55000, 80000]
})

df.sort_values(by=['name', 'salary'], ascending=[True, False])
``````

The result of the sorted DataFrame is:

name age salary
3 Alice 25 55000
0 Alice 25 50000
4 Bob 40 80000
1 Bob 30 70000
2 Charlie 35 60000