diff --git a/S30_Pandas_03.py b/S30_Pandas_03.py new file mode 100644 index 0000000..20ec5fc --- /dev/null +++ b/S30_Pandas_03.py @@ -0,0 +1,63 @@ +#Pandas_03 + +# 1873. Calculate Special Bonus_Solution_Q1 + +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(by= 'employee_id') + +#Alternative1 + +import pandas as pd + +def calculate_special_bonus(employees: pd.DataFrame) -> pd.DataFrame: + + for i in range(len(employees)): + e_id= employees['employee_id'][i] + name= employees['name'][i] + if (e_id %2 == 0) or (name[0]=='M'): + employees['salary'][i]=0 + df = employees[['employee_id', 'salary']] + return df.rename(columns ={'salary': 'bonus'}).sort_values(by =['employee_id']) + +______________________________________________________________________________________________________________________________________ + +# 1667. Fix Names in a Table_Solution_Q2 + +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']) + +______________________________________________________________________________________________________________________________________ + +# 1527. Patients With a Condition_Solution_Q3 + +import pandas as pd +def find_patients(patients: pd.DataFrame) -> pd.DataFrame: + return patients[patients["conditions"].str.startswith("DIAB1") | patients["conditions"].str.contains(" DIAB1", regex=False)] + +#Alternative1 + +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'])