diff --git a/Problem1_NHighestSalary.py b/Problem1_NHighestSalary.py new file mode 100644 index 0000000..e5439f6 --- /dev/null +++ b/Problem1_NHighestSalary.py @@ -0,0 +1,23 @@ +import pandas as pd + +#Soln1 With pandas +def nth_highest_salary(employee: pd.DataFrame, N: int) -> pd.DataFrame: + 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})'}) # type: ignore + +#soln2: Without Pandas + result_set = set() + for i in range(len(employee)): + salary = employee['salary'][i] + result_set.add(salary) + + result = list(result_set) + 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]]}) \ No newline at end of file diff --git a/Problem2_SecondHighestSalary.py b/Problem2_SecondHighestSalary.py new file mode 100644 index 0000000..1b10c2a --- /dev/null +++ b/Problem2_SecondHighestSalary.py @@ -0,0 +1,8 @@ +import pandas as pd + +def second_highest_salary(employee: pd.DataFrame) -> pd.DataFrame: + df=employee[['salary']].drop_duplicates() + if len(df)<2 : + return pd.DataFrame({'SecondHighestSalary':[None]}) + + return df.sort_values('salary',ascending=False).head(2).tail(1)[['salary']].rename(columns={'salary':'SecondHighestSalary'}) # type: ignore \ No newline at end of file