ascending=True sorts from smallest to largest. Use False for largest to smallest.
Examples
Sorts the DataFrame df by the column age in ascending order.
Pandas
df.sort_values(by='age')
Sorts df by score from highest to lowest.
Pandas
df.sort_values(by='score', ascending=False)
Sample Program
This code creates a small table of names and ages. Then it sorts the table by age from youngest to oldest and prints the result.
Pandas
import pandas as pd
data = {'name': ['Anna', 'Bob', 'Charlie', 'Diana'],
'age': [28, 22, 35, 30]}
df = pd.DataFrame(data)
# Sort by age ascending
sorted_df = df.sort_values(by='age')
print(sorted_df)
OutputSuccess
Important Notes
Sorting does not change the original DataFrame unless you use inplace=True.
If the column has missing values, they appear at the end by default.
Summary
sort_values() helps order data by one column.
Use ascending=True for smallest to largest, False for largest to smallest.
It returns a new sorted DataFrame unless inplace=True is set.
Practice
(1/5)
1. What does the sort_values() function do in pandas when used on a DataFrame?
easy
A. It filters rows based on a condition.
B. It changes the data type of a column.
C. It sorts the DataFrame rows based on the values in a specified column.
D. It adds a new column to the DataFrame.
Solution
Step 1: Understand the purpose of sort_values()
This function is used to reorder rows in a DataFrame based on the values in one or more columns.
Step 2: Compare with other options
Changing data types, filtering rows, or adding columns are done by different functions, not sort_values().
Final Answer:
It sorts the DataFrame rows based on the values in a specified column. -> Option C
Quick Check:
sort_values() = reorder rows by column [OK]
Hint: Remember: sort_values() orders rows by column values [OK]
Common Mistakes:
Confusing sorting with filtering
Thinking it changes data types
Assuming it adds columns
2. Which of the following is the correct syntax to sort a DataFrame df by the column 'age' in ascending order?
easy
A. df.sort_values(by='age', ascending=True)
B. df.sort_values('age', ascending=False)
C. df.sort(by='age', ascending=True)
D. df.sort_values(by='age', ascending='yes')
Solution
Step 1: Check the correct function and parameters
The function is sort_values() and it requires the parameter by='column_name'. The ascending parameter should be a boolean.
Step 2: Validate each option
df.sort_values(by='age', ascending=True) uses correct function and parameters. df.sort_values('age', ascending=False) has ascending=False (descending). df.sort(by='age', ascending=True) uses wrong function sort(). df.sort_values(by='age', ascending='yes') uses a string instead of boolean for ascending.
Final Answer:
df.sort_values(by='age', ascending=True) -> Option A
B. The ascending parameter should be a boolean, not a string.
C. sort_values() does not accept the ascending parameter.
D. The DataFrame must be sorted inplace.
Solution
Step 1: Check the ascending parameter type
The ascending parameter expects a boolean (True or False), but here it is passed as a string 'False'.
Step 2: Validate other options
Passing column name as string is allowed. sort_values() accepts ascending. Sorting inplace is optional.
Final Answer:
The ascending parameter should be a boolean, not a string. -> Option B
Quick Check:
ascending must be True/False boolean [OK]
Hint: Use True/False, not 'True'/'False' for ascending [OK]
Common Mistakes:
Passing ascending as string
Thinking column name must be list
Forcing inplace sorting unnecessarily
5. You have a DataFrame df with columns 'product' and 'price'. You want to sort the products by price descending but keep the original DataFrame unchanged. Which code achieves this?
hard
A. df.sort_values(by='price', ascending=False, inplace=True)
B. df.sort_values('price', inplace=False)
C. df.sort_values(by='price', ascending=True)
D. sorted_df = df.sort_values(by='price', ascending=False)
Solution
Step 1: Understand sorting without changing original
To keep original DataFrame unchanged, do not use inplace=True. Instead, assign the sorted result to a new variable.
Step 2: Check options for descending order
sorted_df = df.sort_values(by='price', ascending=False) sorts by 'price' descending and assigns to sorted_df. df.sort_values(by='price', ascending=False, inplace=True) changes original due to inplace=True. df.sort_values(by='price', ascending=True) sorts ascending, not descending. df.sort_values('price', inplace=False) sorts ascending by default and does not assign result.
Final Answer:
sorted_df = df.sort_values(by='price', ascending=False) -> Option D
Quick Check:
Assign sorted result without inplace for original unchanged [OK]
Hint: Assign sorted DataFrame to new variable, avoid inplace=True [OK]
Common Mistakes:
Using inplace=True and losing original order
Sorting ascending instead of descending
Not assigning sorted DataFrame to a variable
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.