Datos Ausentes en pandas: isna, fillna y dropna resuelve un problema frecuente en proyectos Python: Mide la ausencia y aplica una regla de negocio adecuada para cada columna. Esta guía explica el mecanismo, presenta un ejemplo ejecutable y marca los límites que evitan una implementación frágil.
Concepto y caso de uso
pandas representa la ausencia de distintas formas según el dtype, como NaN, NaT y pd.NA. Empieza con isna y un perfil por columna antes de borrar o imputar.
Para repasar los fundamentos relacionados, consulta también la guía completa de pandas. La integración es más simple cuando cada función recibe dependencias y datos explícitamente en lugar de depender de estado global.
Ejemplo práctico
missing = df.isna().sum().sort_values(ascending=False)
clean = df.assign(
age=df["age"].fillna(df["age"].median()),
city=df["city"].astype("string").fillna("unknown"),
).dropna(subset=["customer_id"])
assert clean["customer_id"].notna().all()
Elimina filas solo cuando falte una clave esencial. Para otros campos, elige mediana, categoría explícita, forward fill o ninguna imputación según el significado.
Decisiones importantes
La elección correcta depende del contrato público, del volumen y del comportamiento ante fallos.
Considera concurrencia, entradas vacías y fallos parciales. Documenta cada límite que afecte a consumidores y usa nombres que expresen intención.
Errores frecuentes
El ejemplo mínimo no sustituye límites, manejo de errores y observabilidad. Rellenar todo con cero mezcla inexistencia, desconocimiento y un cero real. dropna sin subset puede descartar filas útiles por una columna secundaria.
Evita capturar excepciones sin contexto o devolver resultados parciales como si fueran completos. Un fallo explícito suele ser más seguro que datos silenciosamente incorrectos.
Cómo validar
Valida el comportamiento y no solo el camino feliz. Compara filas y distribuciones antes y después, conserva un indicador cuando la ausencia sea informativa y prueba los dtypes resultantes.