Skip to main content

1873. Calculate Special Bonus

Pandas

import pandas as pd


def calculate_special_bonus(employees: pd.DataFrame) -> pd.DataFrame:
employees['bonus'] = (
(employees['employee_id'] % 2 == 1) & (~employees['name'].str.startswith('M'))
) * employees['salary']

employees = employees[['employee_id', 'bonus']] \
.sort_values(by='employee_id', ascending=1)

return employees

SQL

SELECT
employee_id,
case when employee_id % 2 = 1 AND name NOT LIKE 'M%'
THEN salary
ELSE 0 END AS bonus
FROM Employees
ORDER BY employee_id