by groups data by a column to make multiple box plots.
Examples
Draws a box plot for the 'Age' column.
Pandas
df.boxplot(column='Age')
Draws box plots of 'Salary' grouped by 'Department'.
Pandas
df.boxplot(column='Salary', by='Department')
Draws box plots for all numeric columns with a custom size and no grid.
Pandas
df.boxplot(figsize=(8,6), grid=False)
Sample Program
This code creates a small table with departments, salaries, and ages. It then draws box plots to compare salaries in each department. The plot shows the spread and any unusual salary values.
Pandas
import pandas as pd
import matplotlib.pyplot as plt
data = {'Department': ['HR', 'HR', 'IT', 'IT', 'Sales', 'Sales'],
'Salary': [50000, 52000, 60000, 61000, 45000, 47000],
'Age': [25, 28, 30, 35, 22, 24]}
df = pd.DataFrame(data)
# Draw box plots of Salary grouped by Department
df.boxplot(column='Salary', by='Department', grid=False, figsize=(6,4))
plt.suptitle('') # Remove automatic title
plt.title('Salary Distribution by Department')
plt.ylabel('Salary')
plt.show()
OutputSuccess
Important Notes
Box plots show median, quartiles, and possible outliers.
Use plt.show() to display the plot when using pandas with matplotlib.
Grouping by a column helps compare different categories side by side.
Summary
Box plots help visualize data spread and outliers.
Use DataFrame.boxplot() to create box plots in pandas.
Grouping data by a column shows comparisons between groups.
Practice
(1/5)
1. What does a box plot primarily show about a dataset?
easy
A. Only the average value of the data
B. The spread, median, and outliers of the data
C. The exact values of all data points
D. The correlation between two variables
Solution
Step 1: Understand box plot components
A box plot shows the median line, the box representing the middle 50% of data, and whiskers for spread.
Step 2: Identify what it reveals
It highlights the data spread, median, and any outliers beyond whiskers.
Final Answer:
The spread, median, and outliers of the data -> Option B
Quick Check:
Box plot = spread + median + outliers [OK]
Hint: Box plots show spread and outliers, not just averages [OK]
Common Mistakes:
Thinking box plots show all data points exactly
Confusing box plots with scatter plots
Assuming box plots show correlation
2. Which of the following is the correct way to create a box plot for a pandas DataFrame named df?
easy
A. boxplot(df)
B. df.plot.boxplot()
C. df.boxplot()
D. df.box()
Solution
Step 1: Recall pandas box plot syntax
The pandas DataFrame method to create a box plot is boxplot().
Step 2: Check each option
df.boxplot() uses df.boxplot(), which is correct. df.plot.boxplot() is invalid syntax. boxplot(df) is not a pandas function. df.box() is invalid.
Final Answer:
df.boxplot() -> Option C
Quick Check:
Use df.boxplot() to plot box plots [OK]
Hint: Use df.boxplot() to create box plots in pandas [OK]
Common Mistakes:
Using df.plot.boxplot() which is invalid
Trying to call boxplot as a standalone function
Using df.box() which does not exist
3. Given the following code, what will be the output type of ax?
A. The argument 'groupby' is invalid for boxplot()
B. The 'by' argument should be 'groupby'
C. The 'column' argument should be a list, not a string
D. The DataFrame is missing numeric columns
Solution
Step 1: Check boxplot() arguments
The pandas boxplot method accepts 'column' and 'by' arguments, but not 'groupby'.
Step 2: Identify invalid argument
The code incorrectly uses 'groupby' which causes an error. 'by' is correct for grouping.
Final Answer:
The argument 'groupby' is invalid for boxplot() -> Option A
Quick Check:
Use 'by' to group, no 'groupby' argument [OK]
Hint: Use 'by' to group in boxplot(), not 'groupby' [OK]
Common Mistakes:
Using 'groupby' instead of 'by' argument
Passing column as list when string is allowed
Thinking numeric columns are missing
5. You have a DataFrame df with columns "Group" and "Score". You want to compare the score distributions for each group side by side using box plots. Which code correctly achieves this?
hard
A. df.boxplot(by='Score', column='Group')
B. df.groupby('Group').boxplot(column='Score')
C. df.plot.box(by='Group', column='Score')
D. df.boxplot(column='Score', by='Group')
Solution
Step 1: Understand grouping in boxplot()
To compare groups side by side, use boxplot() with column as the numeric data and by as the grouping column.
Step 2: Evaluate each option
df.boxplot(column='Score', by='Group') correctly uses column='Score' and by='Group'. df.groupby('Group').boxplot(column='Score') tries to group then boxplot, which returns multiple plots, not side by side. df.plot.box(by='Group', column='Score') uses invalid syntax. df.boxplot(by='Score', column='Group') swaps column and by incorrectly.
Final Answer:
df.boxplot(column='Score', by='Group') -> Option D
Quick Check:
Use column=score and by=group for grouped boxplots [OK]
Hint: Use df.boxplot(column='Score', by='Group') for grouped box plots [OK]
Common Mistakes:
Using groupby().boxplot() which plots separately
Swapping column and by arguments
Using invalid plot syntax
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.