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
33 changes: 33 additions & 0 deletions Problem 1: Nth Highest Salary
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
import pandas as pd

def nth_highest_salary(employee: pd.DataFrame, N: int) -> pd.DataFrame:
#Using Pandas
df = employee[['salary']].drop_duplicates()
if N > len(df) or N<=0:
return pd.DataFrame({f'getNthHighestSalary({N})' : [None]})
return df.sort_values('salary', ascending = False).head(N).tail(1)[['salary']].rename(columns = {'salary': f'getNthHighestSalary({N})'})

#Using Python
result = []
for i in range(len(employee)):
salary = employee['salary'][i]
if salary not in result:
result.append(salary)
result.sort(reverse = True)
if N > len(result) or N <= 0:
return pd.DataFrame ({f'getNthHighestSalary({N})' : [None]})
return pd.DataFrame({f'getNthHighestSalary({N})' : [result[N-1]]})

#Using Set
result_set = set()
for i in range(len(employee)):
salary = employee['salary'][i]
result_set.add(salary)
result = []
for element in result_set:
result.append(element)
result.sort(reverse = True)
if N > len(result) or N <= 0:
return pd.DataFrame ({f'getNthHighestSalary({N})' : [None]})
return pd.DataFrame({f'getNthHighestSalary({N})' : [result[N-1]]})

25 changes: 25 additions & 0 deletions Problem 2: Second Highest Salary
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
import pandas as pd

def second_highest_salary(employee: pd.DataFrame) -> pd.DataFrame:
all_salaries = set()
for i in range(len(employee)):
salary = employee ['salary'][i]
all_salaries.add(salary)
result = []
for salary in all_salaries:
result.append(salary)
result.sort(reverse = True)
if len(result)<2:
return pd.DataFrame([None], columns = ['SecondHighestSalary'])
return pd.DataFrame([result[1]], columns = ['SecondHighestSalary'])

#Using Pandas
employee = employee.drop_duplicates(['salary'])
if len(employee) < 2:
return pd.DataFrame({'SecondHighestSalary' : [np.NaN]})
employee.sort_values(by=['salary'], ascending = False, inplace= True)
employee.drop('id', axis = 1, inplace= True)
employee.rename(columns = {'salary': 'SecondHighestSalary'}, inplace= True)
return employee.head(2).tail(1)