Bird
Raised Fist0
Data Analysis Pythondata~20 mins

Exploratory Data Analysis (EDA) template in Data Analysis Python - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
EDA Mastery Badge
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
What is the output of this code snippet for missing value count?

Given a DataFrame df with some missing values, what does the following code output?

Data Analysis Python
import pandas as pd
import numpy as np
data = {'A': [1, 2, np.nan, 4], 'B': [np.nan, 2, 3, 4]}
df = pd.DataFrame(data)
missing_counts = df.isnull().sum()
print(missing_counts)
A
A    2
B    2
dtype: int64
B
A    0
B    0
dtype: int64
C
A    1
B    2
dtype: int64
D
A    1
B    1
dtype: int64
Attempts:
2 left
💡 Hint

Use isnull() to find missing values, then sum() counts them per column.

❓ data_output
intermediate
2:00remaining
What is the shape of the DataFrame after filtering?

Consider this DataFrame df. After filtering rows where column 'Age' is greater than 30, what is the shape of the resulting DataFrame?

Data Analysis Python
import pandas as pd
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'], 'Age': [25, 35, 30, 40]}
df = pd.DataFrame(data)
filtered_df = df[df['Age'] > 30]
print(filtered_df.shape)
A(3, 2)
B(2, 2)
C(1, 2)
D(4, 2)
Attempts:
2 left
💡 Hint

Count rows where 'Age' > 30.

❓ visualization
advanced
2:00remaining
Which plot shows the distribution of 'Salary' correctly?

You have a DataFrame df with a 'Salary' column. Which code snippet produces a histogram of 'Salary' with 10 bins?

Adf['Salary'].hist(bins=10)
Bdf.hist(column='Salary', bins=10)
Cdf['Salary'].plot(kind='hist', bins=10)
DAll of the above
Attempts:
2 left
💡 Hint

All these methods create histograms with 10 bins.

🔧 Debug
advanced
2:00remaining
What error does this code raise?

What error occurs when running this code?

Data Analysis Python
import pandas as pd
data = {'A': [1, 2, 3], 'B': [4, 5, 6]}
df = pd.DataFrame(data)
mean_val = df['C'].mean()
AKeyError
BAttributeError
CTypeError
DNo error, returns NaN
Attempts:
2 left
💡 Hint

Check if column 'C' exists in the DataFrame.

🚀 Application
expert
3:00remaining
Which code snippet correctly calculates the correlation matrix?

Given a DataFrame df with numeric columns, which code correctly computes the correlation matrix?

Data Analysis Python
import pandas as pd
data = {'X': [1, 2, 3, 4], 'Y': [4, 3, 2, 1], 'Z': [10, 20, 30, 40]}
df = pd.DataFrame(data)
A
corr_matrix = df.corr()
print(corr_matrix)
B
corr_matrix = pd.corr(df)
print(corr_matrix)
C
corr_matrix = df.corrcoef()
print(corr_matrix)
D
corr_matrix = df.correlation()
print(corr_matrix)
Attempts:
2 left
💡 Hint

Use the pandas method for correlation matrix.

Practice

(1/5)
1. What is the main purpose of Exploratory Data Analysis (EDA) in data science?
easy
A. To build machine learning models directly
B. To clean data without checking it
C. To understand the data quickly and find patterns
D. To create final reports without analysis

Solution

  1. Step 1: Understand EDA's role

    EDA is used to explore and understand data before any modeling or cleaning.
  2. Step 2: Compare options

    Only To understand the data quickly and find patterns correctly states EDA's purpose as understanding data quickly and finding patterns.
  3. Final Answer:

    To understand the data quickly and find patterns -> Option C
  4. Quick Check:

    EDA = Understand data fast [OK]
Hint: EDA means exploring data first, not modeling [OK]
Common Mistakes:
  • Confusing EDA with model building
  • Thinking EDA skips data checking
  • Assuming EDA creates final reports
2. Which Python command is commonly used to get a quick summary of a DataFrame's structure during EDA?
easy
A. df.describe()
B. df.info()
C. df.plot()
D. df.head()

Solution

  1. Step 1: Recall DataFrame methods

    df.info() shows data types, non-null counts, and memory usage.
  2. Step 2: Compare with other methods

    df.describe() gives stats, df.plot() makes graphs, df.head() shows rows. Only df.info() summarizes structure.
  3. Final Answer:

    df.info() -> Option B
  4. Quick Check:

    DataFrame structure = df.info() [OK]
Hint: Use df.info() for quick data structure summary [OK]
Common Mistakes:
  • Using df.describe() for structure instead of stats
  • Confusing df.head() with info summary
  • Trying to plot before understanding data
3. Given the code:
import pandas as pd
df = pd.DataFrame({'A': [1, 2, 2, 3], 'B': [4, 5, 6, 7]})
print(df['A'].value_counts())

What is the output?
medium
A. 2 2 1 1 3 1 Name: A, dtype: int64
B. 1 2 2 1 3 1 Name: A, dtype: int64
C. 4 1 5 1 6 1 7 1 Name: B, dtype: int64
D. Error: value_counts() not found

Solution

  1. Step 1: Understand value_counts()

    It counts how many times each unique value appears in the column.
  2. Step 2: Count values in column 'A'

    Values are 1 (once), 2 (twice), 3 (once). value_counts() sorts by frequency descending, so: 2 2 1 1 3 1 Name: A, dtype: int64
  3. Final Answer:

    2 2 1 1 3 1 Name: A, dtype: int64 -> Option A
  4. Quick Check:

    Count unique values = 2 2 1 1 3 1 Name: A, dtype: int64 [OK]
Hint: value_counts() counts unique values in a column [OK]
Common Mistakes:
  • Mixing counts of column B instead of A
  • Misreading counts order
  • Expecting error from value_counts()
4. You run this code:
import pandas as pd
df = pd.DataFrame({'X': [1, 2, None, 4], 'Y': [5, None, 7, 8]})
print(df.describe())

But the output misses some rows. What is the likely problem?
medium
A. describe() excludes rows with missing values by default
B. describe() ignores non-numeric columns
C. DataFrame has no numeric columns
D. Syntax error in code

Solution

  1. Step 1: Understand describe() behavior

    describe() calculates stats on numeric columns but skips missing values in calculations.
  2. Step 2: Check missing data effect

    Rows with None are ignored in count and stats, so output shows fewer rows counted.
  3. Final Answer:

    describe() excludes rows with missing values by default -> Option A
  4. Quick Check:

    Missing data skipped in describe() = describe() excludes rows with missing values by default [OK]
Hint: describe() skips missing values in stats by default [OK]
Common Mistakes:
  • Thinking describe() drops entire rows
  • Assuming syntax error causes missing rows
  • Believing describe() works only on non-numeric data
5. You have a DataFrame df with columns age, income, and gender. You want to quickly check if income differs by gender. Which EDA step is best?
hard
A. Plot df['age'] histogram
B. Use df.describe() only
C. Drop missing values without checking
D. Use df.groupby('gender')['income'].mean() to compare averages

Solution

  1. Step 1: Identify goal

    You want to compare income by gender groups.
  2. Step 2: Choose correct EDA method

    Grouping by gender and calculating mean income shows differences clearly.
  3. Final Answer:

    Use df.groupby('gender')['income'].mean() to compare averages -> Option D
  4. Quick Check:

    Group and average to compare = Use df.groupby('gender')['income'].mean() to compare averages [OK]
Hint: Group by category and calculate mean to compare groups [OK]
Common Mistakes:
  • Using describe() without grouping
  • Plotting unrelated columns
  • Dropping data before checking
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