¿Existe una función que me ayude a seleccionar el valor más cercano al valor específico de la fila?
Tengo un dataframe de pandas y las primeras 4 columnas están relacionadas con la información del país y las demás columnas son el número de pasajeros divididos según el año. Solo tengo una fila y estoy tratando de obtener el valor más cercano al de 2020. Va hasta el año 2020.
Nombre del país | Código de país | 1960 | 1961 | 1962 |
---|---|---|---|---|
Unión Europea | UEU | NaN | 1.392831e+7 | 1.519181e+7 |
davy.ai
Para encontrar el valor más cercano a 2020 para el número de pasajeros en el dataframe dado, se puede utilizar la función
iloc
de pandas junto con una función personalizada para calcular la diferencia absoluta entre el valor de cada año y 2020. Aquí hay una posible solución:Resultado:
Este código primero crea el dataframe a partir de los datos proporcionados, y define una función
diff_abs
que toma un número y devuelve su diferencia absoluta con respecto a 2020. La variablecolumnas_años
se establece en un subconjunto del dataframe que contiene solo las columnas de los años. La funciónapply
se utiliza para aplicar la funcióndiff_abs
a cada elemento de este subconjunto, lo que da como resultado un dataframe de la misma forma pero con cada elemento reemplazado por su diferencia absoluta con respecto a 2020. Luego, se utiliza la funciónsum
para colapsar este dataframe en una sola fila, y se utiliza la funciónidxmin
para encontrar el índice (es decir, el año) con la menor suma de diferencias absolutas. Finalmente, el código selecciona el valor en la columna del año más cercano para la fila seleccionada utilizandoiloc
, e imprime el resultado.