Bird
Raised Fist0
Pandasdata~10 mins

Dropping columns and rows in Pandas - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - Dropping columns and rows
Start with DataFrame
↓
Choose drop type
↓
Drop rows
↓
Specify labels
↓
Apply drop()
↓
New DataFrame without dropped parts
↓
End
Start with a DataFrame, decide to drop rows or columns by specifying labels, then apply drop() to get a new DataFrame without those rows or columns.
Execution Sample
Pandas
import pandas as pd

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

new_df = df.drop('B', axis=1)
This code creates a DataFrame and drops column 'B' to create a new DataFrame without it.
Execution Table
StepActionInputAxisResulting DataFrame
1Create DataFrame{'A':[1,2,3],'B':[4,5,6],'C':[7,8,9]}N/A A B C 0 1 4 7 1 2 5 8 2 3 6 9
2Call drop() to remove column 'B''B'1 (columns) A C 0 1 7 1 2 8 2 3 9
3Call drop() to remove row 110 (rows) A B C 0 1 4 7 2 3 6 9
4Call drop() with multiple columns ['A','C']['A','C']1 (columns) B 0 4 1 5 2 6
5Call drop() with multiple rows [0,2][0,2]0 (rows) A B C 1 2 5 8
6Call drop() with inplace=True to remove column 'C''C'1 (columns)DataFrame df now without column 'C'
7Call drop() with inplace=True to remove row 000 (rows)DataFrame df now without row 0
8ExitNo more dropsN/AFinal DataFrame after drops
💡 All specified rows or columns dropped, no more actions.
Variable Tracker
VariableStartAfter Step 2After Step 3After Step 4After Step 5After Step 6After Step 7Final
dfOriginal DataFrame with columns A,B,C and rows 0,1,2UnchangedUnchangedUnchangedUnchangedColumn 'C' dropped inplaceRow 0 dropped inplaceDataFrame with columns A,B and rows 1,2
new_dfN/ADataFrame without column 'B'N/AN/AN/AN/AN/AN/A
Key Moments - 3 Insights
Why do we need to specify axis=1 to drop columns?
Because axis=0 means rows and axis=1 means columns. The drop() method uses axis to know if labels are rows or columns. See execution_table step 2 where axis=1 drops column 'B'.
What happens if we don't use inplace=True?
drop() returns a new DataFrame without changing the original. The original stays the same. See variable_tracker where df is unchanged after step 2 but changes only after step 6 with inplace=True.
How to drop multiple rows or columns at once?
Pass a list of labels to drop(), like ['A','C'] for columns or [0,2] for rows. See execution_table steps 4 and 5 for examples.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table step 2. What does axis=1 mean in the drop() method?
ADrop both rows and columns
BDrop columns
CDrop rows
DNo effect
💡 Hint
Check the 'Axis' column in step 2 of execution_table.
At which step does the original DataFrame 'df' change permanently?
AStep 6
BStep 2
CStep 4
DStep 3
💡 Hint
Look at variable_tracker for 'df' changes after step 6.
If you want to drop row 0 and 2 at once, which step shows this?
AStep 3
BStep 4
CStep 5
DStep 7
💡 Hint
See execution_table rows for multiple rows dropped.
Concept Snapshot
pandas drop() removes rows or columns by label.
Use axis=0 for rows, axis=1 for columns.
Pass label or list of labels to drop.
By default, drop() returns new DataFrame.
Use inplace=True to modify original.
Example: df.drop('B', axis=1) drops column B.
Full Transcript
We start with a DataFrame having columns A, B, and C and rows indexed 0, 1, 2. To remove columns or rows, we use the drop() method. We specify the labels to remove and the axis: axis=1 for columns, axis=0 for rows. For example, dropping column 'B' with df.drop('B', axis=1) returns a new DataFrame without 'B'. If we want to remove rows, we specify row labels and axis=0. We can drop multiple labels by passing a list. By default, drop() returns a new DataFrame and does not change the original. To change the original DataFrame, we use inplace=True. This method helps clean data by removing unwanted rows or columns easily.

Practice

(1/5)
1. What does the drop() function do in pandas?
easy
A. Removes specified rows or columns from a DataFrame
B. Adds new rows or columns to a DataFrame
C. Sorts the DataFrame by index or column values
D. Calculates summary statistics of the DataFrame

Solution

  1. Step 1: Understand the purpose of drop()

    The drop() function is used to remove data, either rows or columns, from a DataFrame.
  2. Step 2: Identify what drop() removes

    It specifically removes rows or columns based on labels, not adding or sorting data.
  3. Final Answer:

    Removes specified rows or columns from a DataFrame -> Option A
  4. Quick Check:

    drop() removes rows/columns [OK]
