1. ¿Para qué sirve esto?
Imagínate que eres un ingeniero en una fábrica de datos. Necesitas analizar y organizar la materia prima (datos) para obtener un producto terminado (insights, reportes). Sin limpieza ni formateo, tus datos serían como un montón de piezas desordenadas, difícil de ensamblar en algo útil.
Los datos limpios y formateados no solo son una cuestión de estética y legibilidad, sino también una condición importante para un análisis correcto y la construcción de modelos. Los datos mal procesados pueden llevarte a conclusiones erróneas, y nadie quiere estar en la situación en la que al final del día descubres que calculaste la edad promedio de los empleados no en años, sino en pequeños fragmentos de datos.
Principales tareas de formateo
Antes de entrar al código, vamos a repasar qué problemas queremos evitar y resolver mediante el formateo:
- Eliminación de filas y columnas vacías: Son como bolsillos vacíos: no aportan nada, pero pueden ser engañosos.
- Eliminación de duplicados: Los registros repetidos generan ruido en nuestros datos.
- Relleno de valores faltantes: Como agujeros en el queso, que a veces vale la pena rellenar con algo rico.
- Conversión de tipos de datos: Es importante asegurarse de que la edad es un número, no un texto. Para no confundir la edad real con "25 años de experiencia", escrito entre comillas.
2. Herramientas para limpiar y formatear datos
Ahora que sabemos por qué es necesario, echemos un vistazo a las herramientas que nos ayudarán en esto, como una navaja suiza en una excursión:
-
Eliminar valores vacíos:
dropna()
-
Trabajar con duplicados:
duplicated()
ydrop_duplicates()
- Rellenar valores faltantes:
fillna()
-
Conversión de tipos de datos:
astype()
Eliminar valores vacíos
Los valores vacíos son esas cosas que siempre aparecen en el momento menos oportuno. Con dropna()
podemos deshacernos de ellos como de viejos calcetines inútiles. Veamos un ejemplo:
import pandas as pd
# Creamos un DataFrame con valores faltantes
data = {'Nombre': ['Anna', 'Iván', None, 'María'],
'Edad': [29, None, 34, 23],
'Ciudad': ['Moscú', 'San Petersburgo', 'Novosibirsk', None]}
df = pd.DataFrame(data)
# Eliminamos las filas con cualquier valor NaN
cleaned_df = df.dropna()
print(cleaned_df)
Este código eliminará todas las filas que contengan al menos un valor vacío.
Trabajar con duplicados
A veces, en tus datos aparecen duplicados, como en un juego de "Encuentra las diferencias" donde no hay ninguna. Podemos filtrar estos registros usando drop_duplicates()
.
# Creamos un DataFrame con duplicados
data = {'Nombre': ['Anna', 'Iván', 'Anna', 'María'],
'Edad': [29, 34, 29, 23]}
df = pd.DataFrame(data)
# Eliminamos duplicados
unique_df = df.drop_duplicates()
print(unique_df)
Rellenar valores faltantes
Rellenar valores faltantes puede hacerse de varias formas, por ejemplo, con el valor promedio o incluso con un valor fijo. El método fillna()
te ayudará en esto:
# Rellenamos los valores faltantes en 'Edad' con el promedio de la columna
df['Edad'] = df['Edad'].fillna(df['Edad'].mean())
print(df)
Conversión de tipos de datos
Convertir datos a veces es necesario para no caer en la trampa de valores textuales donde se espera números:
# Convertimos el tipo de dato de la columna 'Edad' a entero
df['Edad'] = df['Edad'].astype(int)
print(df)
3. Aplicación práctica: limpieza de un conjunto de datos real
Probemos limpiar y formatear un conjunto de datos real para reportes. Tomemos, por ejemplo, un archivo Excel hipotético con información de ventas.
# Cargar datos desde Excel
filename = "sales_data.xlsx"
df = pd.read_excel(filename)
# Eliminar filas con valores faltantes en cualquier columna
df = df.dropna()
# Eliminar registros duplicados
df = df.drop_duplicates()
# Rellenar valores faltantes en la columna 'Ventas' con el promedio de esa columna
df['Ventas'] = df['Ventas'].fillna(df['Ventas'].mean())
# Conversión de tipos de datos
df['Código del producto'] = df['Código del producto'].astype(str)
# Guardar los datos formateados de vuelta en Excel
df.to_excel("cleaned_sales_data.xlsx", index=False)
Como resultado, tendremos un archivo Excel limpio y ordenado, listo para el análisis y la creación de reportes.
4. Errores comunes al limpiar datos
Al igual que al reparar electrónica, siempre hay algo que podría salir mal con los datos. Aquí hay algunos errores comunes que deberías evitar.
Eliminar información útil junto con duplicados. A veces, los duplicados pueden ser una señal de errores en los datos, y vale la pena investigar su origen. No confundas los tipos de datos. A veces parece que convertir a otro formato es fácil, pero puede provocar pérdida de datos si no verificas que la conversión sea adecuada.
Siguiendo estos consejos y los pasos propuestos, podrás trabajar con datos fácilmente y con gusto, incluso si inicialmente parecen una pesadilla para un analista. Y recuerda, los datos, al igual que tu código, ¡deben estar limpios!
GO TO FULL VERSION