Bird
Raised Fist0
Pandasdata~10 mins

Vectorized operations vs loops 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 create a new column 'double' by doubling the 'value' column using vectorized operations.

Pandas
df['double'] = df['value'] [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 to each value, not double it.
Using '/' will divide values, not double them.
2fill in blank
medium

Complete the code to calculate the mean of the 'score' column using a vectorized pandas method.

Pandas
mean_score = df['score'].[1]()
Drag options to blanks, or click blank then click option'
Amean
Bsum
Ccount
Dmedian
Attempts:
3 left
💡 Hint
Common Mistakes
Using sum() returns total, not average.
Using count() returns number of entries, not average.
3fill in blank
hard

Fix the error in the loop that adds 10 to each element in the 'points' column and stores results in a list.

Pandas
results = []
for [1] in df['points']:
    results.append(x + 10)
Drag options to blanks, or click blank then click option'
Ai
Bx
Cpoint
Dvalue
Attempts:
3 left
💡 Hint
Common Mistakes
Using a different variable name in the loop and inside the loop body causes a NameError.
Using 'i' or 'point' without updating the append statement.
4fill in blank
hard

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

Pandas
{word: [1] for word in words if len(word) [2] 3}
Drag options to blanks, or click blank then click option'
Alen(word)
B>
C<
Dword
Attempts:
3 left
💡 Hint
Common Mistakes
Using the word itself as 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 scores only if score is positive.

Pandas
result = { [1]: [2] for word, score in data.items() if score [3] 0 }
Drag options to blanks, or click blank then click option'
Aword.upper()
Bscore
C>
Dword.lower()
Attempts:
3 left
💡 Hint
Common Mistakes
Using word.lower() instead of uppercase.
Using '<' instead of '>' in the condition.
Mapping keys or values incorrectly.

Practice

(1/5)
1. Which of the following best describes vectorized operations in pandas?
easy
A. They require writing explicit for-loops to manipulate data.
B. They process data one row at a time using loops.
C. They operate on entire columns or arrays at once, making them faster.
D. They are slower than loops for large datasets.

Solution

  1. Step 1: Understand vectorized operations

    Vectorized operations apply a function to whole columns or arrays simultaneously.
  2. Step 2: Compare with loops

    Loops process data row by row, which is slower for large data.
  3. Final Answer:

    They operate on entire columns or arrays at once, making them faster. -> Option C
  4. Quick Check:

    Vectorized = whole columns at once [OK]
Hint: Vectorized means whole column at once, not row by row [OK]
Common Mistakes:
  • Confusing vectorized operations with loops
  • Thinking loops are faster for large data
  • Believing vectorized operations require explicit loops
2. Which of the following is the correct syntax to add 10 to every element in a pandas Series s using vectorized operations?
easy
A. for i in s: s[i] = s[i] + 10
B. s = s + 10
C. s.apply(lambda x: x + 10)
D. s.add(10, inplace=True)

Solution

  1. Step 1: Identify vectorized addition syntax

    Adding a scalar to a Series directly uses vectorized addition: s = s + 10.
  2. Step 2: Check other options

    for i in s: s[i] = s[i] + 10 uses a loop incorrectly, C returns a new Series but does not assign, B is invalid because add does not have inplace.
  3. Final Answer:

    s = s + 10 -> Option B
  4. Quick Check:

    Use s + 10 for vectorized add [OK]
Hint: Use s + 10 for vectorized addition, no loops [OK]
Common Mistakes:
  • Trying to modify Series inside a for-loop
  • Using apply without assignment
  • Using invalid inplace parameter with add()
3. What will be the output of this code?
import pandas as pd
s = pd.Series([1, 2, 3])
result = []
for val in s:
    result.append(val * 2)
print(result)
medium
A. Error: cannot multiply Series elements in loop
B. pd.Series([2, 4, 6])
C. [1, 2, 3]
D. [2, 4, 6]

Solution

  1. Step 1: Understand the loop operation

    The loop goes through each value in the Series and multiplies it by 2, appending to a list.
  2. Step 2: Check the printed output

    The printed output is the list [2, 4, 6], not a Series.
  3. Final Answer:

    [2, 4, 6] -> Option D
  4. Quick Check:

    Loop multiplies each value, list output [OK]
Hint: Loop appends multiplied values to list, not Series [OK]
Common Mistakes:
  • Expecting a Series output instead of list
  • Confusing loop with vectorized operation
  • Thinking loop causes error multiplying values
4. Identify the error in this code that tries to double values in a pandas Series s:
result = []
for i in range(len(s)):
    result.append(s[i] * 2)
print(result)
medium
A. No error; code works correctly
B. Accessing Series elements by integer index is invalid
C. Using range(len(s)) causes an IndexError
D. Appending to list inside loop is not allowed

Solution

  1. Step 1: Check indexing method

    Accessing Series elements by integer position with s[i] works if Series index is default 0-based.
  2. Step 2: Verify loop and append

    The loop appends doubled values to list correctly; no error occurs.
  3. Final Answer:

    No error; code works correctly -> Option A
  4. Quick Check:

    Indexing by position works if default index [OK]
Hint: Default Series index allows integer access [OK]
Common Mistakes:
  • Assuming s[i] always causes error
  • Thinking append inside loop is invalid
  • Confusing label-based and position-based indexing
5. You have a DataFrame df with a column 'price'. You want to increase all prices by 5% efficiently. Which method is best?
hard
A. Use df['price'] = df['price'] * 1.05 to apply vectorized multiplication.
B. Use a for-loop to multiply each price by 1.05 and update the DataFrame row by row.
C. Use df.apply(lambda row: row['price'] * 1.05, axis=1) without assignment.
D. Convert the column to a list, multiply each element by 1.05 in a loop, then assign back.

Solution

  1. Step 1: Identify efficient vectorized method

    Multiplying the entire column by 1.05 directly uses vectorized operations and is fastest.
  2. Step 2: Evaluate other options

    Use a for-loop to multiply each price by 1.05 and update the DataFrame row by row. uses slow loops, C does not assign result back, D is inefficient with list conversion.
  3. Final Answer:

    Use df['price'] = df['price'] * 1.05 to apply vectorized multiplication. -> Option A
  4. Quick Check:

    Vectorized column operation is fastest [OK]
Hint: Multiply whole column directly for speed [OK]
Common Mistakes:
  • Using loops instead of vectorized operations
  • Forgetting to assign result back to DataFrame
  • Converting to list unnecessarily
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