Bird
Raised Fist0
Data Analysis Pythondata~20 mins

Correlation with corr() in Data Analysis Python - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Correlation Mastery
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 correlation calculation?
Given the following DataFrame, what is the output of df.corr()?
Data Analysis Python
import pandas as pd
import numpy as np

data = {'A': [1, 2, 3, 4, 5], 'B': [5, 4, 3, 2, 1], 'C': [2, 3, 2, 3, 2]}
df = pd.DataFrame(data)
print(df.corr())
A{'A': {'A': 1.0, 'B': -1.0, 'C': 0.0}, 'B': {'A': -1.0, 'B': 1.0, 'C': 0.0}, 'C': {'A': 0.0, 'B': 0.0, 'C': 1.0}}
B
     A    B    C
A  1.0 -1.0  0.0
B -1.0  1.0  0.0
C  0.0  0.0  1.0
C
     A    B    C
A  1.0  1.0  0.0
B  1.0  1.0  0.0
C  0.0  0.0  1.0
D
     A    B    C
A  1.0 -1.0  1.0
B -1.0  1.0 -1.0
C  1.0 -1.0  1.0
Attempts:
2 left
💡 Hint
Remember that correlation measures how two variables move together. Negative means opposite directions.
❓ data_output
intermediate
2:00remaining
How many pairs have correlation above 0.5?
Using the DataFrame below, how many unique pairs of columns have a correlation greater than 0.5?
Data Analysis Python
import pandas as pd
import numpy as np
np.random.seed(0)
data = {'X': np.random.rand(10), 'Y': np.random.rand(10), 'Z': np.random.rand(10)}
df = pd.DataFrame(data)
corr_matrix = df.corr()
# Count pairs with correlation > 0.5 (excluding self-correlation)
count = 0
for i in corr_matrix.columns:
    for j in corr_matrix.columns:
        if i < j and corr_matrix.loc[i,j] > 0.5:
            count += 1
print(count)
A0
B1
C2
D3
Attempts:
2 left
💡 Hint
Random numbers usually have low correlation unless seeded or constructed.
🔧 Debug
advanced
2:00remaining
What error does this code raise?
What error will this code raise when trying to compute correlation?
Data Analysis Python
import pandas as pd
data = {'A': [1, 2, 3], 'B': ['x', 'y', 'z']}
df = pd.DataFrame(data)
print(df.corr())
ATypeError: unsupported operand type(s) for -: 'str' and 'int'
BValueError: could not convert string to float: 'x'
CEmpty DataFrame with columns and index but no data
DNo error, 1x1 correlation matrix with value 1.0
Attempts:
2 left
💡 Hint
Correlation only works on numeric columns; non-numeric columns are ignored.
🚀 Application
advanced
2:00remaining
Which column pair has the strongest positive correlation?
Given the DataFrame below, which pair of columns has the strongest positive correlation?
Data Analysis Python
import pandas as pd
data = {'P': [1, 2, 3, 4, 5], 'Q': [2, 4, 6, 8, 10], 'R': [5, 4, 3, 2, 1], 'S': [1, 3, 1, 7, 9]}
df = pd.DataFrame(data)
corr = df.corr()
print(corr)
AQ and R
BP and R
CP and Q
DP and S
Attempts:
2 left
💡 Hint
Look for pairs where one column is a perfect multiple of the other.
🧠 Conceptual
expert
2:00remaining
What does a correlation value of 0 indicate?
In the context of the corr() method, what does a correlation value of 0 between two variables mean?
AThe two variables have no linear relationship
BThe two variables are independent in all ways
CThe two variables have a perfect positive linear relationship
DThe two variables have a perfect negative linear relationship
Attempts:
2 left
💡 Hint
Correlation measures linear relationships only.

Practice

(1/5)
1. What does the corr() function in pandas do?
easy
A. Counts the number of missing values in a DataFrame
B. Calculates the correlation between numeric columns in a DataFrame
C. Sorts the DataFrame by a specific column
D. Filters rows based on a condition

Solution

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

    The corr() function calculates how numeric columns relate to each other in a DataFrame.
  2. Step 2: Compare with other options

    Counting missing values, sorting, or filtering are different functions like isna(), sort_values(), and loc.
  3. Final Answer:

    Calculates the correlation between numeric columns in a DataFrame -> Option B
  4. Quick Check:

    corr() finds relationships [OK]
Hint: Remember: corr() measures how numbers move together [OK]
Common Mistakes:
  • Confusing corr() with counting or sorting functions
  • Thinking corr() works on non-numeric data
  • Assuming corr() changes the DataFrame structure
2. Which of the following is the correct way to calculate correlation between columns in a pandas DataFrame named df?
easy
A. df.corr()
B. df.correlate()
C. df.corrrelation()
D. df.correlation()

