Performance de Leitura de CSV — Pandas vs Polars em Pipelines Reais
Ler arquivos CSV costuma ser o primeiro passo de muitos pipelines de dados.
Logs, exports, relatórios, datasets brutos — CSV está em todo lugar.
Durante muito tempo, o Pandas deu conta desse trabalho sem grandes problemas.
Mas conforme os arquivos crescem e a ingestão vira gargalo, a performance de leitura começa a importar muito mais do que parece.
É aí que o Polars começa a se destacar.
Por que a leitura de CSV vira gargalo
Em exemplos pequenos, a leitura de CSV raramente parece lenta.
Mas em pipelines reais, é comum lidar com:
- muitos arquivos
- execuções repetidas
- janelas de processamento limitadas
Nesse cenário, economizar segundos (ou minutos) faz diferença.
Lendo CSVs com Pandas
import pandas as pd
df = pd.read_csv("data.csv")
O leitor de CSV do Pandas é maduro e flexível, com suporte a:
- vários tipos de dados
- opções avançadas de parsing
- bom tratamento de erros
Para arquivos médios, a performance costuma ser suficiente.
Por outro lado:
- o parsing é majoritariamente single-thread
- o uso de memória pode crescer bastante
- arquivos grandes ficam mais lentos de processar
Lendo CSVs com Polars
import polars as pl
df = pl.read_csv("data.csv")
O Polars foi pensado com performance desde o início.
Seu leitor de CSV:
- utiliza execução multi-thread
- tem uso de memória mais previsível
- escala melhor conforme o tamanho dos arquivos
Em pipelines com muitos ou grandes CSVs, a diferença aparece rapidamente.
Leitura lazy de CSV no Polars
Uma diferença importante é o modo lazy:
lazy_df = pl.scan_csv("data.csv")
Com scan_csv, o Polars:
- não carrega os dados imediatamente
- constrói um plano de execução
- aplica otimizações antes de executar
Isso é especialmente útil quando:
- apenas algumas colunas são necessárias
- filtros podem ser aplicados cedo
- a leitura faz parte de um pipeline maior
Takeaway do mundo real
Na prática, o cenário costuma ser este:
- Pandas funciona bem para flexibilidade e datasets menores
- Polars brilha quando a ingestão é pesada
- Lazy execution amplia a vantagem do Polars
Leitura de CSV pode parecer detalhe, mas em pipelines grandes, ela define a performance geral.
Conclusão
Se CSV é uma parte pequena do seu fluxo, Pandas costuma ser suficiente.
Mas quando velocidade de ingestão importa — especialmente em escala — o Polars oferece uma vantagem clara.
Entender isso cedo evita dores de cabeça conforme os pipelines crescem.