↓ Skip to main content
  1. Science/
  2. Computer/

0177.Nth Highest Salary

Solution

import pandas as pd
import numpy as np

def nth_highest_salary(employee: pd.DataFrame, N: int) -> pd.DataFrame:
    if N < 1:
        return pd.DataFrame({"getNthHighestSalary(" + str(N) + ")": [None]})
    unique_salaries = employee.salary.unique()
    if len(unique_salaries) < N:
        return pd.DataFrame([np.NaN], columns=[f"getNthHighestSalary({N})"])
    else:
        salary = sorted(unique_salaries, reverse=True)[N - 1]
        return pd.DataFrame([salary], columns=[f"getNthHighestSalary({N})"])

if __name__ == "__main__":
    df = pd.DataFrame({"id":[1,2,3],"salary":[100,200,300]})
    print(nth_highest_salary(df,2))
    print(nth_highest_salary(df,4))
    print(nth_highest_salary(df,0))