0
0
Pandasdata~20 mins

apply() on columns in Pandas - Practice Problems & Coding Challenges

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
Apply Mastery Badge
Get all challenges correct to earn this badge!
Test your skills under time pressure!
Predict Output
intermediate
2:00remaining
Output of apply() with a lambda on DataFrame columns
What is the output of this code when applying a lambda function to each column of the DataFrame?
Pandas
import pandas as pd

df = pd.DataFrame({
    'A': [1, 2, 3],
    'B': [4, 5, 6]
})

result = df.apply(lambda x: x.max() - x.min())
print(result)
A
A    2
B    2
dtype: int64
B
A    3
B    6
dtype: int64
C
A    1
B    4
dtype: int64
D
A    6
B    9
dtype: int64
Attempts:
2 left
💡 Hint
Think about what max() and min() do for each column.
data_output
intermediate
2:00remaining
Result of apply() with a custom function on columns
Given this DataFrame, what is the result of applying the custom function to each column?
Pandas
import pandas as pd

def custom_func(col):
    return col.sum() / len(col)

df = pd.DataFrame({
    'X': [10, 20, 30],
    'Y': [5, 15, 25]
})

result = df.apply(custom_func)
print(result)
A
X    30
Y    25
dtype: int64
B
X    60
Y    45
dtype: int64
C
X    10
Y    5
dtype: int64
D
X    20.0
Y    15.0
dtype: float64
Attempts:
2 left
💡 Hint
The function calculates the average of each column.
🔧 Debug
advanced
2:00remaining
Identify the error in apply() usage on columns
What error does this code raise when applying the function to each column?
Pandas
import pandas as pd

df = pd.DataFrame({
    'A': [1, 2, 3],
    'B': [4, 5, 6]
})

result = df.apply(lambda x: x["nonexistent"])
print(result)
AKeyError: 'nonexistent'
BAttributeError: 'Series' object has no attribute 'nonexistent'
CTypeError: 'int' object is not subscriptable
DValueError: cannot index with vector
Attempts:
2 left
💡 Hint
Check if the column has the key you are trying to access.
visualization
advanced
2:00remaining
Visualize the effect of apply() on columns with a plotting function
Which option correctly applies a function to plot the sum of each column as a bar chart?
Pandas
import pandas as pd
import matplotlib.pyplot as plt

df = pd.DataFrame({
    'A': [1, 2, 3],
    'B': [4, 5, 6]
})

# Which code snippet below correctly plots the sum of each column as a bar chart?
A
df.sum().apply(lambda x: x).plot(kind='bar')
plt.show()
B
df.plot(kind='bar').apply(sum)
plt.show()
C
df.apply(sum).plot(kind='bar')
plt.show()
D
df.apply(lambda x: x.plot(kind='bar'))
plt.show()
Attempts:
2 left
💡 Hint
Sum the columns first, then plot the result.
🚀 Application
expert
3:00remaining
Use apply() on columns to normalize data
You want to normalize each column in a DataFrame by subtracting the mean and dividing by the standard deviation. Which code snippet correctly does this using apply() on columns?
Pandas
import pandas as pd

df = pd.DataFrame({
    'X': [10, 20, 30],
    'Y': [5, 15, 25]
})

# Choose the correct code to normalize columns
Adf.apply(lambda x: (x - df.mean()) / df.std())
Bdf.apply(lambda x: (x - x.mean()) / x.std())
Cdf.apply(lambda x: (x - x.median()) / x.std())
Ddf.apply(lambda x: (x - x.min()) / (x.max() - x.min()))
Attempts:
2 left
💡 Hint
Normalization uses mean and standard deviation of each column separately.