Pular para o conteúdo

Tema

Programação · tema 23 de 40

Python para analytics: pandas sem armadilha

35 min · 2 vídeos · 10 cards · 1 drill

Por que cai

A banca não pede código na sabatina, mas pergunta o que você faria com um arquivo problemático. As respostas que impressionam falam de tipo, de nulo e de grão — os três lugares onde o número sai errado sem ninguém perceber. E a pergunta seguinte é sempre quando NÃO usar pandas.

Pré-teste · 1 de 2

responda antes de ver

Ao ler um CSV, uma coluna de código de produto com zeros à esquerda aparece como número e perde os zeros. Qual é a correção correta?

Quanta certeza você tem?

Vídeo · português · 10 min

Dez minutos de base para quem não usa pandas no dia a dia. Assista antes; o tema começa onde ele termina, nas armadilhas de tipo, nulo e grão.

Em uma frase

Os três lugares onde o número sai errado em silêncio são tipo, nulo e grão — e a quarta pergunta é sempre quando parar de usar pandas e empurrar o trabalho para onde o dado está.

Tipo: a inferência erra onde dói

Deixar o pandas adivinhar o tipo funciona até encontrar:

ColunaO que a inferência fazConsequência
Código com zero à esquerdaConverte para número00123 vira 123 e a junção com o cadastro não acha nada
Identificador de 18 dígitosConverte para ponto flutuantePerde precisão e termina em zeros
Data em formato brasileiroDeixa como textoOrdenação alfabética, comparação errada
Valor com vírgula decimalDeixa como textoSoma concatena em vez de somar

A correção é declarar o tipo na leitura, não converter depois: parte da informação já se perdeu no caminho.

Nulo: ausência não é zero

Há três decisões legítimas — excluir a linha, preencher com um valor justificado, manter nulo e tratar na agregação. Qualquer uma serve se for consciente e documentada. E vale separar nulo de string vazia: elas costumam indicar origens diferentes, e misturá-las esconde uma falha de extração.

Grão: a junção que dobra o faturamento

grãoO que uma linha representa. "Uma linha por pedido" e "uma linha por item do pedido" são grãos diferentes.

Ao juntar pedidos com itens, cada pedido passa a aparecer uma vez por item, com o valor do pedido repetido em todas. A soma conta repetido. Não é bug: é a junção fazendo o que foi pedida.

  1. 1Declarar o grão em voz alta antes de juntar: depois desta junção, uma linha representa o quê?
  2. 2Conferir se a chave é única do lado direito, e comparar a contagem de linhas antes e depois.
  3. 3Quando o que se quer é o total, agregar ANTES de juntar: somar itens por pedido e só então juntar.
  4. 4Para número que vira indicador, um teste comparando o total com a origem.

Quando sair do pandas

  • O dado não cabe confortavelmente na memória.
  • A transformação vai virar rotina consumida por outras pessoas: aí ela precisa de versionamento, teste e orquestração, não de um script local.
  • O banco pode filtrar e agregar antes de enviar. Trazer gigabytes para produzir duzentas linhas desperdiça rede, memória e tempo.

Como responder isso em voz alta

Para "o que você faz com este arquivo": inspecionar amostra, tipar na leitura, decidir o nulo por coluna, guardar o cru. Para qualquer número que mudou de repente: grão primeiro, depois tipo, depois fuso. E termine dizendo onde aquilo deveria morar se virasse rotina — é o que mostra que você pensa além do arquivo da vez.

Se quiser outro ângulo1 vídeo
Complementar, com outro ângulo sobre leitura e manipulação. Repare em como os tipos aparecem depois da leitura: é ali que o problema deste tema nasce.

Como cai na sabatina

Você recebeu um CSV de 4 GB com colunas mal tipadas. O que faz antes de qualquer análise?

Erros comuns

  • Deixar o pandas inferir tipo. Coluna de código com zero à esquerda vira número e perde o zero; data vira texto; identificador grande perde precisão. Tipagem explícita na leitura evita tudo isso.
  • Preencher nulo com zero por reflexo. Zero é um valor: entra na soma e na média. Nulo é ausência. Trocar um pelo outro muda o indicador sem avisar.
  • Juntar tabelas sem conferir o grão. Se a chave não é única do lado direito, a junção multiplica linhas e a soma passa a contar duas vezes. É o erro mais caro e o mais silencioso.
  • Usar laço para percorrer linhas. Além de lento, costuma esconder a lógica; operação vetorizada ou groupby diz melhor o que está acontecendo.
  • Carregar tudo na memória quando o banco poderia filtrar. Trazer 4 GB para agregar 200 linhas é desperdício: empurre filtro e agregação para onde o dado está.
  • Esquecer o fuso horário. Data sem fuso vira comparação errada entre origens diferentes, e o relatório fecha o dia na hora errada.

Flashcards

Card 1 de 10

0 certos · 0 a rever

Drill

Onde o número vai sair errado?

Para cada situação, diga qual é a armadilha.

  1. 1.O código da agência 00123 virou 123 e a junção com o cadastro não encontra nada.

  2. 2.A média de desconto caiu pela metade depois que a coluna vazia foi preenchida com zero.

  3. 3.O faturamento total dobrou depois que a tabela de itens entrou na análise.

  4. 4.O relatório diário mostra movimento de ontem no total de hoje.

  5. 5.O identificador do cliente com 18 dígitos passou a terminar em zeros.

Quiz · 1 de 2

Qual afirmação sobre tratamento de valores nulos é mais defensável?

Explique para um gerente

Explique em um minuto por que juntar duas tabelas pode aumentar o número de linhas, e por que isso estraga uma soma.

Se travar numa palavra técnica, é sinal de que ainda não entendeu essa parte.

Prefiro falar em voz alta

00:00

Toque para gravar, ou responda em voz alta sem gravar

Perguntas de sabatina deste tema2
  • · Você recebeu um arquivo CSV de alguns gigabytes, com colunas mal tipadas e muitos campos vazios. O que você faz antes de qualquer análise?
  • · Depois que você incluiu a tabela de itens na análise, o faturamento total dobrou. Explique o que aconteceu e como evitar.
Responder no simulado
Para ir além3 artigos