Bird
Raised Fist0
Pandasdata~5 mins

Arithmetic operations on columns in Pandas

Choose your learning style10 modes available
Introduction

We use arithmetic operations on columns to quickly calculate new values from existing data. This helps us understand and analyze data better.

Calculating total price by multiplying quantity and unit price columns.
Finding the difference between two dates stored in separate columns.
Adding tax to a price column to get the final cost.
Converting units, like changing kilometers to miles in a distance column.
Calculating the average score from multiple test score columns.
Syntax
Pandas
df['new_column'] = df['column1'] + df['column2']
df['new_column'] = df['column1'] - df['column2']
df['new_column'] = df['column1'] * df['column2']
df['new_column'] = df['column1'] / df['column2']

You can use +, -, *, / operators directly on pandas columns.

Make sure columns have numeric data to avoid errors.

Examples
Multiply quantity and price columns to get total cost.
Pandas
df['total'] = df['quantity'] * df['price']
Subtract start time from end time to find duration.
Pandas
df['difference'] = df['end'] - df['start']
Add multiple score columns to get total score.
Pandas
df['sum'] = df['score1'] + df['score2'] + df['score3']
Sample Program

This code creates a table with quantity, price, and discount columns. It calculates total price by multiplying quantity and price. Then it subtracts discount to get the final price.

Pandas
import pandas as pd

data = {
    'quantity': [2, 5, 3],
    'price': [10, 7, 12],
    'discount': [1, 0, 2]
}
df = pd.DataFrame(data)

# Calculate total price without discount
df['total_price'] = df['quantity'] * df['price']

# Calculate final price after discount
df['final_price'] = df['total_price'] - df['discount']

print(df)
OutputSuccess
Important Notes

If columns have missing values, arithmetic operations may result in NaN.

You can chain operations, like (df['a'] + df['b']) * df['c'].

Summary

Arithmetic operations on columns help create new data from existing columns.

Use +, -, *, / operators directly on pandas columns.

Always check data types to avoid errors.

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