¿Cómo mapear datos en una serie de Pandas?

…para obtener nuevas series de datos derivadas de una serie original.

Muchas veces, cuando usamos pandas, tenemos una serie de datos a la que le aplicamos una transformación. En muchos casos, esa transformación puede ser aplicarle una función. Por ejemplo, tengo una serie de datos de temperatura en grados Farenheit y la quiero transformar a grados Celsius. Podría aplicar algo como lo siguiente:

El anterior DataFrame se vería así:

Esto está muy bien pero no siempre es lo que necesitamos porque no siempre tenemos una función que defina la transformación que necesitamos hacer de forma sencilla. Por ejemplo, podemos hacer un experimento del cual derivamos una Look-up table que nos permite transformar valores o podemos obtener esta Look-up Table de un artículo.

Como alternativa podemos usar un diccionario que haga un mapeo de los valores de la serie original a la serie que deseeamos obtener.

Un ejemplo (sin mucho sentido) de esto podría ser:

Y el anterior DataFrame se vería ahora así:

¿Qué pasaría si parte de los datos no estuvieran definidos en la transformación, estuvieran fuera de rango,etc? pandas nos lo pone fácil ya que nos permite usar un diccionario que defina un método __missing__ (nuestra propia subclase de un diccionario). Por ejemplo, imaginemos que no tenemos valores definidos para los valores de partida superiores a 50𝐹 o que a partir de ese valor deberíamos considerarlos como constantes. Lo podríamos hacer así de la siguiente forma donde los valores por encima de 50𝐹 les doy un valor de -999 y a los que están por debajo les damos un valor aleatorio (valor sin sentido):

Y el resultado del anterior DataFrame se vería:

Y eso es todo, un artículo sencillo sobre una funcionalidad de pandas que no es nueva. El otro día me hizo falta y me he decidido a escribir sobre ello.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

sixty six − = fifty eight