diff --git a/NthHighestSalary.py b/NthHighestSalary.py new file mode 100644 index 0000000..10d1b99 --- /dev/null +++ b/NthHighestSalary.py @@ -0,0 +1,16 @@ +''' +Pandas4 + +1 Problem 1 : Nth Highest Salary (https://leetcode.com/problems/nth-highest-salary/solution/) +''' + +import pandas as pd + +def nth_highest_salary(employee: pd.DataFrame, N: int) -> pd.DataFrame: + employee = employee.drop_duplicates(subset = 'salary') + employee['rnk'] = employee['salary'].rank(method='dense', ascending=False) + ans = employee[employee.rnk==N][['salary']] + if not len(ans): + return pd.DataFrame({f'getNthHighestSalary({N})':[None]}) + ans = ans.rename(columns={'salary':f'getNthHighestSalary({N})'}) + return ans \ No newline at end of file diff --git a/SecondHighestSalary.py b/SecondHighestSalary.py new file mode 100644 index 0000000..0657680 --- /dev/null +++ b/SecondHighestSalary.py @@ -0,0 +1,16 @@ +''' +2 Problem 2 : Second Highest Salary ( https://leetcode.com/problems/second-highest-salary/ ) +''' + +import numpy as np +import pandas as pd + +def second_highest_salary(employee: pd.DataFrame) -> pd.DataFrame: + employee = employee.drop_duplicates(subset = 'salary') + if len(employee['salary'].unique())<2: + return pd.DataFrame({'SecondHighestSalary':[np.NaN]}) + + employee['rnk'] = employee['salary'].rank(method='dense', ascending=False) + ans = employee[employee.rnk==2][['salary']] + ans = ans.rename(columns={'salary':'SecondHighestSalary'}) + return ans \ No newline at end of file