Sort a dataframe in Pandas based on multiple columns
Pandas
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 |