Bird
Raised Fist0
Pandasdata~5 mins

Arithmetic operations on columns in Pandas - Time & Space Complexity

Choose your learning style10 modes available
Time Complexity: Arithmetic operations on columns
O(n)
Understanding Time Complexity

We want to understand how the time to do arithmetic on columns changes as the data grows.

How does the work increase when we have more rows in the table?

Scenario Under Consideration

Analyze the time complexity of the following code snippet.

import pandas as pd

n = 10  # Example value for n

df = pd.DataFrame({
    'A': range(n),
    'B': range(n, 2*n)
})
df['C'] = df['A'] + df['B']

This code creates two columns with numbers and adds them to make a new column.

Identify Repeating Operations

Identify the loops, recursion, array traversals that repeat.

  • Primary operation: Adding each pair of numbers from columns A and B.
  • How many times: Once for each row in the DataFrame.
How Execution Grows With Input

As the number of rows grows, the number of additions grows the same way.

Input Size (n)Approx. Operations
1010 additions
100100 additions
10001000 additions

Pattern observation: The work grows directly with the number of rows.

Final Time Complexity

Time Complexity: O(n)

This means the time to add columns grows in a straight line as the data gets bigger.

Common Mistake

[X] Wrong: "Adding two columns is instant no matter how big the data is."

[OK] Correct: Each row needs one addition, so more rows mean more work and more time.

Interview Connect

Knowing how operations grow with data size helps you explain your code choices clearly and confidently.

Self-Check

"What if we added two columns but only for rows where a condition is true? How would the time complexity change?"

Practice

(1/5)
1. What does the expression df['total'] = df['price'] + df['tax'] do in pandas?
easy
A. Multiplies the 'price' and 'tax' columns and stores in 'total'.
B. Deletes the 'price' and 'tax' columns from the DataFrame.
C. Filters rows where 'price' plus 'tax' is greater than zero.
D. Creates a new column 'total' by adding 'price' and 'tax' columns element-wise.

Solution

  1. Step 1: Understand the operation on columns

    The expression adds values from 'price' and 'tax' columns for each row.
  2. Step 2: Assign result to new column

    The sum is stored in a new column named 'total' in the DataFrame.
  3. Final Answer:

    Creates a new column 'total' by adding 'price' and 'tax' columns element-wise. -> Option D
  4. Quick Check:

    Adding columns creates new column with sums [OK]
Hint: Adding columns creates a new column with their sums [OK]
Common Mistakes:
  • Thinking it multiplies instead of adds
  • Assuming it deletes columns
  • Confusing assignment with filtering
2. Which of the following is the correct syntax to subtract column 'B' from column 'A' in a pandas DataFrame df and store the result in a new column 'C'?
easy
A. df['C'] = df['A'] - df['B']
B. df['C'] = df['A'] + df['B']
C. df['C'] = df['A'] * df['B']
D. df['C'] = df['A'] / df['B']

Solution

  1. Step 1: Identify the subtraction operation

    We want to subtract column 'B' from 'A', so the operator is '-'.
  2. Step 2: Assign the result to new column 'C'

    Use df['C'] = df['A'] - df['B'] to store the difference.
  3. Final Answer:

    df['C'] = df['A'] - df['B'] -> Option A
  4. Quick Check:

    Subtraction uses '-' operator between columns [OK]
Hint: Use '-' operator between columns to subtract [OK]
Common Mistakes:
  • Using '+' instead of '-'
  • Using '*' or '/' operators incorrectly
  • Confusing column names or assignment
3. Given the DataFrame:
import pandas as pd
df = pd.DataFrame({'A': [2, 4], 'B': [3, 5]})
df['C'] = df['A'] * df['B']
print(df['C'])

What is the output?
medium
A. [6, 20]
B. [5, 9]
C. [2, 4]
D. [3, 5]

Solution

  1. Step 1: Multiply columns 'A' and 'B' element-wise

    Row 0: 2 * 3 = 6, Row 1: 4 * 5 = 20.
  2. Step 2: Print the new column 'C'

    The output shows the values [6, 20] for the two rows.
  3. Final Answer:

    [6, 20] -> Option A
  4. Quick Check:

    Element-wise multiplication = [6, 20] [OK]
Hint: Multiply columns element-wise to get new column values [OK]
Common Mistakes:
  • Adding instead of multiplying
  • Printing wrong column
  • Confusing list output format
4. What is wrong with this code snippet?
df['D'] = df['A'] + '5'

Assuming 'A' is a numeric column.
medium
A. It will create a new column 'D' with all values as '5'.
B. It will add 5 to each value in column 'A' correctly.
C. It will raise a TypeError because you cannot add a string to a numeric column.
D. It will concatenate the string '5' to each numeric value in 'A'.

Solution

  1. Step 1: Check data types involved in addition

    Column 'A' is numeric, but '5' is a string, so adding them causes a type mismatch.
  2. Step 2: Understand pandas behavior on mixed types

    Pandas cannot add string to numeric directly, so it raises a TypeError.
  3. Final Answer:

    It will raise a TypeError because you cannot add a string to a numeric column. -> Option C
  4. Quick Check:

    Adding string to number causes TypeError [OK]
Hint: Check data types before arithmetic to avoid errors [OK]
Common Mistakes:
  • Assuming string '5' is converted automatically
  • Expecting concatenation with numbers
  • Ignoring error messages
5. You have a DataFrame df with columns 'cost' and 'discount'. You want to create a new column 'final_price' that subtracts the discount from cost and then applies a 10% tax on the result. Which code correctly does this?
hard
A. df['final_price'] = df['cost'] * 1.10 - df['discount']
B. df['final_price'] = (df['cost'] - df['discount']) * 1.10
C. df['final_price'] = df['cost'] - (df['discount'] * 1.10)
D. df['final_price'] = df['cost'] - df['discount'] * 1.10

Solution

  1. Step 1: Subtract discount from cost

    Calculate the price after discount: df['cost'] - df['discount'].
  2. Step 2: Apply 10% tax on discounted price

    Multiply the result by 1.10 to add 10% tax.
  3. Step 3: Assign to 'final_price'

    Store the final value in the new column 'final_price'.
  4. Final Answer:

    df['final_price'] = (df['cost'] - df['discount']) * 1.10 -> Option B
  5. Quick Check:

    Subtract then multiply for tax = correct formula [OK]
Hint: Use parentheses to control order: subtract first, then multiply [OK]
Common Mistakes:
  • Missing parentheses causing wrong order
  • Multiplying discount instead of discounted price
  • Applying tax before subtracting discount
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