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:
- Introducción a Pyjanitor
- Limpieza de datos con Pyjanitor
- Transformación de datos con Pyjanitor
- 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:
- 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.
- 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.
- 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.
- 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.
- Agregación de datos: Ayuda a crear resúmenes de datos utilizando funciones como
groupby
yagg
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
Deja una respuesta