Hint: Remember: drop means remove rows or columns [OK]
Common Mistakes:
  • Thinking drop adds data instead of removing
  • Confusing drop with sort or describe functions
  • Assuming drop changes data without specifying inplace
2. Which of the following is the correct syntax to drop the column named 'Age' from a DataFrame df?
easy
A. df.drop('Age', axis=0)
B. df.drop('Age', axis=1)
C. df.drop(column='Age')
D. df.drop('Age')

Solution

  1. Step 1: Identify axis for columns

    In pandas, axis=1 means columns, so to drop a column, use axis=1.
  2. Step 2: Check syntax correctness

    The syntax df.drop('Age', axis=1) correctly drops the column named 'Age'. df.drop(column='Age') is close but incorrect syntax; it should be df.drop(columns=['Age']) with a list.
  3. Final Answer:

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

    Drop column uses axis=1 [OK]
Hint: Use axis=1 to drop columns, axis=0 for rows [OK]
Common Mistakes:
  • Using axis=0 to drop columns
  • Forgetting to specify axis parameter
  • Using drop with wrong parameter names
3. Given the DataFrame df below:
   Name  Age  City
0  John   25  NY
1  Anna   30  LA
2  Mike   22  SF

What is the output of df.drop(1, axis=0)?
medium
A.
   Name  Age  City
0  John   25  NY
1  Anna   30  LA
B.
   Name  Age  City
1  Anna   30  LA
C.
   Name  Age  City
0  John   25  NY
2  Mike   22  SF
D.
   Name  Age  City
0  John   25  NY
1  Anna   30  LA
2  Mike   22  SF

Solution

  1. Step 1: Understand dropping rows by index

    Using drop(1, axis=0) removes the row with index 1, which is the row for Anna.
  2. Step 2: Identify remaining rows

    Rows with index 0 (John) and 2 (Mike) remain, so the output excludes Anna's row.
  3. Final Answer:

    Name Age City 0 John 25 NY 2 Mike 22 SF -> Option C
  4. Quick Check:

    Drop row index 1 removes Anna [OK]
Hint: Drop row by index with axis=0 [OK]
Common Mistakes:
  • Confusing axis=0 and axis=1
  • Expecting row to be removed by label instead of index
  • Not realizing drop returns a new DataFrame by default
4. What is wrong with this code snippet to drop the column 'Salary' from DataFrame df?
df.drop('Salary')
medium
A. drop() cannot remove columns
B. Should use inplace=True to drop the column
C. Column name should be in a list like ['Salary']
D. Missing axis=1 to specify dropping a column

Solution

  1. Step 1: Check default axis in drop()

    By default, drop() assumes axis=0, which means it tries to drop a row, not a column.
  2. Step 2: Specify axis=1 to drop a column

    To drop a column, you must specify axis=1. Without it, pandas looks for a row named 'Salary' and fails if none exists.
  3. Final Answer:

    Missing axis=1 to specify dropping a column -> Option D
  4. Quick Check:

    Drop columns requires axis=1 [OK]
Hint: Always specify axis=1 to drop columns [OK]
Common Mistakes:
  • Forgetting axis=1 when dropping columns
  • Assuming drop changes DataFrame without inplace=True
  • Using drop with a single string but wrong axis
5. You have a DataFrame df with columns ['Name', 'Age', 'City', 'Salary']. You want to remove the rows with index 0 and 2, and also drop the column 'Salary' in one line without changing the original DataFrame. Which code does this correctly?
hard
A. df.drop([0, 2], axis=0).drop('Salary', axis=1)
B. df.drop([0, 2, 'Salary'], axis=0)
C. df.drop(['Salary'], axis=1).drop([0, 2], axis=0, inplace=True)
D. df.drop([0, 2], axis=1).drop('Salary', axis=0)

Solution

  1. Step 1: Drop rows with index 0 and 2

    Use df.drop([0, 2], axis=0) to remove rows 0 and 2 without changing original DataFrame.
  2. Step 2: Drop column 'Salary' from the result

    Chain .drop('Salary', axis=1) to remove the column from the intermediate DataFrame.
  3. Step 3: Verify no inplace=True used

    Since we want to keep original DataFrame unchanged, do not use inplace=True. The chained drops return a new DataFrame.
  4. Final Answer:

    df.drop([0, 2], axis=0).drop('Salary', axis=1) -> Option A
  5. Quick Check:

    Chain drops with correct axis, no inplace [OK]
Hint: Chain drop with axis=0 for rows, axis=1 for columns [OK]
Common Mistakes:
  • Mixing axis values for rows and columns
  • Using inplace=True which changes original DataFrame
  • Trying to drop rows and columns in one drop call incorrectly
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