--:--:--

Polars: o DataFrame em Rust que reescreveu as regras de velocidade

2026-06-08

O Pandas reina há mais de uma década, mas mostrava a idade diante de dados gigantes. Então um engenheiro holandês reescreveu o DataFrame do zero em Rust — e o Polars chegou prometendo ser 10 a 20 vezes mais rápido. Entenda como ele faz isso e quando vale a troca.

Polars: o DataFrame em Rust que reescreveu as regras de velocidade

O desafiante que apareceu para destronar o rei

Por mais de uma década, falar de análise de dados em Python era falar de Pandas. Ele era o rei absoluto, sem rival à altura. Mas todo reinado longo acumula insatisfações, e o Pandas, criado em 2008, começou a mostrar a idade num mundo de dados cada vez maiores e computadores cada vez mais paralelos. A pergunta pairava no ar: alguém faria algo melhor?

A resposta veio de um lugar inesperado — um engenheiro holandês chamado Ritchie Vink, que começou a carreira como engenheiro civil antes de se apaixonar por dados. Em 2020, durante a pandemia, ele iniciou o que chamava de "projeto de estimação": reescrever o conceito de DataFrame do zero, numa linguagem diferente e com ideias modernas. Esse projeto virou o Polars — e ele não veio para imitar o Pandas, veio para reescrever as regras de velocidade.

A aposta no Rust

A primeira decisão radical do Polars foi a linguagem. Enquanto o Pandas é construído sobre o Python e o NumPy, o Polars foi escrito em Rust — uma linguagem moderna, quase tão rápida quanto C, mas com uma obsessão por segurança e por paralelismo confiável.

Essa escolha não é detalhe técnico — é a fonte de quase toda a vantagem do Polars. O Rust permite usar com segurança todos os núcleos do seu processador ao mesmo tempo. Lembra que o Pandas usa só um núcleo por padrão? O Polars usa todos eles, distribuindo o trabalho como uma equipe bem coordenada em vez de um funcionário solitário. Ritchie Vink descreve a performance do Polars como "embaraçosamente paralela" — uma brincadeira com o fato de que o ganho de velocidade é quase grande demais para ser justo. Na prática, em muitas tarefas, o Polars é de 10 a 20 vezes mais rápido que o Pandas logo de cara, sem nenhum truque.

O segredo da avaliação preguiçosa

A velocidade do Polars não vem só do Rust e do paralelismo. Vem também de uma ideia roubada (com orgulho) do mundo dos bancos de dados: a avaliação preguiçosa, ou lazy evaluation.

Funciona assim. No Pandas, cada comando é executado na hora: você filtra, ele filtra; você agrupa, ele agrupa — um de cada vez, sem visão do todo. O Polars, no modo preguiçoso, faz diferente: ele primeiro ouve tudo o que você quer fazer, monta um plano completo da sequência de operações, e então um "otimizador de consultas" reorganiza esse plano para executá-lo da forma mais eficiente possível. É a diferença entre um cozinheiro que corre à geladeira a cada ingrediente e um chef que lê a receita inteira antes de começar e organiza tudo para não dar um passo a mais. O Polars argumenta, com razão, que ignorar esse tipo de otimização é ignorar décadas de pesquisa em bancos de dados — e ele não ignora.

Apache Arrow: o formato por baixo

Há mais um ingrediente na receita: o Polars guarda os dados na memória usando o Apache Arrow, um formato colunar moderno. "Colunar" significa que os valores de uma mesma coluna ficam juntos na memória — o que é perfeito para análise de dados, onde você quase sempre opera sobre colunas inteiras (somar uma coluna, filtrar por outra).

Esse formato traz dois benefícios. Primeiro, velocidade: processar dados organizados em colunas contíguas é muito mais eficiente para o processador. Segundo, interoperabilidade: como o Arrow é um padrão aberto usado por várias ferramentas, o Polars consegue compartilhar dados com outros sistemas sem precisar copiar e converter tudo — o chamado "zero-copy". Curiosamente, o Apache Arrow foi criado justamente por Wes McKinney, o pai do Pandas — uma prova bonita de que, no mundo do código aberto, as boas ideias circulam e se cruzam, mesmo entre "rivais".

A sintaxe de expressões: poder com clareza

Além da velocidade, o Polars trouxe uma forma diferente de escrever consultas — a chamada API de expressões. Em vez de manipular colunas com colchetes e nomes soltos, você descreve o que quer através de expressões encadeadas e legíveis, que o motor do Polars entende e otimiza como um todo.

Na prática, isso significa um código que muitas vezes lê quase como uma frase: selecione estas colunas, onde tal condição é verdadeira, agrupe por aquela, e calcule esta agregação. Para quem vem do Pandas, há uma curva de adaptação — a sintaxe é diferente o suficiente para exigir reaprender alguns reflexos. Mas muita gente, depois de acostumada, prefere o estilo do Polars justamente por ser mais explícito e menos propenso aos pequenos enganos que o Pandas às vezes esconde. É uma daquelas trocas em que o esforço inicial de aprender é pago de volta em clareza no longo prazo.

Quando vale trocar (e quando não)

Diante de tanta vantagem, a tentação é abandonar o Pandas e migrar tudo para o Polars. Mas a decisão honesta é mais sutil. O Polars brilha quando os dados são grandes — centenas de megabytes, gigabytes — e quando a velocidade importa de verdade. Para pipelines pesados, processamento de grandes volumes e tarefas onde cada segundo conta, ele é uma escolha excelente e cada vez mais adotada.

Por outro lado, o Pandas ainda leva vantagem em maturidade e ecossistema. Tem quinze anos de tutoriais, integração com praticamente tudo, e uma comunidade gigantesca — quando você tem um problema, alguém já o resolveu e documentou. Para dados pequenos, análise exploratória rápida e projetos onde a familiaridade da equipe importa mais que a velocidade bruta, o Pandas continua sendo uma escolha perfeitamente sensata. A boa notícia é que não precisa ser uma guerra: muita gente usa os dois, escolhendo a ferramenta certa para cada tarefa.

O futuro chegou, mas o passado resiste

O Polars representa algo maior que uma biblioteca rápida: é um sinal de como o ecossistema Python amadureceu. A disposição de reescrever uma ferramenta consagrada do zero, em outra linguagem, incorporando décadas de aprendizado em bancos de dados e a realidade dos processadores modernos — isso mostra uma comunidade que não tem medo de se reinventar. O sucesso foi tanto que o projeto, nascido como hobby na pandemia, virou uma empresa com investimento de milhões e dezenas de milhões de downloads mensais.

Vale a pena aprender Polars hoje? Sem dúvida — especialmente para quem trabalha com volumes grandes ou quer estar à frente da curva. Mas vale também manter o Pandas na caixa de ferramentas, porque ele não vai desaparecer tão cedo. O mais sábio não é escolher um lado nessa "rivalidade", e sim entender o que cada um faz de melhor. O Polars reescreveu as regras de velocidade; cabe a você decidir quando essa velocidade é o que o seu problema realmente pede.

#python #polars #dados #rust #performance #biblioteca