Bird
Raised Fist0
Data Analysis Pythondata~10 mins

Adding and removing columns in Data Analysis Python - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - Adding and removing columns
Start with DataFrame
↓
Add Column
↓
Check DataFrame
↓
Remove Column
↓
Check DataFrame
↓
End
Start with a DataFrame, add a new column, check the result, then remove a column and check again.
Execution Sample
Data Analysis Python
import pandas as pd

df = pd.DataFrame({'A': [1, 2], 'B': [3, 4]})
df['C'] = df['A'] + df['B']
df = df.drop('B', axis=1)
print(df)
Create a DataFrame, add a new column 'C' as sum of 'A' and 'B', then remove column 'B' and print the result.
Execution Table
StepActionDataFrame ColumnsDataFrame ContentOutput
1Create DataFrame['A', 'B'][[1, 3], [2, 4]]Initial DataFrame with columns A and B
2Add column 'C' as A+B['A', 'B', 'C'][[1, 3, 4], [2, 4, 6]]Column C added with sums
3Remove column 'B'['A', 'C'][[1, 4], [2, 6]]Column B removed
4Print DataFrame['A', 'C'][[1, 4], [2, 6]]Printed final DataFrame
💡 All steps completed; DataFrame now has columns A and C only.
Variable Tracker
VariableStartAfter Step 1After Step 2After Step 3Final
df.columns.tolist()N/A['A', 'B']['A', 'B', 'C']['A', 'C']['A', 'C']
df.values.tolist()N/A[[1, 3], [2, 4]][[1, 3, 4], [2, 4, 6]][[1, 4], [2, 6]][[1, 4], [2, 6]]
Key Moments - 2 Insights
Why does the new column 'C' appear after step 2?
Because we assigned df['C'] = df['A'] + df['B'], which creates a new column 'C' with the sum of columns 'A' and 'B' as shown in execution_table row 2.
Why does the DataFrame no longer have column 'B' after step 3?
Because we used df.drop('B', axis=1) which removes column 'B' from the DataFrame, as shown in execution_table row 3.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what columns does the DataFrame have after step 2?
A['A', 'B', 'C']
B['A', 'C']
C['A', 'B']
D['B', 'C']
💡 Hint
Check the 'DataFrame Columns' column in execution_table row 2.
At which step is column 'B' removed from the DataFrame?
AStep 1
BStep 2
CStep 3
DStep 4
💡 Hint
Look at the 'Action' and 'DataFrame Columns' in execution_table rows.
If we did not specify axis=1 in df.drop('B', axis=1), what would happen?
AColumn 'B' would still be removed
BAn error would occur
CRow 'B' would be removed instead
DNothing would change
💡 Hint
Refer to pandas drop method requirements for axis parameter.
Concept Snapshot
Adding and removing columns in pandas:
- Add column: df['new_col'] = values
- Remove column: df = df.drop('col_name', axis=1)
- axis=1 means column, axis=0 means row
- Changes update DataFrame structure
- Use print(df) to see changes
Full Transcript
We start with a DataFrame with columns A and B. Then we add a new column C by summing columns A and B. This adds column C to the DataFrame. Next, we remove column B using the drop method with axis=1 to specify column removal. Finally, we print the DataFrame which now has columns A and C only. This shows how to add and remove columns step-by-step.

Practice

(1/5)
1. What is the correct way to add a new column named 'age' with all values set to 30 in a pandas DataFrame df?
easy
A. df.append('age', 30)
B. df.add_column('age', 30)
C. df['age'] = 30
D. df.insert_column('age', 30)

Solution

  1. Step 1: Understand how to add columns in pandas

    In pandas, you add a new column by assigning a value or list to df['column_name'].
  2. Step 2: Apply the correct syntax to add a column named 'age'

    Using df['age'] = 30 adds a new column 'age' with all values set to 30.
  3. Final Answer:

    df['age'] = 30 -> Option C
  4. Quick Check:

    Adding column = df['new_col'] = value [OK]
Hint: Use df['col_name'] = value to add columns fast [OK]
Common Mistakes:
  • 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
