What is IQR?
The Interquartile Range (IQR) is:
- Q3 (75th percentile) − Q1 (25th percentile)
A common rule flags outliers outside:
- Lower bound = Q1 − 1.5 × IQR
- Upper bound = Q3 + 1.5 × IQR
Example
import pandas as pd
df = pd.DataFrame({"amount": [100, 110, 120, 115, 105, 130, 125, 3000]})
q1 = df["amount"].quantile(0.25)
q3 = df["amount"].quantile(0.75)
iqr = q3 - q1
lower = q1 - 1.5 * iqr
upper = q3 + 1.5 * iqr
print("Q1:", q1)
print("Q3:", q3)
print("IQR:", iqr)
print("Bounds:", lower, upper)
outliers = df[(df["amount"] < lower) | (df["amount"] > upper)]
print(outliers)Flag outliers (keep rows, add a column)
df["is_outlier"] = (df["amount"] < lower) | (df["amount"] > upper)
print(df)Notes
- IQR is robust for skewed data.
- Outlier detection is not outlier removal.
- Always validate outliers with domain context.
Visualize it
flowchart LR A["Sort the values"] --> B["Compute Q1 and Q3"] B --> C["IQR = Q3 - Q1"] C --> D["Lower fence = Q1 - 1.5*IQR
Upper fence = Q3 + 1.5*IQR"] D --> E["Flag values outside the fences"]
A box plot is just this rule drawn as a picture: the box spans Q1 to Q3, the whiskers reach out to the fences, and anything past them is plotted as its own dot.
🧪 Try It Yourself
Exercise 1 – Compute Q1, Q3, and IQR
Tab indents. Press Escape, then Tab, to leave the editor. Control plus Enter runs the code; Control plus Shift plus Enter submits it.
Press Run to see what your code prints.Exercise 2 – Compute the fences
Tab indents. Press Escape, then Tab, to leave the editor. Control plus Enter runs the code; Control plus Shift plus Enter submits it.
Press Run to see what your code prints.Exercise 3 – Flag the outliers
Tab indents. Press Escape, then Tab, to leave the editor. Control plus Enter runs the code; Control plus Shift plus Enter submits it.
Press Run to see what your code prints.Check your understanding
How is the IQR defined?
IQR is the 75th percentile minus the 25th percentile.
Show answer
A — Q3 minus Q1 — IQR is the 75th percentile minus the 25th percentile.
Which bounds flag outliers in the common IQR rule?
Values below the lower fence or above the upper fence are flagged.
Show answer
A — Q1 - 1.5 x IQR and Q3 + 1.5 x IQR — Values below the lower fence or above the upper fence are flagged.
For amounts 100, 110, 120, 115, 105, 130, 125 and 3000, which value falls outside the fences?
Q1 is 108.75 and Q3 is 126.25, so the IQR is 17.5 and the fences are 82.5 and 152.5. Only 3000 lies outside.
Show answer
A — 3000 only — Q1 is 108.75 and Q3 is 126.25, so the IQR is 17.5 and the fences are 82.5 and 152.5. Only 3000 lies outside.
What does the lesson say about outlier detection versus removal?
The lesson flags outliers in a column and keeps the rows. It also notes that IQR is robust for skewed data.
Show answer
A — Detection is not removal, so validate outliers with domain context — The lesson flags outliers in a column and keeps the rows. It also notes that IQR is robust for skewed data.
Next
Detection is only half the job — see Handling Outliers for what to actually do once you've found them.