Limpieza de Datos en Python con Pandas
Clase 11 de 24 • Curso de ETL e ingesta de datos con Python
Resumen
¿Cómo limpiar datos en Python de manera efectiva?
La limpieza de datos es un paso crucial en el análisis de datos. Permite no solo garantizar la calidad y precisión de los análisis subsecuentes, sino que también puede prevenir errores en algoritmos y modelos predictivos. Usar Python y la librería Pandas ofrece herramientas poderosas que facilitan este proceso. A continuación, exploraremos diversas técnicas y métodos para llevar a cabo una limpieza eficiente de datos.
¿Cómo manejar valores nulos en un DataFrame?
Al analizar datos, es común encontrarse con valores nulos o "mising". Estos pueden tratarse de distintas maneras:
- Detección: Utiliza
isnull()
para identificar valores nulos en cada columna. Posteriormente, con.sum()
, se puede contar cuántos valores nulos existen por columna.
valores_nulos = df.isnull().sum()
- Eliminación: Con
dropna()
, eliminamos filas que contengan valores nulos. Aunque eficaz, puede no siempre ser lo ideal si se pierden datos valiosos.
df_limpio = df.dropna()
- Imputación: Se refiere a llenar valores nulos con un dato específico. Por ejemplo, podríamos usar
fillna()
para imputar ceros en variables numéricas o colocar "desconocido" en una columna de texto.
df_rellenado = df.fillna({'salario': 0, 'nombre': 'desconocido'})
¿Cómo corregir errores en los tipos de datos?
Una tarea habitual en la limpieza de datos es asegurar que cada columna tenga el tipo de dato correcto. Esto se puede lograr fácilmente con Pandas:
- Convertir a numérico:
to_numeric()
transforma columnas en números, útil cuando datos se almacenan como texto.
df['edad'] = pd.to_numeric(df['edad'], errors='coerce')
- Transformaciones estadísticas para imputación: Más allá de simples constantes, podemos usar métodos estadísticos como la media para la imputación.
df['salario'].fillna(df['salario'].mean(), inplace=True)
¿Cómo transformar variables categóricas?
Frecuentemente es necesario convertir variables categóricas a numéricas, especialmente al prepararlas para modelos de aprendizaje automático:
- Mapeo binario: Con
map()
es posible transformar variables binarias, como género, a 0 y 1, facilitando su uso en modelos.
df['género'] = df['género'].map({'femenino': 0, 'masculino': 1})
- Variables ficticias:
get_dummies()
genera columnas binarias para cada categoría de una variable. Al usarlo, el parámetrodrop_first=True
ayuda a evitar redundancias.
df_dummies = pd.get_dummies(df['departamento'], drop_first=True)
¿Cómo manejar variables categóricas no binarias?
Manejar categorías no binarias introduce complejidad, pero también brinda más información. Por ejemplo, al tratar con géneros no binarios podríamos:
-
Ampliar categorías en mapeo: Ajustar
map()
para incluir más categorías. -
Uso de variables ficticias:
get_dummies()
permite incluir múltiples categorías sin perder información.
Recomendaciones para mejoras prácticas
- Antes de eliminar datos, considera el impacto en los análisis.
- Imputa con métodos estadísticos cuando sea posible para mantener integridad en datos.
- Revisa valores tipo datos después de conversiones usando
.info()
.
En definitiva, estos métodos proveen las bases necesarias para una limpieza de datos efectiva. Viajar por el mundo de los datos bien preparados no solo incrementará la eficiencia de tus análisis, sino que también te permitirá sacar conclusiones más precisas y significativas. Este es solo el comienzo, sigue explorando y perfeccionando tus habilidades con prácticas y nuevos desafíos.