Last updated

Sorting Data

Definition: sort_values orders the rows of a DataFrame by one or more columns, ascending or descending.

Example 1 — sort by a column

import pandas as pd
df = pd.DataFrame({
  "name": ["Sam", "Alex", "Jo"],
  "age":  [25, 30, 22]
})
print(df.sort_values("age"))               # youngest first
print(df.sort_values("age", ascending=False)) # oldest first

Example 2 — sort by two columns

import pandas as pd
df = pd.DataFrame({
  "team":  ["A", "B", "A", "B"],
  "score": [10, 20, 30, 5]
})
print(df.sort_values(["team", "score"], ascending=[True, False]))

This sorts by team A-Z, then by score high-to-low within each team.

Sort by the index

import pandas as pd
df = pd.DataFrame({"x": [3, 1, 2]}).sort_values("x")
print(df.sort_index())   # back to original row order

💡 Tip: sorting does not change the original unless you reassign it: df = df.sort_values("age").

Try it Yourself
Output

          
Ad · responsive