Bird
Raised Fist0
Pandasdata~5 mins

Outlier detection with IQR in Pandas - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does IQR stand for in data analysis?
IQR stands for Interquartile Range. It measures the middle 50% spread of the data between the 25th percentile (Q1) and the 75th percentile (Q3).
Click to reveal answer
beginner
How do you calculate the IQR from a dataset?
IQR = Q3 - Q1, where Q1 is the 25th percentile and Q3 is the 75th percentile of the data.
Click to reveal answer
intermediate
Why is IQR useful for detecting outliers?
IQR helps find outliers by identifying data points that fall below Q1 - 1.5*IQR or above Q3 + 1.5*IQR, which are unusually far from the middle 50% of data.
Click to reveal answer
beginner
Show the pandas code to calculate Q1, Q3, and IQR for a DataFrame column named 'data'.
Q1 = df['data'].quantile(0.25) Q3 = df['data'].quantile(0.75) IQR = Q3 - Q1
Click to reveal answer
intermediate
How do you filter out outliers using IQR in pandas?
Use the condition: keep rows where values are >= Q1 - 1.5*IQR and <= Q3 + 1.5*IQR. Example: filtered_df = df[(df['data'] >= Q1 - 1.5*IQR) & (df['data'] <= Q3 + 1.5*IQR)]
Click to reveal answer
What does the IQR measure in a dataset?
AThe range between minimum and maximum values
BThe average value
CThe total number of data points
DThe middle 50% spread of the data
Which formula identifies outliers using IQR?
AValues < Q1 - 1.5*IQR or > Q3 + 1.5*IQR
BValues < Q1 + 1.5*IQR or > Q3 - 1.5*IQR
CValues < mean - 2*std or > mean + 2*std
DValues < minimum or > maximum
In pandas, how do you get the 25th percentile of a column 'data'?
Adf['data'].mean()
Bdf['data'].quantile(0.25)
Cdf['data'].median()
Ddf['data'].max()
What is the purpose of filtering data using IQR in pandas?
ATo remove missing values
BTo select only the largest values
CTo remove outliers
DTo sort the data
If Q1 = 10 and Q3 = 20, what is the IQR?
A10
B30
C15
D20
Explain how to detect outliers using the IQR method in pandas.
Think about the steps from calculating quartiles to filtering data.
You got /5 concepts.
    Why is the IQR method preferred over using min and max values for outlier detection?
    Consider how extreme values affect range versus IQR.
    You got /4 concepts.

      Practice

      (1/5)
      1. What does the Interquartile Range (IQR) represent in a dataset?
      easy
      A. The range between the 25th percentile (Q1) and the 75th percentile (Q3)
      B. The difference between the maximum and minimum values
      C. The average value of the dataset
      D. The total number of data points

      Solution

      1. Step 1: Understand quartiles

        Quartiles divide data into four equal parts. Q1 is the 25th percentile, Q3 is the 75th percentile.
      2. Step 2: Define IQR

        IQR is the difference between Q3 and Q1, showing the middle 50% spread of data.
      3. Final Answer:

        The range between the 25th percentile (Q1) and the 75th percentile (Q3) -> Option A
      4. Quick Check:

        IQR = Q3 - Q1 [OK]
      Hint: IQR = Q3 minus Q1, middle half range [OK]
      Common Mistakes:
      • Confusing IQR with total range
      • Thinking IQR is the average
      • Mixing up quartiles with percentiles
      2. Which of the following pandas code snippets correctly calculates the IQR of a DataFrame column df['score']?
      easy
      A. iqr = df['score'].mean() - df['score'].median()
      B. iqr = df['score'].max() - df['score'].min()
      C. iqr = df['score'].quantile(0.75) - df['score'].quantile(0.25)
      D. iqr = df['score'].std()

      Solution

      1. Step 1: Recall IQR formula

        IQR is Q3 minus Q1, where Q3 is 75th percentile and Q1 is 25th percentile.
      2. Step 2: Check pandas quantile usage

        Using quantile(0.75) and quantile(0.25) correctly gets Q3 and Q1.
      3. Final Answer:

        iqr = df['score'].quantile(0.75) - df['score'].quantile(0.25) -> Option C
      4. Quick Check:

        Use quantile(0.75) - quantile(0.25) for IQR [OK]
      Hint: Use quantile(0.75) minus quantile(0.25) for IQR [OK]
      Common Mistakes:
      • Using mean or median instead of quantiles
      • Using max-min instead of IQR
      • Using standard deviation instead of IQR
      3. Given the following code, what will be the output of outliers?
      import pandas as pd
      
      data = {'values': [10, 12, 14, 15, 18, 100, 105]}
      df = pd.DataFrame(data)
      Q1 = df['values'].quantile(0.25)
      Q3 = df['values'].quantile(0.75)
      IQR = Q3 - Q1
      lower_bound = Q1 - 1.5 * IQR
      upper_bound = Q3 + 1.5 * IQR
      outliers = df[(df['values'] < lower_bound) | (df['values'] > upper_bound)]
      print(outliers)
      medium
      A. Rows with values 10 and 12
      B. Rows with values 100 and 105
      C. All rows because 1.5*IQR is too small
      D. Empty DataFrame, no outliers detected

      Solution

      1. Step 1: Calculate Q1, Q3, and IQR

        Q1 = 12.0 (between 12 and 14), Q3 = 18.0 (between 18 and 100), IQR = 6.0.
      2. Step 2: Calculate bounds and find outliers

        Lower bound = 12 - 1.5*6 = 3; Upper bound = 18 + 1.5*6 = 27. Values 100 and 105 are above upper bound, so they are outliers.
      3. Final Answer:

        Rows with values 100 and 105 -> Option B
      4. Quick Check:

        Outliers > Q3 + 1.5*IQR or < Q1 - 1.5*IQR: 100, 105 [OK]
      Hint: Outliers lie beyond Q1-1.5*IQR or Q3+1.5*IQR [OK]
      Common Mistakes:
      • Miscomputing Q1 or Q3
      • Using wrong inequality signs
      • Ignoring both lower and upper bounds
      4. Identify the error in this code snippet for detecting outliers using IQR:
      Q1 = df['data'].quantile(0.25)
      Q3 = df['data'].quantile(0.75)
      IQR = Q3 - Q1
      outliers = df[(df['data'] > Q3 + 1.5 * IQR) & (df['data'] < Q1 - 1.5 * IQR)]
      medium
      A. No error, code is correct
      B. IQR calculation is incorrect
      C. Quantile values are swapped
      D. The condition uses '&' instead of '|' to combine bounds

      Solution

      1. Step 1: Understand outlier condition

        Outliers are values less than lower bound OR greater than upper bound, so conditions should be combined with OR (|).
      2. Step 2: Check code condition

        The code uses AND (&), which means no value can be both greater than upper bound and less than lower bound simultaneously.
      3. Final Answer:

        The condition uses '&' instead of '|' to combine bounds -> Option D
      4. Quick Check:

        Use '|' for outlier condition, not '&' [OK]
      Hint: Use OR (|) to combine outlier conditions, not AND (&) [OK]
      Common Mistakes:
      • Using AND instead of OR for outlier filtering
      • Swapping Q1 and Q3 values
      • Calculating IQR incorrectly
      5. You have a DataFrame df with a column 'height'. You want to remove outliers using IQR but keep the original index. Which code correctly filters out outliers and keeps the index intact?
      hard
      A. Q1 = df['height'].quantile(0.25) Q3 = df['height'].quantile(0.75) IQR = Q3 - Q1 filtered_df = df[(df['height'] >= Q1 - 1.5*IQR) & (df['height'] <= Q3 + 1.5*IQR)]
      B. Q1 = df['height'].quantile(0.25) Q3 = df['height'].quantile(0.75) IQR = Q3 - Q1 filtered_df = df.reset_index(drop=True)[(df['height'] >= Q1 - 1.5*IQR) & (df['height'] <= Q3 + 1.5*IQR)]
      C. Q1 = df['height'].quantile(0.25) Q3 = df['height'].quantile(0.75) IQR = Q3 - Q1 filtered_df = df[(df['height'] > Q1 + 1.5*IQR) | (df['height'] < Q3 - 1.5*IQR)]
      D. Q1 = df['height'].quantile(0.25) Q3 = df['height'].quantile(0.75) IQR = Q3 - Q1 filtered_df = df[(df['height'] < Q1 - 1.5*IQR) & (df['height'] > Q3 + 1.5*IQR)]

      Solution

      1. Step 1: Calculate IQR and bounds correctly

        Calculate Q1, Q3, and IQR. Define lower bound as Q1 - 1.5*IQR and upper bound as Q3 + 1.5*IQR.
      2. Step 2: Filter rows within bounds and keep index

        Use boolean indexing with AND (&) to keep rows inside bounds. Do not reset index to keep original indices.
      3. Final Answer:

        Code in option A correctly filters and keeps index -> Option A
      4. Quick Check:

        Filter with AND inside bounds, no reset_index [OK]
      Hint: Filter with AND inside bounds; avoid resetting index [OK]
      Common Mistakes:
      • Using OR instead of AND to filter
      • Resetting index and losing original row labels
      • Swapping bounds or using wrong inequalities
      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