2. Which of the following is the correct syntax to remove a column named 'salary' from a pandas DataFrame df?
easy
A. df.drop('salary', axis=1)
B. df.remove('salary')
C. df.delete_column('salary')
D. df.drop_column('salary')

Solution

  1. Step 1: Recall pandas method to remove columns

    The pandas method to remove columns is drop() with axis=1 to specify columns.
  2. Step 2: Use correct syntax to drop 'salary' column

    Using df.drop('salary', axis=1) removes the 'salary' column from the DataFrame.
  3. Final Answer:

    df.drop('salary', axis=1) -> Option A
  4. Quick Check:

    Remove column = df.drop('col', axis=1) [OK]
Hint: Use df.drop('col', axis=1) to remove columns [OK]
Common Mistakes:
  • 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
3. Given the DataFrame 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)
medium
A.
   name  score  passed
0  Amy     90    False
1  Bob     80    True
2  Cara    85    False
B.
   name  score  passed
0  Amy     90    True
1  Bob     80    False
2  Cara    85    True
C.
   name  score
0  Amy     90
1  Bob     80
2  Cara    85
D.
   name  score  passed
0  Amy     90    90
1  Bob     80    80
2  Cara    85    85

Solution

  1. Step 1: Understand the condition applied to 'score'

    The expression df['score'] >= 85 creates a boolean series: True where score is 85 or more, False otherwise.
  2. Step 2: Assign boolean series to new column 'passed'

    Adding df['passed'] = ... adds this boolean series as a new column.
  3. Final Answer:

    DataFrame with 'passed' column showing True for scores >= 85 -> Option B
  4. Quick Check:

    Boolean condition adds True/False column [OK]
Hint: Compare column with condition to add True/False column [OK]
Common Mistakes:
  • Expecting numeric values instead of booleans in new column
  • Not using >= operator correctly
  • Printing df before adding the new column
4. What is wrong with this code snippet to remove the column 'height' from DataFrame df?
df.drop('height')
medium
A. Missing axis=1 to specify column removal
B. The column name should be in a list like ['height']
C. The method drop does not exist in pandas
D. You must assign the result back to df like df = df.drop('height')

Solution

  1. Step 1: Check the drop method parameters

    By default, drop() removes rows. To remove columns, you must specify axis=1.
  2. Step 2: Identify the missing axis parameter

    The code misses axis=1, so it tries to remove a row named 'height', causing an error if no such row exists.
  3. Final Answer:

    Missing axis=1 to specify column removal -> Option A
  4. Quick Check:

    drop columns = drop('col', axis=1) [OK]
Hint: Always add axis=1 to drop columns, not rows [OK]
Common Mistakes:
  • Forgetting axis=1 causes wrong row removal or error
  • Thinking drop modifies df inplace without assignment
  • Using wrong data type for column name
5. You have a DataFrame 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?
hard
A.
df['D'] = df['A'] + df['B']
df.remove('C')
B.
df['D'] = df['A'] + df['B']
df.drop('C', axis=1, inplace=True)
C.
df['D'] = df['A'] + df['B']
df = df.drop('C', axis=1)
D.
df = df.assign(D=df['A'] + df['B']).drop('C', axis=1)

Solution

  1. Step 1: Create new column 'D' as sum of 'A' and 'B'

    Using assign() allows adding a new column in a chainable way without modifying df inplace.
  2. Step 2: Remove column 'C' using drop() chained after assign()

    Chaining drop('C', axis=1) removes column 'C' and returns the modified DataFrame.
  3. Step 3: Assign the result back to df

    Assigning the chained operations back to df updates the DataFrame correctly in one step.
  4. Final Answer:

    df = df.assign(D=df['A'] + df['B']).drop('C', axis=1) -> Option D
  5. Quick Check:

    Use assign + drop chained and assign back [OK]
Hint: Chain assign and drop, then assign back to df [OK]
Common Mistakes:
  • Using drop without axis=1 or inplace causing no change
  • Using non-existent remove method
  • Not assigning chained result back to df
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