Filtrar dados grandes
Com milhares de linhas, a resposta vem de filtrar, tirar repetidos e somar por grupo, nunca de ler no olho.
Um arquivo com dezenas de milhares de linhas não se lê no olho. A resposta sai de três operações, quase sempre nesta ordem:
- Tirar repetidos. Sistemas reais gravam a mesma coisa duas vezes. Se cada registro tem um identificador (
id), conte cada um uma vez só. - Filtrar. Fique só com as linhas que a pergunta pede: um período, um tipo, uma situação.
- Agrupar e somar. Some (ou conte) por categoria e ordene do maior para o menor.
As mesmas três operações em ferramentas diferentes:
| Ferramenta | Repetidos | Filtro | Soma por grupo |
|---|---|---|---|
| Planilha | Remover duplicatas | Filtro automático | Tabela dinâmica |
| Terminal | sort -u |
awk '$7=="aceito"' |
awk '{s[$4]+=$6}' |
| Python | um set dos ids vistos |
um if |
um dict ou Counter |
Em Python, com o módulo csv:
import csv, collections
vistos, total = set(), collections.Counter()
for linha in csv.DictReader(open("dados.csv")):
if linha["id"] in vistos or linha["situacao"] != "aceito":
continue
vistos.add(linha["id"])
total[linha["nome"]] += int(linha["valor"])
print(total.most_common(3))
O cuidado mais importante: quando o primeiro e o segundo colocados estão perto, cada regra esquecida pode mudar o vencedor. Teste ligando e desligando cada filtro e veja se o resultado muda; se muda, aquela regra é decisiva e precisa estar certa.
Isso importa porque é o dia a dia de quem analisa logs, vazamentos e planilhas de incidentes: dados reais vêm sujos, e a conclusão só vale depois da limpeza.
Aparece nestes desafios
Quantas vezes o primeiro apareceu
Infraestrutura da internet
A rede do endereço mais insistente
Infraestrutura da internet
Quem bateu em todas as portas
Defesa
Os endereços que mais aparecem
Infraestrutura da internet
De quantos países
Infraestrutura da internet
Os blocos brasileiros
Infraestrutura da internet
Quantos blocos de endereços
Infraestrutura da internet
Quantas redes estão por trás da lista
Infraestrutura da internet
A balança da cooperativa
Lógica