How to Sort Data in Descending Order with pandas
To sort data in descending order in pandas, use the
sort_values() method with the parameter ascending=False. This works for both DataFrames and Series to reorder data from highest to lowest values.Syntax
The basic syntax to sort a pandas DataFrame or Series in descending order is:
data.sort_values(by='column_name', ascending=False)for DataFrames.series.sort_values(ascending=False)for Series.
Here, by specifies the column to sort by, and ascending=False tells pandas to sort from largest to smallest.
python
df.sort_values(by='column_name', ascending=False)
Example
This example shows how to sort a DataFrame by a column in descending order.
python
import pandas as pd data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'], 'Score': [85, 92, 78, 90]} df = pd.DataFrame(data) # Sort by 'Score' descending sorted_df = df.sort_values(by='Score', ascending=False) print(sorted_df)
Output
Name Score
1 Bob 92
3 David 90
0 Alice 85
2 Charlie 78
Common Pitfalls
Common mistakes include:
- Forgetting to set
ascending=False, which sorts in ascending order by default. - Not specifying the
byparameter when sorting a DataFrame, causing errors. - Trying to sort in place without
inplace=Trueif you want to modify the original DataFrame.
python
import pandas as pd data = {'Name': ['Alice', 'Bob'], 'Score': [85, 92]} df = pd.DataFrame(data) # Wrong: missing ascending=False (sorts ascending by default) wrong_sort = df.sort_values(by='Score') # Right: descending order right_sort = df.sort_values(by='Score', ascending=False) print('Wrong sort (ascending):\n', wrong_sort) print('\nRight sort (descending):\n', right_sort)
Output
Wrong sort (ascending):
Name Score
0 Alice 85
1 Bob 92
Right sort (descending):
Name Score
1 Bob 92
0 Alice 85
Quick Reference
| Method | Description | Example |
|---|---|---|
| sort_values | Sort DataFrame or Series by values | df.sort_values(by='col', ascending=False) |
| sort_index | Sort by index labels | df.sort_index(ascending=False) |
| inplace parameter | Modify original data without creating copy | df.sort_values(by='col', ascending=False, inplace=True) |
Key Takeaways
Use sort_values(by='column', ascending=False) to sort pandas data in descending order.
Always specify the column name with 'by' when sorting DataFrames.
Remember ascending=True is default; set ascending=False for descending order.
Use inplace=True to change the original DataFrame without creating a new one.
Sorting works similarly for both DataFrames and Series.