DataFrame Gigante e Lento? 3 Mudanças que Mudam Tudo Trabalhar com dados grandes é um desafio comum para quem usa Python. Um DataFrame com 10 milhões de linhas que demora 45 segundos para uma query simples não é raro — é um sintoma de que você está usando métodos que forçam Python a recriar toda a estrutura de dados na memória. A boa notícia? Existem 3 mudanças cirúrgicas que podem reduzir esse tempo para apenas 2 segundos. Vamos explorar cada uma. 1. Use em vez de Filtros com A forma tradicional de filtrar um DataFrame é usar boolean indexing: Python interpreta essa sintaxe como: 1. Avaliar (cria array novo) 2. Usar esse array para indexar 3. Recriar DataFrame com resultado Resultado: 3-5 segundos para operações simples. A solução: use Internamente, usa o motor que: Evita cópias desnecessárias Otimiza a avaliação de expressão Usa operações vetorizadas do NumPy Ganho de performance: 3-5x mais rápido Para filtros complexos: 2. Use com Índice, Não Busca Quando você precisa encontrar uma linha específica por ID, a forma incorreta força o Pandas a fazer uma busca linear: Isso leva de 10 a 100 vezes mais tempo do que deveria. A solução: use índice com Por que é 100x mais rápido? cria uma hashtable interna (hash lookup é O(1)) acessa direto via índice Sem percorrer outras linhas Ganho de performance: 10-100x mais rápido Para múltiplas buscas: Você também pode deixar o índice persistente: 3. Use Polars para Datasets Muito Grandes (>500MB) Se seu DataFrame está acima de 500MB, você está no limite do que Pandas consegue otimizar bem. É aqui que Polars entra. Polars é uma biblioteca escrita em Rust que oferece a mesma API do Pandas, mas com performance 10-50x melhor em operações pesadas. Comparação: Por que Polars é tão rápido? Escrito em Rust (compilado, não interpretado) Lazy evaluation (executa só o necessário) Usa processamento paralelo automaticamente Otimizado para cache do processador A sintaxe é quase idêntica: Se você já conhece Pandas, Polars é uma curva de aprendizado bem suave. Quando Usar Cada Um? : Use sempre que filtrar um DataFrame (dados < 500MB) com índice: Quando precisar acessar linhas por ID ou valor específico Polars: Quando trabalhar com datasets > 500MB ou precisa fazer múltiplas transformações O Resultado Real Um cliente nosso tinha um pipeline ETL que demorava 3 horas: Depois de aplicar essas 3 mudanças: Redução de 22x no tempo de processamento. Quer aprofundar em otimização de dados? Explore mais sobre Python para análise de dados na Elite Data Academy. Aprenda desde SQL e Python até Power BI e Looker Studio, com projetos práticos e certificação por módulo. Plano anual a partir de R$ 35/mês.