Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions Problem1_Bonus.py
Original file line number Diff line number Diff line change
@@ -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')
10 changes: 10 additions & 0 deletions Problem2_FixNames.py
Original file line number Diff line number Diff line change
@@ -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')
18 changes: 18 additions & 0 deletions Problem3_PatientCondition.py
Original file line number Diff line number Diff line change
@@ -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'])