Bird
Raised Fist0
Data Analysis Pythondata~5 mins

apply() function for custom logic in Data Analysis Python - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does the apply() function do in pandas?
The apply() function lets you run a custom function on each row or column of a DataFrame or on each element of a Series.
Click to reveal answer
beginner
How do you apply a function to each row in a DataFrame?
Use df.apply(your_function, axis=1). The axis=1 means the function runs on each row.
Click to reveal answer
beginner
What is the difference between axis=0 and axis=1 in apply()?
axis=0 applies the function to each column, while axis=1 applies it to each row.
Click to reveal answer
beginner
Can apply() be used with lambda functions?
Yes! You can pass a lambda function directly to apply() for quick custom logic without defining a separate function.
Click to reveal answer
intermediate
Why use apply() instead of a for loop?
apply() is often faster and cleaner than a for loop because it uses optimized internal code and works well with pandas data structures.
Click to reveal answer
What does df.apply(func, axis=1) do?
AApplies func to each column
BApplies func to each element individually
CApplies func to the entire DataFrame at once
DApplies func to each row
Which of these is a valid way to use apply() with a lambda function?
AAll of the above
Bdf.apply(lambda x: x + 1, axis=1)
Cdf.apply(lambda x: x + 1, axis=0)
Ddf.apply(lambda x: x + 1)
What happens if you use apply() without specifying axis on a DataFrame?
AIt applies the function to each row
BIt applies the function to each column
CIt throws an error
DIt applies the function to the entire DataFrame
Which is NOT a benefit of using apply()?
AAbility to use custom functions easily
BCleaner code than loops
CFaster execution than vectorized operations
DWorks well with pandas data structures
If you want to apply a function to each element of a Series, which method is best?
Aapply()
Bmap()
Capplymap()
Dgroupby()
Explain how to use the apply() function to run a custom calculation on each row of a DataFrame.
Think about how to tell pandas to work row by row.
You got /4 concepts.
    Describe the difference between apply() with axis=0 and axis=1.
    Consider what each axis means in a table.
    You got /3 concepts.

      Practice

      (1/5)
      1. What does the apply() function do in a pandas DataFrame?
      easy
      A. It merges two DataFrames together.
      B. It sorts the DataFrame by a column.
      C. It filters rows based on a condition.
      D. It applies a custom function to each row or column.

      Solution

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

        The apply() function is used to run a custom function on each row or column of a DataFrame.
      2. Step 2: Compare with other DataFrame methods

        Sorting, filtering, and merging are different operations and not done by apply().
      3. Final Answer:

        It applies a custom function to each row or column. -> Option D
      4. Quick Check:

        apply() = custom function application [OK]
      Hint: Remember: apply() runs your function on rows or columns [OK]
      Common Mistakes:
      • Confusing apply() with sort or filter methods
      • Thinking apply() merges DataFrames
      • Assuming apply() only works on columns
      2. Which of the following is the correct syntax to apply a function f row-wise on a DataFrame df?
      easy
      A. df.apply(f, axis=0)
      B. df.apply(f)
      C. df.apply(f, axis=1)
      D. df.apply(f, axis=2)

      Solution

      1. Step 1: Recall axis parameter meaning

        In pandas, axis=1 means apply function row-wise, while axis=0 means column-wise.
      2. Step 2: Identify correct axis for row-wise

        Since the question asks for row-wise application, axis=1 is correct.
      3. Final Answer:

        df.apply(f, axis=1) -> Option C
      4. Quick Check:

        Row-wise apply = axis=1 [OK]
      Hint: Use axis=1 for rows, axis=0 for columns [OK]
      Common Mistakes:
      • Using axis=0 for row-wise apply
      • Omitting axis parameter and expecting row-wise
      • Using invalid axis values like 2
      3. Given the DataFrame:
      import pandas as pd
      df = pd.DataFrame({'A': [1, 2], 'B': [3, 4]})
      
      What is the output of:
      df['Sum'] = df.apply(lambda row: row['A'] + row['B'], axis=1)
      print(df)
      medium
      A. A B Sum 0 1 3 3 1 2 4 4
      B. A B Sum 0 1 3 4 1 2 4 6
      C. A B Sum 0 1 3 1 1 2 4 2
      D. Error: axis parameter missing

      Solution

      1. Step 1: Understand the lambda function

        The lambda adds values from columns 'A' and 'B' for each row.
      2. Step 2: Apply row-wise addition

        Row 0: 1 + 3 = 4; Row 1: 2 + 4 = 6.
      3. Final Answer:

        A B Sum 0 1 3 4 1 2 4 6 -> Option B
      4. Quick Check:

        Sum column = A + B per row [OK]
      Hint: Sum columns row-wise with apply and axis=1 [OK]
      Common Mistakes:
      • Forgetting axis=1 causes wrong operation
      • Adding columns incorrectly (e.g., column-wise)
      • Expecting apply to work without lambda
      4. What is wrong with this code snippet?
      df = pd.DataFrame({'X': [10, 20], 'Y': [30, 40]})
      df['Result'] = df.apply(lambda x: x['X'] * 2 if x['Y'] > 35 else x['X'], axis=0)
      medium
      A. Using axis=0 applies function column-wise, causing a KeyError.
      B. Lambda function syntax is incorrect.
      C. DataFrame is missing required columns.
      D. No error; code runs correctly.

      Solution

      1. Step 1: Check axis parameter usage

        axis=0 applies function to each column (Series), not rows.
      2. Step 2: Understand lambda function context

        Lambda expects row with keys 'X' and 'Y', but column Series only has index labels, causing KeyError.
      3. Final Answer:

        Using axis=0 applies function column-wise, causing a KeyError. -> Option A
      4. Quick Check:

        axis=0 = columns, lambda expects rows [OK]
      Hint: Use axis=1 for row-wise logic to avoid key errors [OK]
      Common Mistakes:
      • Confusing axis=0 and axis=1
      • Expecting row keys when applying column-wise
      • Ignoring error messages about missing keys
      5. You have a DataFrame df with columns "score" and "passed" (boolean). You want to create a new column "grade" where:
      - If passed is True and score >= 90, grade is 'A'
      - If passed is True and score >= 75 but < 90, grade is 'B'
      - Otherwise, grade is 'F'
      Which apply() function correctly implements this logic?
      hard
      A. df['grade'] = df.apply(lambda r: 'A' if r['passed'] and r['score'] >= 90 else ('B' if r['passed'] and r['score'] >= 75 else 'F'), axis=1)
      B. df['grade'] = df.apply(lambda r: 'A' if r['score'] >= 90 else 'B' if r['score'] >= 75 else 'F', axis=0)
      C. df['grade'] = df.apply(lambda r: 'A' if r['passed'] or r['score'] >= 90 else 'F', axis=1)
      D. df['grade'] = df.apply(lambda r: 'A' if r['passed'] and r['score'] > 90 else 'B', axis=1)

      Solution

      1. Step 1: Check axis parameter for row-wise logic

        axis=1 is needed to apply function on each row.
      2. Step 2: Verify conditional logic matches requirements

        df['grade'] = df.apply(lambda r: 'A' if r['passed'] and r['score'] >= 90 else ('B' if r['passed'] and r['score'] >= 75 else 'F'), axis=1) correctly checks if passed is True and score thresholds for 'A' and 'B', else 'F'.
      3. Step 3: Identify errors in other options

        df['grade'] = df.apply(lambda r: 'A' if r['score'] >= 90 else 'B' if r['score'] >= 75 else 'F', axis=0) uses axis=0 (wrong axis). df['grade'] = df.apply(lambda r: 'A' if r['passed'] or r['score'] >= 90 else 'F', axis=1) uses 'or' instead of 'and'. df['grade'] = df.apply(lambda r: 'A' if r['passed'] and r['score'] > 90 else 'B', axis=1) misses 'F' grade and uses wrong comparison for 90.
      4. Final Answer:

        df['grade'] = df.apply(lambda r: 'A' if r['passed'] and r['score'] >= 90 else ('B' if r['passed'] and r['score'] >= 75 else 'F'), axis=1) -> Option A
      5. Quick Check:

        Correct logic and axis=1 for row-wise apply [OK]
      Hint: Use axis=1 and nested if-else for multi-condition grading [OK]
      Common Mistakes:
      • Using axis=0 instead of axis=1
      • Using 'or' instead of 'and' in conditions
      • Missing else condition for failing grade
      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