Bird
Raised Fist0
Pandasdata~10 mins

Selecting multiple columns in Pandas - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - Selecting multiple columns
Start with DataFrame
↓
Specify list of columns
↓
Use DataFrame[columns_list
↓
Extract selected columns
↓
New DataFrame with selected columns
We start with a DataFrame, specify which columns we want, then extract those columns to get a new DataFrame.
Execution Sample
Pandas
import pandas as pd

df = pd.DataFrame({
    'A': [1,2,3], 'B': [4,5,6], 'C': [7,8,9]
})

selected = df[['A', 'C']]
This code creates a DataFrame and selects columns 'A' and 'C' to form a new DataFrame.
Execution Table
StepActionInputOutput
1Create DataFrame{'A':[1,2,3],'B':[4,5,6],'C':[7,8,9]}DataFrame with columns A, B, C
2Specify columns to select['A', 'C']List of columns to extract
3Select columns from DataFramedf[['A', 'C']]New DataFrame with columns A and C
4Display selected DataFrameselected A C 0 1 7 1 2 8 2 3 9
💡 Selection complete with only specified columns in new DataFrame
Variable Tracker
VariableStartAfter Step 1After Step 3Final
dfundefinedDataFrame with A,B,CDataFrame with A,B,CDataFrame with A,B,C
selectedundefinedundefinedDataFrame with A,CDataFrame with A,C
Key Moments - 2 Insights
Why do we use double brackets df[['A', 'C']] instead of single brackets?
Using double brackets tells pandas to select multiple columns and return a DataFrame. Single brackets like df['A'] return a Series (one column). See execution_table step 3.
What happens if we specify a column name that does not exist?
Pandas will raise a KeyError because it cannot find the column. This is not shown here but important to check column names before selecting.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what is the output after step 3?
AA list of column names
BA DataFrame with columns A and C
CA Series with column A
DAn error message
💡 Hint
Check the 'Output' column in execution_table row for step 3
At which step do we specify which columns to select?
AStep 2
BStep 1
CStep 3
DStep 4
💡 Hint
Look at the 'Action' column in execution_table to find when columns list is given
If we change the list to ['B'], what will the selected DataFrame contain?
AColumns A and C
BAll columns
COnly column B
DAn empty DataFrame
💡 Hint
Refer to how selection works in execution_table step 3 and variable_tracker for 'selected'
Concept Snapshot
Selecting multiple columns in pandas:
Use df[[list_of_columns]] with double brackets.
Returns a new DataFrame with only those columns.
Single brackets select one column as Series.
Check column names to avoid errors.
Full Transcript
We start with a DataFrame containing columns A, B, and C. We want to select multiple columns, for example A and C. We specify these columns as a list ['A', 'C']. Using double brackets df[['A', 'C']] extracts these columns and returns a new DataFrame with only A and C. This is different from single brackets which return a Series. The variable 'selected' holds this new DataFrame. If a column name does not exist, pandas will raise an error. This process is shown step-by-step in the execution table and variable tracker.

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

  1. Step 1: Understand pandas column selection syntax

    To select multiple columns, pandas requires a list of column names inside double brackets.
  2. 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.
  3. Final Answer:

    df[['A', 'B']] -> Option C
  4. 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

  1. Step 1: Recall syntax for selecting multiple columns

    Using double brackets with a list of column names is the standard way: df[['X', 'Y']].
  2. 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.
  3. Final Answer:

    df[['X', 'Y']] -> Option D
  4. 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

  1. Step 1: Identify columns requested

    The code selects columns 'B' and 'C' from the DataFrame.
  2. 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.
  3. Final Answer:

    B C 0 4 7 1 5 8 2 6 9 -> Option A
  4. 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
  • Getting KeyError by misspelling column names
  • Selecting rows instead of columns
4. What error will occur with this code?
df = pd.DataFrame({'X':[1,2], 'Y':[3,4]})
selected = df['X', 'Y']
medium
A. TypeError
B. KeyError
C. SyntaxError
D. No error, returns both columns

Solution

  1. Step 1: Analyze the indexing syntax

    The code uses single brackets with a comma, creating a tuple key ('X', 'Y').
  2. Step 2: Understand pandas error type

    This raises KeyError because pandas looks for a column named ('X', 'Y'), which doesn't exist.
  3. Final Answer:

    KeyError -> Option B
  4. 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

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

    Use double brackets with list: df[['Name', 'Salary']] to select these columns.
  2. Step 2: Reset index without adding old index as column

    Use reset_index(drop=True) to reset index and drop old index column.
  3. 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.
  4. Final Answer:

    df_selected = df[['Name', 'Salary']].reset_index(drop=True) -> Option A
  5. 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 unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard