Sort a dataframe in Pandas based on multiple columns


import modules

import pandas as pd
import numpy as np


create dummy dataframe

raw_data = {'name': ['Willard Morris', 'Al Jennings', 'Omar Mullins', 'Spencer McDaniel'],
        'age': [20, 19, 22, 21],
        'favorite_color': ['blue', 'red', 'yellow', "green"],
        'grade': [88, 92, 95, 70]}
df = pd.DataFrame(raw_data, index = ['Willard Morris', 'Al Jennings', 'Omar Mullins', 'Spencer McDaniel'])
df
age favorite_color grade name
Willard Morris 20 blue 88 Willard Morris
Al Jennings 19 red 92 Al Jennings
Omar Mullins 22 yellow 95 Omar Mullins
Spencer McDaniel 21 green 70 Spencer McDaniel


sort Pandas dataframe based on two columns: age, grade

#age in ascending order, grade descending order
df.sort_values(['age', 'grade'], ascending=[True, False])
age favorite_color grade name
Al Jennings 19 red 92 Al Jennings
Willard Morris 20 blue 88 Willard Morris
Spencer McDaniel 21 green 70 Spencer McDaniel
Omar Mullins 22 yellow 95 Omar Mullins