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 verAo 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?
Vídeo · português · 10 min
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:
| Coluna | O que a inferência faz | Consequência |
|---|---|---|
| Código com zero à esquerda | Converte para número | 00123 vira 123 e a junção com o cadastro não acha nada |
| Identificador de 18 dígitos | Converte para ponto flutuante | Perde precisão e termina em zeros |
| Data em formato brasileiro | Deixa como texto | Ordenação alfabética, comparação errada |
| Valor com vírgula decimal | Deixa como texto | Soma 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ão— O 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.
- 1Declarar o grão em voz alta antes de juntar: depois desta junção, uma linha representa o quê?
- 2Conferir se a chave é única do lado direito, e comparar a contagem de linhas antes e depois.
- 3Quando o que se quer é o total, agregar ANTES de juntar: somar itens por pedido e só então juntar.
- 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
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 reverDrill
Onde o número vai sair errado?
Para cada situação, diga qual é a armadilha.
1.O código da agência 00123 virou 123 e a junção com o cadastro não encontra nada.
2.A média de desconto caiu pela metade depois que a coluna vazia foi preenchida com zero.
3.O faturamento total dobrou depois que a tabela de itens entrou na análise.
4.O relatório diário mostra movimento de ontem no total de hoje.
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.