0
0
PandasHow-ToBeginner · 3 min read

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 by parameter when sorting a DataFrame, causing errors.
  • Trying to sort in place without inplace=True if 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

MethodDescriptionExample
sort_valuesSort DataFrame or Series by valuesdf.sort_values(by='col', ascending=False)
sort_indexSort by index labelsdf.sort_index(ascending=False)
inplace parameterModify original data without creating copydf.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.