Dados Ausentes no pandas: isna, fillna e dropna resolve um problema recorrente em projetos Python: Meça a ausência e aplique uma regra de negócio específica para cada coluna. Este guia mostra o mecanismo, um exemplo executável e os limites que evitam uma implementação frágil.

Conceito e caso de uso

pandas representa ausência de formas diferentes conforme o dtype, incluindo NaN, NaT e pd.NA. Comece com isna e um perfil por coluna antes de apagar ou preencher.

Para revisar os fundamentos relacionados, consulte também o guia completo de pandas. A integração fica mais simples quando cada função recebe dependências e dados explicitamente, em vez de depender de estado global.

Exemplo prático

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()

Remova linhas somente quando uma chave essencial faltar. Para outras colunas, escolha mediana, categoria explícita, forward fill ou nenhuma imputação conforme o significado do dado.

Decisões importantes

A escolha correta depende do contrato público, do volume e do comportamento em caso de falha.

Considere como a solução se comporta sob concorrência, entradas vazias e falhas parciais. Documente qualquer limite que afete consumidores e mantenha nomes que expressem a intenção.

Erros comuns

O exemplo mínimo não substitui limites, tratamento de erros e observabilidade. Preencher tudo com zero mistura inexistência, desconhecimento e valor real. dropna sem subset pode excluir linhas úteis por causa de uma coluna secundária.

Evite capturar exceções sem contexto ou retornar resultados parciais como se fossem completos. Uma falha explícita costuma ser mais segura que dados silenciosamente incorretos.

Como validar

Valide o comportamento, não apenas a linha feliz. Compare quantidade de linhas e distribuição antes e depois, preserve uma coluna indicadora quando a ausência for informativa e teste os dtypes resultantes.

A documentação oficial, consultada em 28 de julho de 2026, detalha a API e deve ser a referência para mudanças futuras.