Um stakeholder solicita dados de usuários ativos mensais e retenção por categoria de plano, com base em uma exportação de uso de um produto SaaS referente ao período de 01/01/2025 a 30/06/2025. O arquivo CSV contém 120 mil linhas em nível de evento, apresentando formatos de timestamp variados, valores nulos em user_id e eventos duplicados decorrentes de reexecuções (replays). A limpeza não é uma tarefa preliminar trivial; ela consiste em um conjunto de decisões analíticas que definem o que conta como atividade, quem é considerado usuário e quais registros são válidos.
O resultado do seu trabalho deve estar pronto para auditoria. Você deve dispor de um conjunto de dados limpo e passível de reprocessamento, acompanhado de um registro de alterações que justifique cada transformação realizada. A IA pode elaborar o código, listar casos de borda (edge cases) e propor verificações de validação. Cabe a você validar as definições, escolher os limites (thresholds) e assumir a responsabilidade por eventuais erros subsequentes caso uma decisão de limpeza distorça alguma métrica.
Antes de começar a programar, é preciso definir o que constitui um nível de limpeza adequado para essa demanda específica. Essa definição servirá de base para os testes de aceitação que o conjunto de dados limpo deverá superar.
Toda decisão de limpeza de dados é uma intervenção estatística. Ela altera o processo de geração de dados que se supõe ter criado a tabela e modifica as estimativas.
O mecanismo de ausência é a razão pela qual os valores estão faltando. Se plan_tier estiver nulo porque a tabela de faturamento não pôde ser vinculada (join) em uma semana específica, imputar o nível (tier) mais comum criará contagens de segmentos artificiais e enviesará a métrica de retenção por nível. É preciso classificar as ausências como “não medido”, “não registrado” ou “não aplicável” e, só então, decidir entre exclusão, imputação ou criação de uma categoria separada. A IA pode sugerir opções, mas não consegue inferir o mecanismo apenas a partir da coluna.
A regra de desduplicação é a definição de negócio para o que constitui uma duplicata. Se eventos reprocessados compartilharem os mesmos valores de (user_id, event_name, event_ts) em um intervalo de 5 segundos, agrupá-los pode ser correto para contagens de uso, mas inadequado para análises de latência. Quando a IA remove duplicatas usando drop_duplicates(), ela seleciona chaves e critérios de precedência silenciosamente. Você deve especificar as chaves, os critérios de desempate e o impacto na métrica.
A conversão de tipos (type coercion) altera a ordenação e o agrupamento. Processar incorretamente o campo event_ts pode deslocar eventos entre meses e gerar uma variação falsa no MAU (usuários ativos mensais). É necessário verificar a taxa de sucesso do processamento e a premissa adotada em relação ao fuso horário.