Solution

  1. Step 1: Recall the exact method name

    The correct pandas method to calculate correlation is corr().
  2. Step 2: Check each option

    Options A, B, and C are misspelled or incorrect method names.
  3. Final Answer:

    df.corr() -> Option A
  4. Quick Check:

    Use df.corr() for correlation [OK]
Hint: Remember exact method name: corr() not correlation [OK]
Common Mistakes:
  • Misspelling the method name
  • Using non-existent pandas methods
  • Confusing corr() with other functions
3. Given the following DataFrame df:
   A  B  C
0  1  2  5
1  2  4  7
2  3  6  9
3  4  8  11
What is the output of df.corr()?
medium
A. {'A': {'A': 1.0, 'B': 1.0, 'C': 1.0}, 'B': {'A': 1.0, 'B': 1.0, 'C': 1.0}, 'C': {'A': 1.0, 'B': 1.0, 'C': 1.0}}
B. {'A': {'A': 1.0, 'B': 0.5, 'C': 0.5}, 'B': {'A': 0.5, 'B': 1.0, 'C': 0.5}, 'C': {'A': 0.5, 'B': 0.5, 'C': 1.0}}
C. {'A': {'A': 1.0, 'B': -1.0, 'C': 0.0}, 'B': {'A': -1.0, 'B': 1.0, 'C': 0.0}, 'C': {'A': 0.0, 'B': 0.0, 'C': 1.0}}
D. Error: corr() cannot be applied to this DataFrame

Solution

  1. Step 1: Understand the data pattern

    Columns A, B, and C increase perfectly linearly: B = 2*A, C = 2*A + 3.
  2. Step 2: Calculate correlation values

    Since all columns are perfectly linearly related, correlation between any two is 1.0, and correlation with itself is 1.0.
  3. Final Answer:

    {'A': {'A': 1.0, 'B': 1.0, 'C': 1.0}, 'B': {'A': 1.0, 'B': 1.0, 'C': 1.0}, 'C': {'A': 1.0, 'B': 1.0, 'C': 1.0}} -> Option A
  4. Quick Check:

    Perfect linear relation means correlation = 1 [OK]
Hint: Perfect linear columns have correlation 1 [OK]
Common Mistakes:
  • Assuming correlation less than 1 for perfect linear data
  • Confusing correlation with covariance
  • Thinking corr() raises error on numeric data
4. You run the code below but get an error:
import pandas as pd
df = pd.DataFrame({'X': [1, 2, 3], 'Y': ['a', 'b', 'c']})
print(df.corr(numeric_only=False))
What is the cause of the error?
medium
A. The corr() method is misspelled
B. The DataFrame is empty
C. The DataFrame has non-numeric columns which corr() cannot process
D. The DataFrame columns have missing values

Solution

  1. Step 1: Analyze DataFrame columns

    Column 'Y' contains strings, which are non-numeric.
  2. Step 2: Understand corr() requirements

    corr() only works on numeric columns; non-numeric columns cause it to ignore or error depending on pandas version.
  3. Final Answer:

    The DataFrame has non-numeric columns which corr() cannot process -> Option C
  4. Quick Check:

    corr() needs numeric data [OK]
Hint: Check for non-numeric columns before using corr() [OK]
Common Mistakes:
  • Assuming corr() works on strings
  • Thinking misspelling caused error
  • Ignoring data types in DataFrame
5. You have a DataFrame df with columns height, weight, and age. You want to find which two variables have the strongest positive correlation. Which code snippet correctly finds this?
hard
A. corr_matrix = df.corr() max_corr = corr_matrix.where(corr_matrix < 1).max().max()
B. corr_matrix = df.corr() max_corr = corr_matrix.where(corr_matrix != 1).min().min()
C. corr_matrix = df.corr() max_corr = corr_matrix.max().max()
D. corr_matrix = df.corr() max_corr = corr_matrix.where(corr_matrix != 1).max().max()

Solution

  1. Step 1: Calculate correlation matrix

    Use df.corr() to get correlations between all numeric columns.
  2. Step 2: Exclude self-correlation (which is 1)

    Use where(corr_matrix != 1) to ignore diagonal 1s, then find the maximum correlation value.
  3. Step 3: Find the strongest positive correlation

    Use max().max() to get the highest correlation excluding 1.
  4. Final Answer:

    corr_matrix = df.corr() max_corr = corr_matrix.where(corr_matrix != 1).max().max() -> Option D
  5. Quick Check:

    Exclude 1, then find max correlation [OK]
Hint: Exclude 1s (self-correlation) before max() [OK]
Common Mistakes:
  • Including diagonal 1s in max correlation
  • Using min() instead of max()
  • Not excluding self-correlation values
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