Segundo Salario Más Alto
Escribe una solución para encontrar el segundo salario más alto de la tabla Employee. Si no existe un segundo salario más alto, regresa null (return None en Pandas).
Tabla: Employee
+-------------+------+
| Column Name | Type |
+-------------+------+
| id | int |
| salary | int |
+-------------+------+
- `id` es la llave primaria (columna con valores únicos) para esta tabla.
- Cada fila de esta tabla contiene información del salario de un empleado.
El formato del resultado se muestra en el siguiente ejemplo.
Ejemplo 1:
Entrada:
Tabla Employee:
+----+--------+
| id | salary |
+----+--------+
| 1 | 100 |
| 2 | 200 |
| 3 | 300 |
+----+--------+
Salida:
+---------------------+
| SecondHighestSalary |
+---------------------+
| 200 |
+---------------------+
Ejemplo 2:
Entrada:
Tabla Employee:
+----+--------+
| id | salary |
+----+--------+
| 1 | 100 |
+----+--------+
Salida:
+---------------------+
| SecondHighestSalary |
+---------------------+
| null |
+---------------------+
Solución:
import numpy as np
import pandas as pd
def second_highest_salary(employee: pd.DataFrame) -> pd.DataFrame:
col_name = 'SecondHighestSalary'
salaries = employee['salary'].drop_duplicates()
two_highest = salaries.nlargest(2).reset_index()
try:
second = two_highest.loc[1] # Second highest salary
return pd.DataFrame(
[[second['salary']]], columns=[col_name]
).astype({col_name: 'int64'})
except KeyError:
return pd.DataFrame({col_name: [np.nan]})