6. Sorting Value in Pandas
Sorting Values in Pandas
Sorting in pandas means arranging data in ascending or descending order. We use the sort_values() function to sort data.
sort_values()
To sort values in pandas, use sort_values(). It has parameters:
ascending — Default value is True. If you want data in descending order, set ascending=False.
Example setup:
import pandas as pd
df = pd.read_excel('students.xlsx')
df0
101
Aarav Sharma
10
A
88
1
102
Meera Patel
10
B
92
2
103
Rohan Singh
9
A
75
3
104
Ananya Das
9
B
81
4
105
Ishaan Verma
10
A
95
5
106
Priya Nair
8
C
67
6
107
Dev Mehta
8
B
73
7
108
Nisha Rao
9
C
84
8
109
Arjun Gupta
10
B
90
9
110
Tanya Malik
9
A
77
10
111
Karan Yadav
8
A
71
11
112
Sneha Kapoor
10
C
89
12
113
Rahul Menon
9
B
82
13
114
Diya Joshi
8
A
79
14
115
Mohit Jain
10
C
85
15
116
Kritika Singh
9
B
91
16
117
Varun Bhat
8
C
63
17
118
Riya Sharma
9
A
87
18
119
Aman Thakur
10
A
93
19
120
Kavya Pillai
8
B
76
Sort Student Records in Ascending Order By Class
cdf = df.sort_values('class')
cdf6
107
Dev Mehta
8
B
73
5
106
Priya Nair
8
C
67
13
114
Diya Joshi
8
A
79
10
111
Karan Yadav
8
A
71
19
120
Kavya Pillai
8
B
76
16
117
Varun Bhat
8
C
63
7
108
Nisha Rao
9
C
84
12
113
Rahul Menon
9
B
82
15
116
Kritika Singh
9
B
91
9
110
Tanya Malik
9
A
77
3
104
Ananya Das
9
B
81
2
103
Rohan Singh
9
A
75
17
118
Riya Sharma
9
A
87
4
105
Ishaan Verma
10
A
95
1
102
Meera Patel
10
B
92
0
101
Aarav Sharma
10
A
88
14
115
Mohit Jain
10
C
85
11
112
Sneha Kapoor
10
C
89
8
109
Arjun Gupta
10
B
90
18
119
Aman Thakur
10
A
93
Sort Student Records in Ascending Order By Class and Section
fdf = df.sort_values(['class','section'])
fdf10
111
Karan Yadav
8
A
71
13
114
Diya Joshi
8
A
79
6
107
Dev Mehta
8
B
73
19
120
Kavya Pillai
8
B
76
5
106
Priya Nair
8
C
67
16
117
Varun Bhat
8
C
63
2
103
Rohan Singh
9
A
75
9
110
Tanya Malik
9
A
77
17
118
Riya Sharma
9
A
87
3
104
Ananya Das
9
B
81
12
113
Rahul Menon
9
B
82
15
116
Kritika Singh
9
B
91
7
108
Nisha Rao
9
C
84
0
101
Aarav Sharma
10
A
88
4
105
Ishaan Verma
10
A
95
18
119
Aman Thakur
10
A
93
1
102
Meera Patel
10
B
92
8
109
Arjun Gupta
10
B
90
11
112
Sneha Kapoor
10
C
89
14
115
Mohit Jain
10
C
85
Sort Student Records in Ascending Order By Class, Section and Score
mdf = df.sort_values(['class','section','score'])
mdf10
111
Karan Yadav
8
A
71
13
114
Diya Joshi
8
A
79
6
107
Dev Mehta
8
B
73
19
120
Kavya Pillai
8
B
76
16
117
Varun Bhat
8
C
63
5
106
Priya Nair
8
C
67
2
103
Rohan Singh
9
A
75
9
110
Tanya Malik
9
A
77
17
118
Riya Sharma
9
A
87
3
104
Ananya Das
9
B
81
12
113
Rahul Menon
9
B
82
15
116
Kritika Singh
9
B
91
7
108
Nisha Rao
9
C
84
0
101
Aarav Sharma
10
A
88
18
119
Aman Thakur
10
A
93
4
105
Ishaan Verma
10
A
95
8
109
Arjun Gupta
10
B
90
1
102
Meera Patel
10
B
92
14
115
Mohit Jain
10
C
85
11
112
Sneha Kapoor
10
C
89
Sort Student Records in Descending Order By Class
ddf = df.sort_values('class', ascending=False)
ddf0
101
Aarav Sharma
10
A
88
1
102
Meera Patel
10
B
92
8
109
Arjun Gupta
10
B
90
4
105
Ishaan Verma
10
A
95
18
119
Aman Thakur
10
A
93
14
115
Mohit Jain
10
C
85
11
112
Sneha Kapoor
10
C
89
2
103
Rohan Singh
9
A
75
3
104
Ananya Das
9
B
81
15
116
Kritika Singh
9
B
91
9
110
Tanya Malik
9
A
77
7
108
Nisha Rao
9
C
84
17
118
Riya Sharma
9
A
87
12
113
Rahul Menon
9
B
82
5
106
Priya Nair
8
C
67
6
107
Dev Mehta
8
B
73
10
111
Karan Yadav
8
A
71
13
114
Diya Joshi
8
A
79
16
117
Varun Bhat
8
C
63
19
120
Kavya Pillai
8
B
76
Sort Student Records in Descending Order By Class and Section
ddf = df.sort_values(['class','section'], ascending=False)
ddf11
112
Sneha Kapoor
10
C
89
14
115
Mohit Jain
10
C
85
1
102
Meera Patel
10
B
92
8
109
Arjun Gupta
10
B
90
0
101
Aarav Sharma
10
A
88
4
105
Ishaan Verma
10
A
95
18
119
Aman Thakur
10
A
93
7
108
Nisha Rao
9
C
84
3
104
Ananya Das
9
B
81
12
113
Rahul Menon
9
B
82
15
116
Kritika Singh
9
B
91
2
103
Rohan Singh
9
A
75
9
110
Tanya Malik
9
A
77
17
118
Riya Sharma
9
A
87
5
106
Priya Nair
8
C
67
16
117
Varun Bhat
8
C
63
6
107
Dev Mehta
8
B
73
19
120
Kavya Pillai
8
B
76
10
111
Karan Yadav
8
A
71
13
114
Diya Joshi
8
A
79
Sort Student Records in Descending Order By Class, Section and Score
ddf = df.sort_values(['class','section','score'], ascending=False)
ddf11
112
Sneha Kapoor
10
C
89
14
115
Mohit Jain
10
C
85
1
102
Meera Patel
10
B
92
8
109
Arjun Gupta
10
B
90
4
105
Ishaan Verma
10
A
95
18
119
Aman Thakur
10
A
93
0
101
Aarav Sharma
10
A
88
7
108
Nisha Rao
9
C
84
15
116
Kritika Singh
9
B
91
12
113
Rahul Menon
9
B
82
3
104
Ananya Das
9
B
81
17
118
Riya Sharma
9
A
87
9
110
Tanya Malik
9
A
77
2
103
Rohan Singh
9
A
75
5
106
Priya Nair
8
C
67
16
117
Varun Bhat
8
C
63
19
120
Kavya Pillai
8
B
76
6
107
Dev Mehta
8
B
73
13
114
Diya Joshi
8
A
79
10
111
Karan Yadav
8
A
71
Sort Student Records in Ascending Order By Class and Section, Descending Order By Score
ddf = df.sort_values(['class','section','score'], ascending=[True, True, False])
ddf13
114
Diya Joshi
8
A
79
10
111
Karan Yadav
8
A
71
19
120
Kavya Pillai
8
B
76
6
107
Dev Mehta
8
B
73
5
106
Priya Nair
8
C
67
16
117
Varun Bhat
8
C
63
17
118
Riya Sharma
9
A
87
9
110
Tanya Malik
9
A
77
2
103
Rohan Singh
9
A
75
15
116
Kritika Singh
9
B
91
12
113
Rahul Menon
9
B
82
3
104
Ananya Das
9
B
81
7
108
Nisha Rao
9
C
84
4
105
Ishaan Verma
10
A
95
18
119
Aman Thakur
10
A
93
0
101
Aarav Sharma
10
A
88
1
102
Meera Patel
10
B
92
8
109
Arjun Gupta
10
B
90
11
112
Sneha Kapoor
10
C
89
14
115
Mohit Jain
10
C
85
Assignments:
20 + Sorting Assignments
Single-column Sorting
Sort the dataset by
Units Soldin ascending order.Sort the dataset by
Units Soldin descending order.Sort the dataset by
Price per Unit(lowest to highest).Sort the dataset by
Price per Unit(highest to lowest).Sort all records by
Invoice Datein ascending (chronological) order.Sort all records by
Invoice Datein descending (latest first) order.Sort by
Productalphabetically (A–Z).Sort by
Productin reverse alphabetical order (Z–A).Sort by
Sales Methodalphabetically.Sort by
Cityand observe if all rows belong to the same city.
Multi-column Sorting
Sort by
Productascending, then byUnits Solddescending.Sort by
Region, then byState, both ascending.Sort by
Sales Method, thenPrice per Unitdescending.Sort by
Retailerascending andInvoice Datedescending.Sort by
City,Product, andUnits Sold.Sort by
Stateascending andPrice per Unitdescending.Sort by
Region,Product, andSales Method.Sort by
Product, then within each product by highestUnits Sold.Sort by
Product, thenPrice per Unit, thenInvoice Date.Calculate a new column
Total Sale = Price per Unit * Units Soldand sort descending.Filter rows where
Sales Method == 'In-store'and sort byUnits Sold.Filter rows where
Sales Method == 'Outlet'and sort byPrice per Unit.Sort only rows where
Units Sold> 1000 byProduct.
Last updated