Python

Uso de Eval en Pandas para analizar datos de forma sencilla

El método eval() de los DataFrames de Pandas permite indicar mediante una cadena de texto las operaciones que se desean realizar sobre las columnas del conjunto de datos. Con un funcionamiento similar al de método query(). Pudiendo combinar ambos para llevar a cabo operaciones complejas sobre los datos de los DataFrames de una forma relativamente sencilla. Veamos algunos de los usos de eval en Pandas para simplificar los procesos de análisis de datos.

Uso del método eval en Pandas

Los DataFrame de Pandas cuentan con el método eval() para indicar operaciones que se deben realizar sobre las columnas. El método recibe como parámetro obligatorio una cadena de texto con las operaciones a realizar y devuelve como salida un objeto con el resultado. Aunque, opcionalmente, se puede indicar que los resultados los guarda en el propio objeto mediante el parámetro inplace.

Uno de los usos más básicos de eval() puede ser la obtención de estadísticos básicos de los datos. Por ejemplo, el máximo y mínimo de una columna. Para ello se debe indicar en la cadena de texto el nombre de la columna, punto y la función. Pudiendo indicar tantas operaciones como se desee. Esto se puede ver en el siguiente ejemplo en el que se cargan los datos de exoplanetas de Seaborn y se obtienen los valores máximo y mínimo del periodo orbital.

import numpy as np
import pandas as pd
import seaborn as sb

planets = sb.load_dataset('planets')

planets.eval("orbital_period.max(), orbital_period.min()")
array([730000.0, 0.09070629], dtype=object)

Lo que sería equivalente a realizar la siguiente operación.

[max(planets.orbital_period), min(planets.orbital_period)]

Concatenación de métodos para realizar análisis complejos

Quizás el ejemplo anterior no sea una gran ventaja respecto a realizar los análisis normalmente en Python. Pero si se combinan varias instrucciones se pueden realizar análisis complejos de una forma más sencilla. Por ejemplo, los datos de periodos orbital están en días, pero si se desea realizar el análisis en horas solamente hay que multiplicar el valor por 24, lo que se puede hacer usando el método eval.

planets.eval("orbital_period = orbital_period * 24")

Ahora, si se combina esto con la operación anterior, se puede obtener los resultados en días.

planets.eval("orbital_period = orbital_period * 24").eval("orbital_period.max(), orbital_period.min()")
array([17520000.0, 2.17695096], dtype=object)

Uso conjunto con el método query()

Combinando lo visto hasta ahora con query, se puede realizar operaciones más complejas aún. Por ejemplo, realizar el análisis solamente para los datos que cumplen un criterio. Como en el siguiente ejemplo en el que se obtienen los máximos y mínimos para los planetas descubiertos en 2010 con una masa mayor que 0.05.

planets.query('year == 2010 and mass > 0.05').eval("orbital_period.max(), orbital_period.min()")
array([5584.0, 6.495], dtype=object)

Conclusiones

Se han visto algunas de las opciones que ofrece el método eval en Pandas. Un método que combinado con nuestra imaginación permite realizar análisis complejos en un par de líneas, especialmente si se combina con otros métodos como query.

Imagen de yatsusimnetcojp en Pixabay

¿Te ha parecido de utilidad el contenido?

Daniel Rodríguez

Share
Published by
Daniel Rodríguez
Tags: Pandas

Recent Posts

WOE e IV: La Base Matemática del Credit Scoring

Cuando un banco evalúa una solicitud de crédito necesita responder a una pregunta aparentemente simple:…

20 horas ago

Lanzamiento de la versión 1.0 del laboratorio de Analytics Lane con nuevas herramientas de scoring

En el octavo aniversario de Analytics Lane seguimos ampliando nuestro laboratorio de aplicaciones interactivas y,…

3 días ago

¡Analytics Lane cumple ocho años!

Hoy, 2 de mayo de 2026, Analytics Lane cumple exactamente ocho años. Todo empezó con…

4 días ago

Analytics Lane lanza una Calculadora de Rentabilidad con Flujos Irregulares basada en TIR (XIRR)

La nueva herramienta permite calcular la rentabilidad real de inversiones con múltiples aportaciones, retiradas y…

4 días ago

Analytics Lane lanza un Conversor CSV ↔ JSON para transformar datos en tiempo real

Analytics Lane continúa ampliando su laboratorio de utilidades para desarrolladores y analistas de datos con…

5 días ago

Analytics Lane lanza un nuevo Formateador y Tester de Expresiones Regulares para desarrolladores

Analytics Lane continúa ampliando su laboratorio de herramientas para desarrolladores con el lanzamiento del Formateador…

5 días ago

This website uses cookies.