diff --git a/Problem 1 Calculate Special Bonus.py b/Problem 1 Calculate Special Bonus.py new file mode 100644 index 0000000..2f2abc2 --- /dev/null +++ b/Problem 1 Calculate Special Bonus.py @@ -0,0 +1,27 @@ +#1873. Calculate Special bonus + +#Method 1: Through Python +import pandas as pd + +def calculate_special_bonus(employees: pd.DataFrame) -> pd.DataFrame: + result = [] + for i in range(len(employees)): + e_id = employees['employee_id'][i] + name = employees['name'][i] + if (e_id % 2 !=0) and (name[0])!='M': + result.append([e_id,employees['salary'][i]]) + else: + result.append([e_id,0]) + return pd.DataFrame(result,columns = ['employee_id','bonus']).sort_values('employee_id') + + +#Method 2 + + +def calculate_special_bonus(employees: pd.DataFrame) -> pd.DataFrame: + df = employees.copy() + df['bonus'] = df.apply( + lambda row: row['salary'] if row['employee_id'] % 2 != 0 and row['name'][0] != 'M' else 0, + axis=1 + ) + return df[['employee_id','bonus']].sort_values('employee_id') diff --git a/Problem 2 Fix Names in a Table.py b/Problem 2 Fix Names in a Table.py new file mode 100644 index 0000000..d6e775a --- /dev/null +++ b/Problem 2 Fix Names in a Table.py @@ -0,0 +1,7 @@ +#1667 Fix Names in a table + +import pandas as pd + +def fix_names(users: pd.DataFrame) -> pd.DataFrame: + users['name'] = users['name'].str[0].str.upper()+users['name'].str[1:].str.lower() + return users.sort_values(by=['user_id']) \ No newline at end of file diff --git a/Problem 3 Patients with a condition.py b/Problem 3 Patients with a condition.py new file mode 100644 index 0000000..8923e09 --- /dev/null +++ b/Problem 3 Patients with a condition.py @@ -0,0 +1,14 @@ +import pandas as pd + +def find_patients(patients: pd.DataFrame) -> pd.DataFrame: + result = [] + for i in range(len(patients)): + p_id = patients['patient_id'][i] + p_name = patients['patient_name'][i] + conditions = patients['conditions'][i] + for condition in conditions.split(): + if condition.startswith('DIAB1'): + result.append([p_id,p_name,conditions]) + + return pd.DataFrame(result, columns =['patient_id','patient_name','conditions']) + \ No newline at end of file