We add or remove columns to change the data we want to analyze. This helps us focus on important information or clean up the data.
Adding and removing columns in Data Analysis Python
import pandas as pd # Adding a column df['new_column'] = values # Removing a column df = df.drop('column_name', axis=1)
Use axis=1 to specify you want to drop a column, not a row.
Adding a column can be done by assigning a list, a single value, or a calculation.
import pandas as pd df = pd.DataFrame({'A': [1, 2], 'B': [3, 4]}) # Add column C as sum of A and B df['C'] = df['A'] + df['B']
import pandas as pd df = pd.DataFrame({'A': [1, 2], 'B': [3, 4]}) # Remove column B df = df.drop('B', axis=1)
import pandas as pd df = pd.DataFrame({'A': [1, 2]}) # Add a column with the same value for all rows df['constant'] = 10
This program creates a table with names, ages, and salaries. It adds a new column showing age after 5 years. Then it removes the salary column. Finally, it prints the updated table.
import pandas as pd # Create a simple DataFrame df = pd.DataFrame({ 'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35], 'Salary': [50000, 60000, 70000] }) # Add a new column 'Age in 5 years' df['Age in 5 years'] = df['Age'] + 5 # Remove the 'Salary' column df = df.drop('Salary', axis=1) print(df)
Dropping columns does not change the original DataFrame unless you assign it back or use inplace=True.
Adding columns with calculations helps create new insights from existing data.
You add columns to include new information or calculations.
You remove columns to clean or simplify your data.
Use df['new_col'] = ... to add and df.drop(..., axis=1) to remove columns.
Practice
'age' with all values set to 30 in a pandas DataFrame df?Solution
Step 1: Understand how to add columns in pandas
In pandas, you add a new column by assigning a value or list todf['column_name'].Step 2: Apply the correct syntax to add a column named 'age'
Usingdf['age'] = 30adds a new column 'age' with all values set to 30.Final Answer:
df['age'] = 30 -> Option CQuick Check:
Adding column = df['new_col'] = value [OK]
- Using non-existent methods like add_column or insert_column
- Trying to use append which is for rows, not columns
- Forgetting to use square brackets for column name
'salary' from a pandas DataFrame df?Solution
Step 1: Recall pandas method to remove columns
The pandas method to remove columns isdrop()withaxis=1to specify columns.Step 2: Use correct syntax to drop 'salary' column
Usingdf.drop('salary', axis=1)removes the 'salary' column from the DataFrame.Final Answer:
df.drop('salary', axis=1) -> Option AQuick Check:
Remove column = df.drop('col', axis=1) [OK]
- Using methods like remove or delete_column which don't exist
- Forgetting axis=1 to specify column removal
- Using drop without parentheses or wrong parameters
df below:name score 0 Amy 90 1 Bob 80 2 Cara 85
What will be the output of this code?
df['passed'] = df['score'] >= 85 print(df)
Solution
Step 1: Understand the condition applied to 'score'
The expressiondf['score'] >= 85creates a boolean series: True where score is 85 or more, False otherwise.Step 2: Assign boolean series to new column 'passed'
Addingdf['passed'] = ...adds this boolean series as a new column.Final Answer:
DataFrame with 'passed' column showing True for scores >= 85 -> Option BQuick Check:
Boolean condition adds True/False column [OK]
- Expecting numeric values instead of booleans in new column
- Not using >= operator correctly
- Printing df before adding the new column
'height' from DataFrame df?
df.drop('height')Solution
Step 1: Check the drop method parameters
By default,drop()removes rows. To remove columns, you must specifyaxis=1.Step 2: Identify the missing axis parameter
The code missesaxis=1, so it tries to remove a row named 'height', causing an error if no such row exists.Final Answer:
Missing axis=1 to specify column removal -> Option AQuick Check:
drop columns = drop('col', axis=1) [OK]
- Forgetting axis=1 causes wrong row removal or error
- Thinking drop modifies df inplace without assignment
- Using wrong data type for column name
df with columns ['A', 'B', 'C']. You want to create a new column 'D' which is the sum of 'A' and 'B', then remove column 'C'. Which code correctly does this in one step?Solution
Step 1: Create new column 'D' as sum of 'A' and 'B'
Usingassign()allows adding a new column in a chainable way without modifying df inplace.Step 2: Remove column 'C' using
Chainingdrop()chained afterassign()drop('C', axis=1)removes column 'C' and returns the modified DataFrame.Step 3: Assign the result back to df
Assigning the chained operations back todfupdates the DataFrame correctly in one step.Final Answer:
df = df.assign(D=df['A'] + df['B']).drop('C', axis=1) -> Option DQuick Check:
Use assign + drop chained and assign back [OK]
- Using drop without axis=1 or inplace causing no change
- Using non-existent remove method
- Not assigning chained result back to df
Ready to prove it?
Pass the test and this pattern moves unknown
