We select columns by name to focus on specific data we want to analyze or use. It helps us work only with the information we need.
Selecting columns by name in Pandas
df['column_name'] df[['col1', 'col2']] # df is your DataFrame
Use single brackets [] for one column, double brackets [[]] for multiple columns.
The result for one column is a Series; for multiple columns, it's a DataFrame.
df['age']df[['name', 'email']]
selected = df[['region', 'sales_amount']] print(selected.head())
This code creates a small table with people data. It then selects one column 'age' and prints it. Next, it selects two columns 'name' and 'email' and prints that smaller table.
import pandas as pd # Create a sample DataFrame data = { 'name': ['Alice', 'Bob', 'Charlie'], 'age': [25, 30, 35], 'email': ['alice@example.com', 'bob@example.com', 'charlie@example.com'], 'salary': [70000, 80000, 90000] } df = pd.DataFrame(data) # Select the 'age' column age_column = df['age'] print('Age column:') print(age_column) # Select multiple columns 'name' and 'email' contact_info = df[['name', 'email']] print('\nContact info DataFrame:') print(contact_info)
If you try to select a column name that does not exist, pandas will give an error.
Using double brackets always returns a DataFrame, which is useful if you want to keep the table format.
Select columns by their names to work with specific data.
Use single brackets [] for one column (returns Series).
Use double brackets [[]] for multiple columns (returns DataFrame).
Practice
Which syntax correctly selects a single column named 'Age' from a pandas DataFrame df?
Solution
Step 1: Understand single column selection syntax
Using single brackets with the column name as a string selects one column and returns a Series.Step 2: Compare options
df['Age']is the correct syntax. Double brackets return a DataFrame, and other options are invalid syntax.Final Answer:
df['Age'] -> Option BQuick Check:
Single brackets select one column [OK]
- Using double brackets for single column returns DataFrame, not Series
- Trying to use parentheses instead of brackets
- Using dot notation with brackets incorrectly
Which of the following is the correct syntax to select multiple columns 'Name' and 'Salary' from a DataFrame df?
Solution
Step 1: Recall syntax for selecting multiple columns
Multiple columns must be passed as a list inside double brackets.Step 2: Evaluate options
Onlydf[['Name', 'Salary']]correctly uses a list inside double brackets. Others are invalid or return separate Series.Final Answer:
df[['Name', 'Salary']] -> Option AQuick Check:
Double brackets + list select multiple columns [OK]
- Using single brackets with multiple column names separated by comma
- Using bitwise AND (&) instead of list
- Trying to select columns separately without combining
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)Solution
Step 1: Understand the selection
The code selects columns 'City' and 'Age' in that order from the DataFrame.Step 2: Check the output order and values
The output DataFrame has columns 'City' then 'Age' with values from original data.Final Answer:
City Age 0 NY 25 1 LA 30 -> Option CQuick Check:
Selected columns match output order [OK]
- Mixing column order in output
- Selecting wrong columns
- Confusing Series output with DataFrame output
What is wrong with this code to select columns 'A' and 'B' from DataFrame df?
df['A', 'B']
Solution
Step 1: Analyze the indexing syntax
Using single brackets with multiple comma-separated strings creates a tuple key, not a list.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.Final Answer:
It raises a KeyError because tuple ('A', 'B') is not a column -> Option AQuick Check:
Single brackets with comma create tuple key, causing KeyError [OK]
- Using single brackets with multiple column names separated by comma
- Expecting a DataFrame but getting error
- Confusing tuple with list in indexing
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?
Solution
Step 1: Select columns 'Name' and 'Salary'
Use double brackets with a list:df[['Name', 'Salary']]to get a DataFrame with those columns.Step 2: Rename 'Salary' to 'Income'
Userename(columns={'Salary': 'Income'})to rename the column correctly.Final Answer:
new_df = df[['Name', 'Salary']].rename(columns={'Salary': 'Income'}) -> Option DQuick Check:
Select columns then rename with columns dict [OK]
- Using single brackets for multiple columns
- Passing rename argument without 'columns=' keyword
- Passing list instead of dict to rename
Ready to prove it?
Pass the test and this pattern moves unknown
