Bird
Raised Fist0
Pandasdata~10 mins

When to use apply vs vectorized operations in Pandas - Interactive Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to calculate the square of each number in the 'values' column using a vectorized operation.

Pandas
df['squared'] = df['values'][1]2
Drag options to blanks, or click blank then click option'
A*
B**
C+
D//
Attempts:
3 left
💡 Hint
Common Mistakes
Using '+' instead of '**' will add 2 instead of squaring.
Using '*' will multiply the column by 2, not square.
2fill in blank
medium

Complete the code to apply a custom function that doubles each value in the 'values' column using the apply method.

Pandas
df['doubled'] = df['values'].[1](lambda x: x * 2)
Drag options to blanks, or click blank then click option'
Aapply
Breduce
Cmap
Dfilter
Attempts:
3 left
💡 Hint
Common Mistakes
Using map which is similar but not the method asked here.
Using filter which is for filtering elements.
3fill in blank
hard

Fix the error in the code to correctly apply a function that returns the length of each string in the 'names' column.

Pandas
df['name_length'] = df['names'].[1](len)
Drag options to blanks, or click blank then click option'
Aapply
Bvectorize
Cmap
Dreduce
Attempts:
3 left
💡 Hint
Common Mistakes
Using vectorize which is a NumPy function, not a pandas Series method.
Using reduce which aggregates rather than applies element-wise.
4fill in blank
hard

Fill both blanks to create a dictionary comprehension that includes words longer than 4 characters and maps them to their lengths.

Pandas
{word: [1] for word in words if len(word) [2] 4}
Drag options to blanks, or click blank then click option'
Alen(word)
Bword
C>
D<
Attempts:
3 left
💡 Hint
Common Mistakes
Using the word itself as the value instead of its length.
Using '<' instead of '>' in the condition.
5fill in blank
hard

Fill all three blanks to create a dictionary comprehension that maps uppercase words to their lengths only if the length is greater than 3.

Pandas
{ [1]: [2] for word in words if len(word) [3] 3 }
Drag options to blanks, or click blank then click option'
Aword.upper()
Blen(word)
C>
Dword
Attempts:
3 left
💡 Hint
Common Mistakes
Using the original word as key instead of uppercase.
Using '<' instead of '>' in the condition.

Practice

(1/5)
1. Which of the following best describes when to use apply in pandas?
easy
A. When you want to merge two DataFrames.
B. When you want to perform simple arithmetic on entire columns quickly.
C. When you want to sort a DataFrame by a column.
D. When you need to run a custom function on each row or column.

Solution

  1. Step 1: Understand the purpose of apply

    apply is used to apply custom or complex functions to rows or columns in a DataFrame.
  2. Step 2: Compare with vectorized operations

    Vectorized operations are for simple, fast math on entire columns, not custom row-wise functions.
  3. Final Answer:

    When you need to run a custom function on each row or column. -> Option D
  4. Quick Check:

    Custom function use = apply = A [OK]
Hint: Use apply for custom row/column functions, vectorized for simple math [OK]
Common Mistakes:
  • Confusing apply with vectorized operations for simple math
  • Using apply for sorting or merging
  • Thinking apply is always faster
2. Which of these is the correct syntax to use apply on a DataFrame column df['col'] with a function func?
easy
A. apply(df['col'], func)
B. df['col'].apply(func)
C. df.apply['col'](func)
D. df['col'].apply = func

Solution

  1. Step 1: Recall the method call syntax

    In pandas, apply is a method called on a Series or DataFrame with the function as argument.
  2. Step 2: Check each option

    df['col'].apply(func) uses correct syntax: df['col'].apply(func). Others have syntax errors or wrong usage.
  3. Final Answer:

    df['col'].apply(func) -> Option B
  4. Quick Check:

    Method call with function argument = C [OK]
Hint: Use dot apply with parentheses and function inside [OK]
Common Mistakes:
  • Using square brackets instead of parentheses for apply
  • Trying to assign function to apply attribute
  • Calling apply as a standalone function
3. Given the DataFrame:
import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
What is the output of:
df['C'] = df['A'] + df['B']
df['D'] = df['A'].apply(lambda x: x * 2)
df[['C', 'D']]
medium
A. C D 0 5 2 1 7 4 2 9 6
B. C D 0 5 1 1 7 2 2 9 3
C. C D 0 4 2 1 5 4 2 6 6
D. C D 0 5 4 1 7 6 2 9 8

Solution

  1. Step 1: Calculate column C using vectorized addition

    Column C = A + B = [1+4, 2+5, 3+6] = [5, 7, 9]
  2. Step 2: Calculate column D using apply with lambda

    Column D = A * 2 = [1*2, 2*2, 3*2] = [2, 4, 6]
  3. Final Answer:

    C D 0 5 2 1 7 4 2 9 6 -> Option A
  4. Quick Check:

    Vectorized + apply results = B [OK]
Hint: Add columns directly, use apply for custom row-wise ops [OK]
Common Mistakes:
  • Mixing up which columns are added
  • Forgetting to multiply by 2 in apply
  • Confusing apply output with original values
4. You want to double the values in column 'A' of DataFrame df. Which code has an error?
medium
A. df['A'] = df['A'] * 2
B. df['A'] = df['A'].apply(lambda x: x * 2)
C. df['A'] = df.apply(lambda x: x['A'] * 2)
D. df['A'] = df['A'].map(lambda x: x * 2)

Solution

  1. Step 1: Analyze df['A'] = df.apply(lambda x: x['A'] * 2)'s use of apply

    Using df.apply without specifying axis defaults to axis=0 (columns), so x['A'] fails because x is a column name string, not a row.
  2. Step 2: Compare with other options

    Options B, C, and D correctly double values using apply on Series, vectorized, or map on Series.
  3. Final Answer:

    df['A'] = df.apply(lambda x: x['A'] * 2) -> Option C
  4. Quick Check:

    apply on DataFrame needs axis=1 for row-wise, else error = A [OK]
Hint: Use axis=1 with apply on DataFrame rows to avoid errors [OK]
Common Mistakes:
  • Forgetting axis=1 in DataFrame apply
  • Confusing apply on DataFrame vs Series
  • Using map on DataFrame instead of Series
5. You have a DataFrame df with columns 'X' and 'Y'. You want to create a new column 'Z' that is 'X' squared if 'Y' is even, else 'X' cubed. Which is the best approach?
hard
A. Use vectorized operations with np.where and powers.
B. Use apply with a custom function checking Y and computing Z.
C. Use a for loop to iterate rows and assign Z values.
D. Use map on column 'X' only.

Solution

  1. Step 1: Understand the condition and operations

    We want Z = X^2 if Y is even, else Z = X^3.
  2. Step 2: Choose efficient method

    Using np.where with vectorized power operations is fast and clear. apply works but is slower. For loops are slow and verbose. map on X alone can't check Y.
  3. Final Answer:

    Use vectorized operations with np.where and powers. -> Option A
  4. Quick Check:

    Conditional vectorized ops > apply or loops = D [OK]
Hint: Use np.where for conditional vectorized operations [OK]
Common Mistakes:
  • Using apply when vectorized is faster
  • Using loops instead of vectorized code
  • Trying to map without condition on another column
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