From 7966fdc43a252b7317ec32f7e15dfb8fbb6c938a Mon Sep 17 00:00:00 2001 From: Kaaviya Varrshini Date: Sat, 14 Jun 2025 21:15:09 -0400 Subject: [PATCH] Done Pandas3 --- Problem1_Bonus.py | 19 +++++++++++++++++++ Problem2_FixNames.py | 10 ++++++++++ Problem3_PatientCondition.py | 18 ++++++++++++++++++ 3 files changed, 47 insertions(+) create mode 100644 Problem1_Bonus.py create mode 100644 Problem2_FixNames.py create mode 100644 Problem3_PatientCondition.py diff --git a/Problem1_Bonus.py b/Problem1_Bonus.py new file mode 100644 index 0000000..4858a2b --- /dev/null +++ b/Problem1_Bonus.py @@ -0,0 +1,19 @@ +import pandas as pd + +#Soln1 : Using Loop +def calculate_special_bonus(employees: pd.DataFrame) -> pd.DataFrame: + result=[] + for i in range(len(employees)): + salary=employees['salary'][i] + id=employees['employee_id'][i] + name=employees['name'][i] + if (id %2 !=0)and (name[0]!='M'): + bonus=salary + else: + bonus=0 + result.append([id,bonus]) + return pd.DataFrame(result,columns=['employee_id','bonus']).sort_values(by='employee_id') + +#Soln2 Using where + employees['bonus']=employees['salary'].where((employees['employee_id']%2!=0) & (~employees['name'].str.startswith('M')),0) + return employees[['employee_id','bonus']].sort_values(by='employee_id') \ No newline at end of file diff --git a/Problem2_FixNames.py b/Problem2_FixNames.py new file mode 100644 index 0000000..cfd9631 --- /dev/null +++ b/Problem2_FixNames.py @@ -0,0 +1,10 @@ +import pandas as pd + +#Sol1: Using Capitalize +def fix_names(users: pd.DataFrame) -> pd.DataFrame: + users['name']=users['name'].str.capitalize() + return users.sort_values(by='user_id') + +#soln2: Using upper,lower + 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/Problem3_PatientCondition.py b/Problem3_PatientCondition.py new file mode 100644 index 0000000..a14cc8f --- /dev/null +++ b/Problem3_PatientCondition.py @@ -0,0 +1,18 @@ +import pandas as pd + +#Soln 1 Using str functions +def find_patients(patients: pd.DataFrame) -> pd.DataFrame: + df=patients[(patients['conditions'].str.startswith('DIAB1'))|(patients['conditions'].str.contains(' DIAB1'))] + return pd.DataFrame(df) + +#soln 2 Using Loop + result=[] + for i in range(len(patients)): + p_id=patients['patient_id'][i] + p_name=patients['patient_name'][i] + condns=patients['conditions'][i] + for condn in condns.split(): + if condn.str.startswith('DIAB1'): + result.append([p_id,p_name,condns]) + break + return pd.DataFrame(result,columns=['patient_id','patient_name','conditions'])