Bird
Raised Fist0
Pandasdata~5 mins

sort_values() by multiple columns in Pandas - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does the sort_values() function do in pandas?
It sorts the rows of a DataFrame based on the values in one or more columns.
Click to reveal answer
beginner
How do you sort a DataFrame by multiple columns using sort_values()?
Pass a list of column names to the by parameter, like df.sort_values(by=['col1', 'col2']).
Click to reveal answer
intermediate
How can you sort one column ascending and another descending using sort_values()?
Use the ascending parameter with a list of booleans, e.g., df.sort_values(by=['col1', 'col2'], ascending=[True, False]).
Click to reveal answer
beginner
What happens if you don't specify the ascending parameter in sort_values()?
All columns are sorted in ascending order by default.
Click to reveal answer
intermediate
Can sort_values() sort by columns with missing values (NaNs)?
Yes, NaNs are placed at the end by default when sorting ascending, and at the beginning when sorting descending.
Click to reveal answer
How do you sort a DataFrame df by columns 'A' ascending and 'B' descending?
Adf.sort_values(by=['A', 'B'])
Bdf.sort_values(by=['A', 'B'], ascending=[False, True])
Cdf.sort_values(by=['A', 'B'], ascending=[True, False])
Ddf.sort_values(by=['B', 'A'], ascending=[True, False])
What is the default sort order if you do not specify ascending?
AAscending for all columns
BDescending for all columns
CRandom order
DDepends on the data type
Which parameter do you use to specify the columns to sort by in sort_values()?
Aby
Border
Csort_by
Dcolumns
If you want to sort by a single column 'X' in descending order, which is correct?
Adf.sort_values(by='X', ascending=True)
Bdf.sort_values(by='X', ascending=False)
Cdf.sort_values(by='X')
Ddf.sort_values(by='X', ascending=[False])
How does sort_values() handle NaN values when sorting ascending?
ANaNs appear at the start
BNaNs are removed
CNaNs cause an error
DNaNs appear at the end
Explain how to sort a pandas DataFrame by multiple columns with different sort orders.
Think about how you tell pandas which columns and order to use.
You got /4 concepts.
    Describe what happens to missing values (NaNs) when sorting a DataFrame with sort_values().
    Consider where NaNs appear in the sorted result.
    You got /4 concepts.

      Practice

      (1/5)
      1.

      What does the sort_values() function do when used on a pandas DataFrame?

      easy
      A. It sorts the DataFrame rows based on the values in one or more columns.
      B. It filters rows that match a condition.
      C. It changes the data types of columns.
      D. It adds new columns to the DataFrame.

      Solution

      1. Step 1: Understand the purpose of sort_values()

        This function organizes the rows of a DataFrame by sorting them according to the values in specified columns.
      2. Step 2: Compare with other DataFrame operations

        Filtering selects rows, changing data types modifies columns, and adding columns is unrelated to sorting.
      3. Final Answer:

        It sorts the DataFrame rows based on the values in one or more columns. -> Option A
      4. Quick Check:

        Sorting = Organizing rows by column values [OK]
      Hint: Remember: sort_values() arranges rows by column values [OK]
      Common Mistakes:
      • Confusing sorting with filtering rows
      • Thinking it changes data types
      • Assuming it adds or removes columns
      2.

      Which of the following is the correct syntax to sort a DataFrame df by columns 'A' ascending and 'B' descending?

      df.sort_values(??? )
      easy
      A. columns=['A', 'B'], ascending=[False, True]
      B. by=['A', 'B'], ascending=[True, False]
      C. by=['A', 'B'], ascending=True
      D. sort=['A', 'B'], order=[True, False]

      Solution

      1. Step 1: Identify correct parameter names

        The method uses by to specify columns and ascending to specify order per column.
      2. Step 2: Match order for each column

        To sort 'A' ascending and 'B' descending, use ascending=[True, False].
      3. Final Answer:

        by=['A', 'B'], ascending=[True, False] -> Option B
      4. Quick Check:

        Correct parameters = by=['A', 'B'], ascending=[True, False] [OK]
      Hint: Use by=columns and ascending=list of booleans [OK]
      Common Mistakes:
      • Using wrong parameter names like columns or sort
      • Passing a single boolean for multiple columns
      • Mixing ascending order values
      3.

      Given the DataFrame:

      import pandas as pd
      df = pd.DataFrame({
        'Name': ['Anna', 'Bob', 'Anna', 'Bob'],
        'Score': [90, 92, 85, 80]
      })
      
      What is the result of df.sort_values(by=['Name', 'Score'], ascending=[True, False])?
      medium
      A. Rows sorted by Name ascending, then Score descending: Anna(90), Anna(85), Bob(92), Bob(80)
      B. Rows sorted by Name descending, then Score ascending: Bob(80), Bob(92), Anna(85), Anna(90)
      C. Rows sorted by Score ascending only: Bob(80), Anna(85), Anna(90), Bob(92)
      D. Rows sorted by Score descending only: Bob(92), Anna(90), Anna(85), Bob(80)

      Solution

      1. Step 1: Sort by 'Name' ascending

        Names order: Anna, Anna, Bob, Bob.
      2. Step 2: Within each Name, sort 'Score' descending

        For Anna: 90 then 85; for Bob: 92 then 80.
      3. Final Answer:

        Rows sorted by Name ascending, then Score descending: Anna(90), Anna(85), Bob(92), Bob(80) -> Option A
      4. Quick Check:

        Sort by Name ↑, Score ↓ = Rows sorted by Name ascending, then Score descending: Anna(90), Anna(85), Bob(92), Bob(80) [OK]
      Hint: Sort first column ascending, second descending as list [OK]
      Common Mistakes:
      • Mixing ascending and descending order
      • Sorting only by one column
      • Confusing order of sorting columns
      4.

      What is wrong with this code snippet?

      df.sort_values(by=['A', 'B'], ascending=True)

      Assuming df has columns 'A' and 'B'.

      medium
      A. The method sort_values does not accept the ascending parameter.
      B. The by parameter should be a string, not a list.
      C. The ascending parameter should be a list when sorting by multiple columns.
      D. The code is correct and will run without errors.

      Solution

      1. Step 1: Recall sort_values() parameters

        by accepts list of columns, ascending accepts bool (applies to all) or list of bools.
      2. Step 2: Validate the code

        The code uses ascending=True, which correctly sorts both columns ascending. No errors.
      3. Final Answer:

        The code is correct and will run without errors. -> Option D
      4. Quick Check:

        ascending=True valid for multi-column sort [OK]
      Hint: ascending=True sorts all columns ascending; use list for mixed orders [OK]
      Common Mistakes:
      • Believing ascending must be a list for multiple columns
      • Using string instead of list for 'by' parameter
      • Assuming sort_values lacks ascending parameter
      5.

      You have a DataFrame df with columns 'City', 'Temperature', and 'Humidity'. You want to sort the data so that cities are in alphabetical order, but within each city, rows with higher temperature come first, and if temperatures are equal, rows with lower humidity come first.

      Which sort_values() call achieves this?

      hard
      A. df.sort_values(by=['City', 'Temperature', 'Humidity'], ascending=[False, True, False])
      B. df.sort_values(by=['City', 'Humidity', 'Temperature'], ascending=[True, True, False])
      C. df.sort_values(by=['City', 'Temperature', 'Humidity'], ascending=[True, False, True])
      D. df.sort_values(by=['Temperature', 'City', 'Humidity'], ascending=[False, True, True])

      Solution

      1. Step 1: Sort 'City' alphabetically ascending

        Set ascending=True for 'City' to get alphabetical order.
      2. Step 2: Sort 'Temperature' descending within each city

        Use ascending=False for 'Temperature' to have higher temperatures first.
      3. Step 3: Sort 'Humidity' ascending when temperatures tie

        Use ascending=True for 'Humidity' to get lower humidity first.
      4. Final Answer:

        df.sort_values(by=['City', 'Temperature', 'Humidity'], ascending=[True, False, True]) -> Option C
      5. Quick Check:

        City ↑, Temp ↓, Humidity ↑ = df.sort_values(by=['City', 'Temperature', 'Humidity'], ascending=[True, False, True]) [OK]
      Hint: Match ascending list to desired order per column [OK]
      Common Mistakes:
      • Mixing order of columns in 'by' list
      • Using wrong ascending booleans
      • Sorting humidity before temperature
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard