Python

Introducción a Pyjanitor: Simplificando la limpieza y transformación de datos en Python

El proceso de limpieza y transformación de datos es una fase clave que se debe realizar antes de cualquier análisis en un proyecto de ciencia de datos. Siendo una fase clave para el éxito del proyecto. Generalmente, trabajar con datos desordenados o mal formateados es una tarea ardua que puede llegar a consumir mucho tiempo. Para solucionar esto existen bibliotecas como Pyjanitor que permiten simplificar las tareas de limpieza y transformación de datos.

En esta entrada se inicia una serie de cuatro publicaciones sobre los posibles usos de la biblioteca Pyjanitor. Las entradas de la serie son:

  1. Introducción a Pyjanitor
  2. Limpieza de datos con Pyjanitor
  3. Transformación de datos con Pyjanitor
  4. Visualización de datos con Pyjanitor y Matplotlib o Seaborn

¿Qué es Pyjanitor?

Pyjanitor es una biblioteca de Python diseñada para agilizar el trabajo en los conjuntos de datos de Pandas, la biblioteca de referencia para la manipulación de datos en Python. Ampliando las capacidades de Pandas. Pyjanitor proporciona una sintaxis simple para realizar operaciones comunes de limpieza y transformación de datos, similar a la del Tidyverse en R, con la que es posible realizar tareas complejas con menos código y de una manera más intuitiva.

Características clave de Pyjanitor

Pyjanitor ofrece una variedad de características para mejorar significativamente los flujos de trabajo a la hora de limpiar y transformar datos en Pandas:

  1. Nombres de las columnas: Simplifica el proceso de estandarización de los nombres de las columnas para facilitar la manipulación de datos procedentes de diferentes fuentes. Con Pyjanitor, se puede eliminar espacios en blanco, caracteres especiales o convertir los nombres de columnas a minúsculas o mayúsculas.
  2. Manipulación de índices: Facilita tareas como la reordenación, eliminación de duplicados o creación de nuevos índices a partir de columnas existentes. Pyjanitor permite manipular los índices de forma eficiente para adaptarlos a las necesidades de análisis.
  3. Tratamiento de valores nulos: Maneja los valores nulos que pueden existir en los conjuntos de datos de una forma sencilla. Incluyendo funciones que simplifican la eliminación de filas y el uso de estrategias avanzadas de imputación de datos. Pyjanitor ofrece flexibilidad en el manejo de valores nulos para garantizar la integridad de los análisis.
  4. Creación de nuevas columnas: Permite agregar nuevas columnas de forma eficiente utilizando funciones vectorizadas o transformaciones basadas en valores existentes. Pyjanitor simplifica la creación de nuevas columnas, lo que permite agregar información adicional a los conjuntos de datos con facilidad.
  5. Agregación de datos: Ayuda a crear resúmenes de datos utilizando funciones como groupby y agg para agregar estos en base a diferentes criterios. Pyjanitor facilita la agregación de datos, lo que permite obtener información en conjuntos de datos grandes y complejos.

Instalación de Pyjanitor

La forma más sencilla para la instalación de Pyjanitor en entorno de Python es usar el comando pip. Para ello solamente se debe ejecutar el siguiente comando en una terminal:

pip install pyjanitor

Ejemplo práctico: Análisis de los datos del Titanic

En esta primera entrada, para ilustrar cómo funciona Pyjanitor en la práctica, se puede utilizar un conjunto de datos clásico como los del Titanic. Este conjunto de datos contiene información sobre los pasajeros del famoso barco Titanic, incluyendo detalles como edad, género, clase de pasajero y si sobrevivieron o no. Para facilitar el seguimiento de los ejemplos, los datos se pueden cargar directamente desde una URL utilizando la biblioteca Pandas:

import pandas as pd

# URL del conjunto de datos del Titanic
url = 'https://raw.githubusercontent.com/datasciencedojo/datasets/master/titanic.csv'

# Cargar el conjunto de datos en un DataFrame
titanic = pd.read_csv(url)

# Mostrar el conjunto de datos
titanic.head()
   PassengerId  Survived  Pclass  \
0 1 0 3
1 2 1 1
2 3 1 3
3 4 1 1
4 5 0 3

Name Sex Age SibSp \
0 Braund, Mr. Owen Harris male 22.0 1
1 Cumings, Mrs. John Bradley (Florence Briggs Th... female 38.0 1
2 Heikkinen, Miss. Laina female 26.0 0
3 Futrelle, Mrs. Jacques Heath (Lily May Peel) female 35.0 1
4 Allen, Mr. William Henry male 35.0 0

Parch Ticket Fare Cabin Embarked
0 0 A/5 21171 7.2500 NaN S
1 0 PC 17599 71.2833 C85 C
2 0 STON/O2. 3101282 7.9250 NaN S
3 0 113803 53.1000 C123 S
4 0 373450 8.0500 NaN S

Una vez cargado el conjunto de datos, se puede analizar la tasa de supervivencia por género y clase con el siguiente código.

import janitor

# Limpiar nombres de columnas y calcular la tasa de supervivencia en una línea
survival_rate = (
    titanic.clean_names()
    .groupby(["sex", "pclass"])
    .agg(total_passengers=("survived", "count"), survived=("survived", "sum"))
    .assign(survival_rate=lambda x: x["survived"] / x["total_passengers"])
    .reset_index()
)

# Mostrar el resultado
survival_rate
      sex  pclass  total_passengers  survived  survival_rate
0 female 1 94 91 0.968085
1 female 2 76 70 0.921053
2 female 3 144 72 0.500000
3 male 1 122 45 0.368852
4 male 2 108 17 0.157407
5 male 3 347 47 0.135447

En este ejemplo, se puede ver como un análisis tan complejo se puede realizar encadenando varios métodos en el DataFrame de Pandas. Lo primero que se hace es limpiar los nombres de las columnas mediante el método clean_names(). A continuación, se agrupan los datos por género y clase utilizando la función groupby de Pandas. Una vez hecho esto se contabilizan mediante el método agg() cuántos pasajeros hay en cada grupo y el número que ha sobrevivido. Con esto, finalmente se calcula la tasa de supervivencia para cada grupo y agrega el resultado a la columna survival_rate.

Como se puede ver en el ejemplo, el uso de Pyjanitor, permite realizar fácilmente operaciones de limpieza y transformación de datos. Haciendo que los análisis de estos sean más sencillos.

Conclusiones

En esta entrada se han visto algunas de las principales ventajas que ofrece Pyjanitor para limpieza y transformación de datos en Python. Descubriendo algunas de sus características clave. Además, se ha mostrado como se puede realizar análisis complejos con un conjunto de datos real.

En la próxima entrada se explicará en detalle los métodos que ofrece Pyjanitor para la limpieza de datos en Python.

Imagen de Ryan McGuire en Pixabay

¿Te ha parecido de utilidad el contenido?

Daniel Rodríguez

Share
Published by
Daniel Rodríguez

Recent Posts

Data Lake y Data Warehouse: diferencias, usos y cómo se complementan en la era del dato

En la era del dato, las organizaciones se enfrentan al reto de gestionar volúmenes masivos…

2 días ago

Documentar tu API de Express con TypeScript usando OpenAPI (Swagger)

En la serie Creación de una API REST con Express y TypeScript construimos una API…

4 días ago

Curiosidad: El sesgo de supervivencia, o por qué prestar atención sólo a los que “llegaron” puede engañarte

Durante la Segunda Guerra Mundial, la Fuerza Aérea de Estados Unidos quería reforzar sus aviones…

1 semana ago

Cómo abrir una ventana de Chrome con tamaño y posición específicos desde la línea de comandos en Windows

En muchas situaciones —ya sea para grabar un tutorial, tomar capturas de pantalla profesionales, probar…

2 semanas ago

La Paradoja del Cumpleaños, o por qué no es tan raro compartir fecha de nacimiento

Imagínate en una sala con un grupo de personas, por ejemplo, en una oficina, un…

2 semanas ago

Programador de tareas de Windows: Guía definitiva para automatizar tu trabajo (BAT, PowerShell y Python)

En el trabajo diario con ordenadores, es común encontrarse con tareas repetitivas: realizar copias de…

3 semanas ago

This website uses cookies.