Codificación eficiente en ciencia de datos fácil depuración de operaciones encadenadas en Pandas

Codificación eficiente y fácil depuración de operaciones encadenadas en Pandas en la ciencia de datos

PROGRAMACIÓN EN PYTHON

Cómo inspeccionar marcos de datos de Pandas en operaciones encadenadas sin romper la cadena en declaraciones separadas

Depurar operaciones de Pandas encadenadas sin romper la cadena es posible. Foto de Miltiadis Fragkidis en Unsplash

Depurar está en el corazón de la programación. Escribí sobre esto en el siguiente artículo:

¿Bugs en Python? ¡Pdb Al Rescate!

¿Vale la pena aprender y usar el depurador Pdb?

towardsdatascience.com

Esta afirmación es bastante general y no depende del lenguaje ni de un marco de trabajo específico. Cuando usas Python para análisis de datos, necesitas depurar código independientemente de si estás realizando análisis de datos complejos, escribiendo un producto de software de aprendizaje automático o creando una aplicación Streamlit o Django.

Este artículo discute cómo depurar código de Pandas, o más bien un escenario específico de depuración de código de Pandas en el que las operaciones están encadenadas en una tubería. Esta depuración plantea un problema desafiante. Cuando no sabes cómo hacerlo, las operaciones encadenadas de Pandas parecen ser mucho más difíciles de depurar que el código regular de Pandas, es decir, las operaciones individuales de Pandas utilizando la asignación típica con corchetes.

Para depurar código regular de Pandas utilizando la asignación típica con corchetes, es suficiente agregar un punto de interrupción de Python y utilizar el depurador interactivo pdb. Sería algo como esto:

>>> d = pd.DataFrame(dict(...     x=[1, 2, 2, 3, 4],...     y=[.2, .34, 2.3, .11, .101],...     group=["a", "a", "b", "b", "b"].. ))>>> d["xy"] = d.x + d.y>>> breakpoint()>>> d = d[d.group == "a"]

Desafortunadamente, no puedes hacer eso cuando el código consiste en operaciones encadenadas, como aquí:

>>> d = d.assign(xy=lambda df: df.x + df.y).query("group == 'a'")

o, dependiendo de tu preferencia, aquí:

>>> d = d.assign(xy=d.x + d.y).query("group == 'a'")

En este caso, no hay un lugar para detenerse y ver el código, solo puedes hacerlo antes o después de la cadena. Por lo tanto, una de las soluciones es dividir la cadena principal en dos subcadenas (dos tuberías) en un…

We will continue to update Zepes; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

Inteligencia Artificial

Kinara presenta el procesador Ara-2 revolucionando el procesamiento de IA en dispositivos para un rendimiento mejorado

Kinara, una entidad pionera en inteligencia artificial energéticamente eficiente en el dispositivo, ha presentado su ...

Inteligencia Artificial

Investigadores cultivan matrices precisas de nanoLEDs

Una nueva técnica produce nanocristales de perovskita justo donde se necesitan, para que los materiales extremadament...

Ciencia de Datos

Uniéndose a la lucha contra el sesgo en la atención médica

Leo Anthony Celi invita a la industria a ampliar su enfoque en la recolección y análisis de datos clínicos para todas...

Inteligencia Artificial

Las 10 principales startups de IA generativa en el mundo

Introducción La inteligencia artificial generativa está atrayendo la curiosidad de personas de todo el mundo. Los per...

Inteligencia Artificial

Cómo los científicos están descifrando códigos históricos para revelar secretos perdidos

El proyecto DECRYPT, una colaboración entre lingüistas y científicos de la computación, tiene como objetivo automatiz...