Por que limpar dados com pandas em vez de manualmente?

Vale a pena limpar dados no pandas porque cada etapa fica registrada e pode ser executada novamente em segundos na exportação do mês seguinte, enquanto as correções manuais em uma planilha são lentas, fáceis de esquecer e impossíveis de auditar.

Imagine uma rede fictícia de lojas de jardinagem com quatro unidades, a Fernhill Gardens. O analista financeiro, Tomasz, recebe um CSV mensal de pedidos on-line. Na amostra abaixo, o mesmo pedido aparece duas vezes, o nome da unidade é escrito de várias formas, os valores incluem um símbolo de moeda e uma vírgula, as datas misturam formatos que começam pelo dia e pelo ano, e os valores ausentes aparecem como campos vazios, 'N/A' e '-'. Corrigir isso manualmente leva um dia, e os totais nunca batem exatamente com o relatório do provedor de pagamentos.

order_idsiteorder_dateamountpostcode
10231Leeds03/11/2026£1,240.00LS6
10231Leeds03/11/2026£1,240.00LS6
10232leeds2026-11-0486.50Não se aplica
10233YORK05/11/2026-YO1
10234Harrogate142

Como você limpa dados com pandas passo a passo?

Limpe dados no pandas carregando-os com os marcadores de valores ausentes definidos, inspecionando os dados, padronizando o texto, convertendo números e datas, removendo duplicatas, decidindo o que fazer com as lacunas restantes e, por fim, conferindo o resultado com um total confiável. Seguir essa ordem evita que uma correção desfaça outra.

1. Carregue os dados declarando os marcadores de valores ausentes

A função read_csv do pandas lê o arquivo e carrega os dados em um DataFrame. O argumento na_values permite listar textos adicionais, como 'N/A' e '-', para serem tratados como valores ausentes, além dos padrões que o pandas já reconhece, como campos vazios. Declará-los aqui evita ter que procurá-los depois.

2. Inspecione antes de alterar qualquer coisa

Examine as primeiras linhas com head, os tipos de coluna e as contagens de valores não ausentes com info, e o número de valores ausentes por coluna combinando isna com sum. Anote o que encontrar: na Fernhill, amount está armazenado como texto e order_date tem formatos diferentes.

3. Padronize o texto

Use os métodos de texto em uma coluna: str.strip remove espaços no início e no fim, e str.lower ou str.title padroniza o uso de maiúsculas e minúsculas, para que ' Leeds', 'leeds ' e 'LEEDS' passem a representar um único local. Depois, liste os valores únicos com unique para identificar grafias diferentes que ainda restem.

4. Converta os números

Remova o símbolo da moeda e a vírgula de separação de milhares com str.replace e depois converta com to_numeric. Definir o argumento errors como coerce transforma qualquer valor que não possa ser interpretado em um valor ausente, em vez de interromper a execução. Assim, você pode contar e revisar essas linhas, em vez de perdê-las silenciosamente.

5. Converta datas

to_datetime transforma texto em datas válidas. Para formatos mistos, informe um formato explícito sempre que possível ou configure dayfirst para datas no padrão britânico e defina errors como coerce para que datas que não possam ser interpretadas se tornem NaT, o marcador do pandas para uma data ausente. Observe que dayfirst é uma preferência, não uma regra rígida, então confira os resultados.

6. Remova duplicatas

drop_duplicates remove linhas repetidas. Por padrão, uma linha só é considerada duplicada se todas as colunas forem iguais; o argumento subset permite identificar duplicatas com base em colunas escolhidas, como order_id, e keep define se a primeira ou a última cópia será mantida.

7. Decida o que fazer com as lacunas restantes

dropna remove linhas com valores ausentes, mas, por padrão, exclui uma linha se houver um valor ausente em qualquer coluna. Use o argumento subset para excluir apenas linhas sem os dados de que você realmente precisa, como amount, ou fillna para preencher uma lacuna com um valor especificado. Depois, use astype para definir os tipos finais das colunas, por exemplo, um tipo categórico para site.

Como é uma etapa de limpeza fraca e uma aprimorada?

A execução falha carrega o arquivo com read_csv, chama dropna sem argumentos e depois drop_duplicates sem argumentos. Como o código postal costuma estar em branco, dropna remove uma grande parcela dos pedidos válidos e, como ' Leeds' e 'leeds ' continuam diferentes, algumas duplicatas permanecem. A receita fica muito abaixo do valor real, e ninguém sabe quais linhas foram removidas.

A execução aprimorada declara 'N/A' e '-' como valores ausentes no carregamento, remove espaços nas extremidades de site e coloca as iniciais das palavras em maiúsculas, converte amount com to_numeric após remover '£' e vírgulas, converte order_date com dayfirst e coerce, remove duplicatas com base em order_id mantendo a primeira e exclui apenas as linhas sem amount. Em seguida, exibe quantas linhas cada etapa removeu e compara a receita total com o relatório do provedor de pagamentos. Agora Tomasz consegue explicar cada diferença.

Como você verifica se a limpeza dos dados funcionou?

Verifique a limpeza dos dados contando as linhas antes e depois de cada etapa, comparando um total importante com uma fonte independente e revisando as linhas cujos valores foram convertidos em ausentes. Execute info novamente para confirmar os tipos das colunas e liste os valores únicos de categorias como local. Se uma etapa removeu mais linhas do que o esperado, examine-as antes de continuar.

Como um assistente de IA pode ajudar na limpeza de dados com pandas?

Um assistente de IA pode elaborar as etapas de limpeza se você descrever cada coluna, seus problemas e a regra desejada, além de explicar funções que você não conhece. Descreva a estrutura com valores fictícios de exemplo, em vez de colar dados reais de clientes, como nomes, endereços ou CEPs completos. Peça que ele informe a contagem de linhas após cada etapa e confira cada argumento de função usado na documentação oficial do pandas, porque os assistentes às vezes sugerem opções que não existem ou que mudaram entre versões.

Quais são os erros comuns ao limpar dados com pandas?

O erro mais comum é chamar dropna sem argumentos e perder linhas que estavam corretas, exceto por uma coluna opcional. Outros: remover duplicatas antes de padronizar o texto, converter datas sem verificar a ordem de dia e mês, sobrescrever o arquivo original e nunca comparar o total após a limpeza com um valor confiável.

Onde esta aula se encaixa na Tosheo.ai?

Esta é uma aula de Programação na categoria Ciência de dados e análise do curso de ciência de dados. Cada tema do Tosheo.ai começa com conceitos e prática sem código, e as aulas de Programação são uma trilha opcional de aprofundamento: após o cadastro, a versão prática completa desta aula pede que você escreva e execute cada etapa de limpeza em Python com pandas, com avaliação baseada em critérios explícitos. Se você está começando em Python, inicie pelo curso de Python. Ele desenvolve habilidades práticas; não é um curso intensivo nem uma garantia de emprego.

Fontes e escopo

Documentação do pandas: read_csv (verificado em 19 October 2026) ↗

Guia do usuário do pandas: como trabalhar com dados ausentes (verificado em 19 October 2026) ↗

Documentação do pandas: DataFrame.dropna (verificado em 19 October 2026) ↗

Documentação do pandas: DataFrame.drop_duplicates (verificado em 19 October 2026) ↗

Documentação do pandas: DataFrame.astype (verificado em 19 October 2026) ↗

Documentação do pandas: to_numeric (verificado em 19 October 2026) ↗

Documentação do pandas: to_datetime (verificado em 19 October 2026) ↗

Documentação do pandas: Series.str.strip (verificado em 19 October 2026) ↗