📖 Scenario: You work in a small bookstore. You have a list of books with details like title, author, year, and price. You want to look at only the title and price columns to decide which books to promote.
🎯 Goal: Learn how to select multiple columns from a pandas DataFrame to focus on specific information.
📋 What You'll Learn
Create a pandas DataFrame with book data
Create a list of column names to select
Select multiple columns from the DataFrame using the list
Print the selected columns
💡 Why This Matters
🌍 Real World
Selecting specific columns helps you focus on important data, like prices and titles, when working with large datasets.
💼 Career
Data analysts and scientists often select multiple columns to prepare data for reports, visualizations, or further analysis.
Progress0 / 4 steps
1
Create the book DataFrame
Import pandas as pd and create a DataFrame called books with these exact columns and rows: 'Title': 'The Alchemist', '1984', 'Python 101' 'Author': 'Paulo Coelho', 'George Orwell', 'Michael Driscoll' 'Year': 1988, 1949, 2019 'Price': 10.99, 8.99, 29.99
Pandas
Hint
Use pd.DataFrame with a dictionary where keys are column names and values are lists of column values.
2
Create a list of columns to select
Create a list called cols_to_select containing the exact strings 'Title' and 'Price'.
Pandas
Hint
Use square brackets to create a list with the two column names as strings.
3
Select the columns from the DataFrame
Create a new DataFrame called selected_books by selecting the columns in cols_to_select from the books DataFrame.
Pandas
Hint
Use books[cols_to_select] to select multiple columns by passing the list inside square brackets.
4
Print the selected columns
Print the selected_books DataFrame to see only the Title and Price columns.
Pandas
Hint
Use print(selected_books) to display the DataFrame with only the selected columns.
Practice
(1/5)
1. What is the correct way to select multiple columns 'A' and 'B' from a pandas DataFrame df?
easy
A. df.loc['A', 'B']
B. df['A', 'B']
C. df[['A', 'B']]
D. df['A' & 'B']
Solution
Step 1: Understand pandas column selection syntax
To select multiple columns, pandas requires a list of column names inside double brackets.
Step 2: Apply correct syntax for multiple columns
Using df[['A', 'B']] correctly selects columns 'A' and 'B'. Other options are invalid syntax or select rows instead.
Final Answer:
df[['A', 'B']] -> Option C
Quick Check:
Multiple columns = list inside double brackets [OK]
Hint: Use double brackets with a list for multiple columns [OK]
Common Mistakes:
Using single brackets with comma-separated names
Using bitwise operators like & between column names
Using .loc incorrectly for column selection
2. Which of the following is the correct syntax to select columns 'X' and 'Y' from DataFrame df?
easy
A. df.loc[:, 'X', 'Y']
B. df.loc['X', 'Y']
C. df['X', 'Y']
D. df[['X', 'Y']]
Solution
Step 1: Recall syntax for selecting multiple columns
Using double brackets with a list of column names is the standard way: df[['X', 'Y']].
Step 2: Check other options for correctness
df.loc[:, 'X', 'Y'] causes TypeError (invalid arguments to loc); df['X', 'Y'] raises KeyError (tuple not a column); df.loc['X', 'Y'] is incorrect syntax.
Final Answer:
df[['X', 'Y']] -> Option D
Quick Check:
Double brackets with list = correct syntax [OK]
Hint: Remember: double brackets with list select multiple columns [OK]
Common Mistakes:
Using single brackets with multiple column names
Confusing .loc row and column selection syntax
Using tuple instead of list inside brackets
3. Given the DataFrame df below:
A B C
0 1 4 7
1 2 5 8
2 3 6 9
What is the output of df[['B', 'C']]?
medium
A.
B C
0 4 7
1 5 8
2 6 9
B.
A B
0 1 4
1 2 5
2 3 6
C.
A C
0 1 7
1 2 8
2 3 9
D. KeyError
Solution
Step 1: Identify columns requested
The code selects columns 'B' and 'C' from the DataFrame.
Step 2: Extract columns 'B' and 'C' values
Columns 'B' and 'C' have values [[4,7],[5,8],[6,9]] for rows 0,1,2 respectively.
Final Answer:
B C
0 4 7
1 5 8
2 6 9 -> Option A
Quick Check:
Selected columns 'B' and 'C' output matches
B C
0 4 7
1 5 8
2 6 9
[OK]
Hint: Selected columns show only those columns with all rows [OK]
Common Mistakes:
Confusing columns selected and expecting all columns
The code uses single brackets with a comma, creating a tuple key ('X', 'Y').
Step 2: Understand pandas error type
This raises KeyError because pandas looks for a column named ('X', 'Y'), which doesn't exist.
Final Answer:
KeyError -> Option B
Quick Check:
Tuple key in single brackets causes KeyError [OK]
Hint: Use list inside double brackets, not comma in single brackets [OK]
Common Mistakes:
Using comma inside single brackets for multiple columns
Expecting no error with wrong syntax
Confusing TypeError with KeyError
5. You have a DataFrame df with columns ['Name', 'Age', 'City', 'Salary']. You want to create a new DataFrame df_selected with only 'Name' and 'Salary'. Which code correctly does this and also resets the index?
hard
A. df_selected = df[['Name', 'Salary']].reset_index(drop=True)
B. df_selected = df.loc[:, ['Name', 'Salary']].reset_index()
C. df_selected = df[['Name', 'Salary']].reset_index()
D. df_selected = df[['Name', 'Salary']].reset_index(drop=False)
Solution
Step 1: Select columns 'Name' and 'Salary'
Use double brackets with list: df[['Name', 'Salary']] to select these columns.
Step 2: Reset index without adding old index as column
Use reset_index(drop=True) to reset index and drop old index column.
Step 3: Check other options
df.loc[:, ['Name', 'Salary']].reset_index() resets index but keeps old index as column. Using reset_index() without drop=True (default behavior) keeps the old index as a new column.
Final Answer:
df_selected = df[['Name', 'Salary']].reset_index(drop=True) -> Option A
Quick Check:
Select columns + reset index drop old index = df_selected = df[['Name', 'Salary']].reset_index(drop=True) [OK]
Hint: Select columns with double brackets, reset index with drop=True [OK]
Common Mistakes:
Forgetting to use double brackets for multiple columns
Not using drop=True in reset_index to avoid old index column
Using .loc without understanding index reset effect
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.