Bird
Raised Fist0
Pandasdata~15 mins

Selecting columns by name in Pandas - Mini Project: Build & Apply

Choose your learning style10 modes available
Selecting columns by name
📖 Scenario: You work in a small shop and keep track of sales data in a table. You want to look at only some parts of the data to understand sales better.
🎯 Goal: Learn how to select specific columns by their names from a table of data using pandas.
📋 What You'll Learn
Create a pandas DataFrame with given sales data
Create a list of column names to select
Select columns from the DataFrame using the list of column names
Print the selected columns
💡 Why This Matters
🌍 Real World
Selecting specific columns helps you focus on important parts of your data, like sales numbers or product names, without extra details.
💼 Career
Data scientists often select columns by name to prepare data for analysis or visualization, making their work clearer and faster.
Progress0 / 4 steps
1
Create the sales data table
Create a pandas DataFrame called sales_data with these exact columns and rows:
Product: ['Apple', 'Banana', 'Carrot', 'Dates']
Price: [1.2, 0.5, 0.8, 3.0]
Quantity: [10, 20, 15, 7]
Date: ['2024-06-01', '2024-06-01', '2024-06-02', '2024-06-02']
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 columns_to_select with these exact column names: 'Product' and 'Quantity'
Pandas
Hint

Use square brackets to create a list with the exact column names as strings.

3
Select columns from the DataFrame
Create a new DataFrame called selected_data by selecting the columns in columns_to_select from sales_data
Pandas
Hint

Use square brackets with the list of column names to select columns from the DataFrame.

4
Print the selected columns
Print the selected_data DataFrame to see only the selected columns
Pandas
Hint

Use print(selected_data) to show the selected columns.

Practice

(1/5)
1.

Which syntax correctly selects a single column named 'Age' from a pandas DataFrame df?

easy
A. df.Age[]
B. df['Age']
C. df[['Age']]
D. df('Age')

Solution

  1. Step 1: Understand single column selection syntax

    Using single brackets with the column name as a string selects one column and returns a Series.
  2. Step 2: Compare options

    df['Age'] is the correct syntax. Double brackets return a DataFrame, and other options are invalid syntax.
  3. Final Answer:

    df['Age'] -> Option B
  4. Quick Check:

    Single brackets select one column [OK]
Hint: Use single brackets for one column, double for many [OK]
Common Mistakes:
  • Using double brackets for single column returns DataFrame, not Series
  • Trying to use parentheses instead of brackets
  • Using dot notation with brackets incorrectly
2.

Which of the following is the correct syntax to select multiple columns 'Name' and 'Salary' from a DataFrame df?

easy
A. df[['Name', 'Salary']]
B. df['Name', 'Salary']
C. df['Name' & 'Salary']
D. df.Name, df.Salary

Solution

  1. Step 1: Recall syntax for selecting multiple columns

    Multiple columns must be passed as a list inside double brackets.
  2. Step 2: Evaluate options

    Only df[['Name', 'Salary']] correctly uses a list inside double brackets. Others are invalid or return separate Series.
  3. Final Answer:

    df[['Name', 'Salary']] -> Option A
  4. Quick Check:

    Double brackets + list select multiple columns [OK]
Hint: Use double brackets with list for multiple columns [OK]
Common Mistakes:
  • Using single brackets with multiple column names separated by comma
  • Using bitwise AND (&) instead of list
  • Trying to select columns separately without combining
3.

Given the DataFrame df below, what is the output of df[['City', 'Age']]?

import pandas as pd
data = {'Name': ['Alice', 'Bob'], 'Age': [25, 30], 'City': ['NY', 'LA']}
df = pd.DataFrame(data)
medium
A.
   City  Name
0    NY  Alice
1    LA    Bob
B.
   Name  Age
0  Alice   25
1    Bob   30
C.
   City  Age
0    NY   25
1    LA   30
D.
   Age  City
0   25    NY
1   30    LA

Solution

  1. Step 1: Understand the selection

    The code selects columns 'City' and 'Age' in that order from the DataFrame.
  2. Step 2: Check the output order and values

    The output DataFrame has columns 'City' then 'Age' with values from original data.
  3. Final Answer:

    City Age 0 NY 25 1 LA 30 -> Option C
  4. Quick Check:

    Selected columns match output order [OK]
Hint: Output columns appear in the order listed inside double brackets [OK]
Common Mistakes:
  • Mixing column order in output
  • Selecting wrong columns
  • Confusing Series output with DataFrame output
4.

What is wrong with this code to select columns 'A' and 'B' from DataFrame df?

df['A', 'B']
medium
A. It raises a KeyError because tuple ('A', 'B') is not a column
B. It returns a DataFrame with columns 'A' and 'B'
C. It returns a Series with combined values of 'A' and 'B'
D. It raises a SyntaxError due to wrong brackets

Solution

  1. Step 1: Analyze the indexing syntax

    Using single brackets with multiple comma-separated strings creates a tuple key, not a list.
  2. Step 2: Understand pandas column selection behavior

    Since ('A', 'B') is a tuple, pandas looks for a column with that exact tuple name, which does not exist, causing KeyError.
  3. Final Answer:

    It raises a KeyError because tuple ('A', 'B') is not a column -> Option A
  4. Quick Check:

    Single brackets with comma create tuple key, causing KeyError [OK]
Hint: Use double brackets with list for multiple columns to avoid KeyError [OK]
Common Mistakes:
  • Using single brackets with multiple column names separated by comma
  • Expecting a DataFrame but getting error
  • Confusing tuple with list in indexing
5.

You have a DataFrame df with columns 'Name', 'Age', 'Salary', and 'Department'. You want to create a new DataFrame with only 'Name' and 'Salary', but also want to rename 'Salary' to 'Income'. Which code correctly does this?

hard
A.
new_df = df[['Name', 'Salary']].rename(columns=['Name', 'Income'])
B.
new_df = df['Name', 'Salary'].rename(columns={'Salary': 'Income'})
C.
new_df = df[['Name', 'Salary']].rename({'Salary': 'Income'})
D.
new_df = df[['Name', 'Salary']].rename(columns={'Salary': 'Income'})

Solution

  1. Step 1: Select columns 'Name' and 'Salary'

    Use double brackets with a list: df[['Name', 'Salary']] to get a DataFrame with those columns.
  2. Step 2: Rename 'Salary' to 'Income'

    Use rename(columns={'Salary': 'Income'}) to rename the column correctly.
  3. Final Answer:

    new_df = df[['Name', 'Salary']].rename(columns={'Salary': 'Income'}) -> Option D
  4. Quick Check:

    Select columns then rename with columns dict [OK]
Hint: Select columns first, then rename with columns dict [OK]
Common Mistakes:
  • Using single brackets for multiple columns
  • Passing rename argument without 'columns=' keyword
  • Passing list instead of dict to rename
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