diff --git a/132_calculate_special_bonus.py b/132_calculate_special_bonus.py new file mode 100644 index 0000000..70d8193 --- /dev/null +++ b/132_calculate_special_bonus.py @@ -0,0 +1,9 @@ +# Create new column 'bonus' with if else condition such that 'bonus' == 'salary' if employee_id is even +# and the 'name' does not start with M. Sort the resulting df and return in ascending order of id. + +import pandas as pd + +def calculate_special_bonus(employees: pd.DataFrame) -> pd.DataFrame: + employees['bonus'] = employees.apply(lambda x: x['salary'] if x['employee_id']%2 and not \ + x['name'].startswith('M') else 0, axis=1) + return employees[['employee_id', 'bonus']].sort_values(by=['employee_id']) \ No newline at end of file diff --git a/133_fix_names_in_table.py b/133_fix_names_in_table.py new file mode 100644 index 0000000..ab09b61 --- /dev/null +++ b/133_fix_names_in_table.py @@ -0,0 +1,8 @@ +# Changed the 'name' by using the function 'str.capitalize()' and return the resulting df in ascending +# user_id. + +import pandas as pd + +def fix_names(users: pd.DataFrame) -> pd.DataFrame: + users['name'] = users['name'].str.capitalize() + return users.sort_values(by=['user_id']) \ No newline at end of file diff --git a/134_patients_with_condition.py b/134_patients_with_condition.py new file mode 100644 index 0000000..9f1995c --- /dev/null +++ b/134_patients_with_condition.py @@ -0,0 +1,10 @@ +# Since there are multiple conditions, we need to look for two things, conditions that startswith 'DIAB1' +# and conditions that contain ' DIAB1'. Note the "contain" has a blank space at the start for the spaces +# between words. + +import pandas as pd + +def find_patients(patients: pd.DataFrame) -> pd.DataFrame: + df = patients[(patients['conditions'].str.startswith('DIAB1')) | \ + (patients['conditions'].str.contains(' DIAB1'))] + return df \ No newline at end of file