查询 Employee 表中第 n 高的工资。如果没有第 n 个最高工资,查询结果应该为 null 。
import pandas as pd
def nth_highest_salary(employee: pd.DataFrame, N: int) -> pd.DataFrame:
employee = employee.sort_values(by='salary',ascending=False)#降序排列
employee = employee.drop_duplicates(subset='salary')
if N<=0:#考虑输入N为负数
return pd.DataFrame({f'getNthHighestSalary({N})': [None]})
elif employee.shape[0]>=N:
return pd.DataFrame({f"getNthHighestSalary({N})":[int(employee.iloc[N-1]['salary'])]})
else:
return pd.DataFrame({f'getNthHighestSalary({N})': [None]})