Escolar Documentos
Profissional Documentos
Cultura Documentos
RESUMO
Este estudo comparou as bibliotecas Pandas e Polars em Python para manipulação e
análise de dados. Utilizando o ambiente de desenvolvimento Colab, foram realizados testes
de desempenho em grandes conjuntos de dados. Os resultados mostraram que o Polars
superou o Pandas em eficiência de processamento e uso de memória, destacando-se como
uma opção promissora para lidar com grandes volumes de dados.
Palavras-chaves: Python, Polars, Colab, Pandas.
ABSTRACT
This study compared the Python libraries Pandas and Polars for data manipulation and
analysis. Using the Colab development environment, performance tests were conducted on
large datasets. The results showed that Polars outperformed Pandas in processing efficiency
and memory usage, emerging as a promising option for handling large volumes of data.
Keywords: Python, Polars, Colab, Pandas.
1 INTRODUÇÃO
O processamento de dados tem se tornado cada vez mais essencial em diversas áreas,
desde análises de negócios até pesquisas acadêmicas. Com o avanço da tecnologia e a
crescente quantidade de informações disponíveis, a necessidade de ferramentas eficientes
para manipulação e análise de dados tornou-se evidente. Nesse contexto, o Python emergiu
como uma das linguagens de programação mais populares devido à sua versatilidade e à
ampla gama de bibliotecas disponíveis para análise de dados.
Uma dessas bibliotecas, chamada Pandas, oferece estruturas de dados poderosas e
ferramentas para manipulação e análise de dados de forma rápida e eficiente. Com essa
ferramenta é possível carregar, limpar, transformar e analisar conjuntos de dados de
maneira simples e intuitiva.
No entanto, apesar dos avanços significativos no processamento de dados utilizando o
Pandas, as pesquisas nessa área continuam a progredir em busca de técnicas mais eficientes
1
Vinculação do autor e endereço eletrônico. Exemplo: Graduando em Tecnólogo em Análise e
Desenvolvimento de Sistemas. E-mail: rafael.mattss@gmail.com
2
e otimizadas. A cada ano, novas abordagens são propostas para melhorar a velocidade, a
escalabilidade e a precisão do processamento de grandes conjuntos de dados.
Diante da situação atual, a pesquisa foi fundamentada na ideia de que o Polars seria a
melhor opção para manipulação e análise de dados, dadas suas características de alto
desempenho e eficiência no processamento de grandes conjuntos de dados.
Neste artigo, exploraremos o processamento de dados utilizando o Python e
discutiremos algumas das pesquisas recentes que visam aprimorar a otimização de
conjuntos de dados (em inglês dataset). Esta abordagem se fez muito útil tendo em vista as
reduções de aproximadamente 78 por cento do tempo de processamento e 61 por cento de
redução de espaço.
1.2 Objetivos
Este estudo tem como objetivo principal investigar e propor estratégias para otimizar o
processamento de dados em Python, visando aprimorar a eficiência e a escalabilidade das
operações realizadas em grandes conjuntos de dados. Para atingir esse objetivo, será
realizada uma revisão abrangente da literatura sobre técnicas de otimização de
processamento de dados em Python. Além disso, serão avaliados o desempenho das
principais bibliotecas de processamento de dados, como Pandas, NumPy e Polars, em
cenários de grande escala. A partir dessa avaliação, serão identificados gargalos e áreas de
melhoria no processamento de dados em Python.
Este estudo propõe estratégias de otimização, como paralelização e uso de algoritmos
eficientes, para melhorar o desempenho do processamento de dados em Python. Essas
estratégias foram validadas experimentalmente em diversos conjuntos de dados, visando
fornecer diretrizes práticas para profissionais que lidam com análise de dados, com foco em
melhorar a eficiência e escalabilidade de suas operações.
1.3 Justificativa
Este projeto justifica-se pela crescente demanda por eficiência no processamento de
dados em Python, devido ao aumento do volume e da complexidade dos conjuntos de
dados. Busca-se avançar nas melhores práticas de otimização para contribuir com o
desenvolvimento contínuo da ciência de dados, economizando tempo e recursos para
profissionais e organizações.
3
2 REVISÃO DE LITERATURA
Nos tempos atuais, o processamento de dados desempenha um papel fundamental em
quase todos os aspectos de nossas vidas. Desde a análise de dados para tomada de decisões
empresariais até a personalização de recomendações em plataformas de entretenimento, os
dados são a espinha dorsal de muitos serviços e sistemas. No entanto, com o avanço da
tecnologia e o surgimento de novas fontes de dados, como sensores IoT e redes sociais, o
volume de dados gerados diariamente atingiu proporções gigantescas. Esse crescimento
exponencial de dados rapidamente excede os limites das tecnologias de processamento de
dados mais antigas, tornando imperativo o desenvolvimento de soluções mais eficientes e
escaláveis para lidar com esses desafios.
3 METODOLOGIA
3.1 Aprofundamento em pesquisas
O início desta pesquisa foi marcado pela seleção cuidadosa do tema, com o
reconhecimento da crescente importância do processamento de dados em Python e a
relevância das bibliotecas Pandas e Polars nesse contexto. A partir dessa escolha, foram
iniciadas pesquisas aprofundadas para entender melhor o assunto, abrangendo desde
conceitos fundamentais, como estatísticas e amostragem de dados, até a exploração de
bibliotecas específicas em Python voltadas para análise de dados. Paralelamente, foram
estudados conceitos de otimização de processamento de dados, visando compreender as
técnicas disponíveis para melhorar a eficiência das operações realizadas.
Além disso, durante essa fase inicial, foram explorados conceitos de tipagem de dados e
sua influência no desempenho das operações de processamento. A compreensão desses
aspectos foi fundamental para orientar o desenvolvimento posterior do estudo,
proporcionando uma base sólida para a seleção de metodologias e a realização de testes e
análises comparativas entre as bibliotecas Pandas e Polars.
Uma das principais áreas de foco foi identificar as principais funções e métodos
disponíveis no Polars, especialmente aqueles que são fundamentais para o processamento
eficiente de grandes conjuntos de dados. Isso incluiu a análise de operações de leitura e
escrita de dados, manipulação de dataframes, operações de agregação e transformação,
bem como operações de junção e filtragem de dados. A compreensão dessas
funcionalidades permitiu uma avaliação detalhada das capacidades do Polars em lidar com
diversas tarefas de análise de dados.
Além disso, a pesquisa na documentação do Polars também abordou aspectos
relacionados à performance e otimização da biblioteca, incluindo o suporte para operações
paralelas e o uso eficiente de memória. Ao compreender as técnicas de otimização
implementadas no Polars, foi possível contextualizar as comparações de desempenho entre
esta biblioteca e o Pandas, identificando as situações em que o Polars oferece vantagens
significativas em termos de eficiência e escalabilidade. Essa análise detalhada da
documentação do Polars desempenhou um papel fundamental no processo de pesquisa,
fornecendo insights valiosos para a comparação e avaliação das principais funcionalidades
oferecidas por esta biblioteca em relação ao Pandas.
Fonte: Autor.
Figura 3: Teste de uso de memória utilizando uma coluna de um milhão de linhas.
Esta imagem representa um teste feito para poder comparar o quanto de espaço se ocupa em
relação ao tipo da coluna, entre os tipos booleanos e string.
A partir destes testes foi possível concluir que seria mais viável trocar colunas do tipo
string que tenham apenas duas variações para o tipo booleano, economizando cerca de oito
vezes mais espaço na memória e gastando metade do tempo.
Além disso, foram realizados testes de amostragem dos dados, com o objetivo de
simplificar a visualização e análise de conjuntos de dados volumosos. A amostragem
permitiu reduzir o tamanho dos conjuntos de dados de forma controlada, facilitando a
identificação de padrões e insights relevantes para a otimização dos datasets. Essa
abordagem proporcionou uma visão mais clara e focada das características dos dados,
permitindo identificar pontos de intervenção para a aplicação de técnicas de otimização com
maior precisão e eficácia. Ao realizar esses testes iniciais de processamento de dados, foi
possível estabelecer uma base sólida para a investigação mais aprofundada das estratégias
de otimização a serem implementadas nos conjuntos de dados fornecidos.
Fonte: Autor.
Figura 4: Amostragem dos dados da coluna de local de compras.
7
Uma situação ocorrida que foi de grande ajuda para esclarecer alguns conceitos da
otimização e organização de datasets foi quando havia colunas indicando locais de
pagamento e métodos de pagamento, que apareciam dando as seguintes informações: um
cliente fazia compras pela internet e pagando fisicamente com cheque e os gráficos
puderam demonstrar esse tipo de ocorrência.
Através de situações como essa foi importante observar que há momentos em que não
há lógica em algumas linhas da tabela que informam um caso em que há métodos de
pagamentos físicos em lugares de compra online. Graças ao momento de amostragem foi
possível enxergar muitas oportunidades para otimizar os datasets gerados pelo orientador.
Fonte: Autor.
Figura 5: Demonstração de transformação de coluna para booleano com gráfico e tempo.
Fonte: Autor.
Figura 6: Gráfico de redução de memória a partir das modificações com polars.
Após a análise dos resultados obtidos com o Polars, foram realizados testes
comparativos com o Pandas. Utilizando as mesmas operações e conjuntos de dados,
buscamos avaliar o desempenho e a eficiência do Pandas em relação ao Polars. Os testes
foram conduzidos de forma resumida, aproveitando os insights obtidos com as análises
anteriores para direcionar os esforços de comparação entre as duas bibliotecas. Essa
abordagem permitiu uma avaliação abrangente das vantagens e limitações de cada
biblioteca em diferentes cenários de processamento de dados.
9
Fonte: Autor.
Figura 7: Gráfico de redução de memória a partir das modificações com pandas.
4 RESULTADOS E DISCUSSÕES
4.1 Resultado Pandas e Polars
Após a realização das otimizações com as bibliotecas Pandas e Polars, ficou evidente
que o Polars se destacou em termos de eficiência e economia de recursos. Os testes
demonstraram que o tempo necessário para executar as operações com o Polars foi
consideravelmente menor em comparação com o Pandas, enquanto o espaço ocupado na
memória também foi significativamente reduzido. Esses resultados indicam que o Polars é
mais viável para processamento de grandes conjuntos de dados (em inglês large datasets),
oferecendo um desempenho superior e uma melhor utilização dos recursos do sistema.
Fonte: Autor.
Figura 8: Comparação de espaço e tempo de processamento do pandas e polars.
Além disso, durante a análise comparativa, identificamos a LazyAPI do Polars como uma
alternativa ainda mais eficiente. A utilização da LazyAPI permitiu reduzir a necessidade de
10
Fonte: Autor.
Figura 9: Demonstração do tempo e espaço de uso da LazyAPI do polars.
5 CONCLUSÃO
Após uma análise detalhada do processamento de dados utilizando as bibliotecas
Pandas e Polars, fica evidente que o Polars se mostrou como a opção mais viável para lidar
com large datasets. Os resultados dos testes revelaram uma diferença significativa no
desempenho entre as duas bibliotecas, com o Polars processando os dados em apenas 14
segundos e ocupando 3.3 MB de memória, enquanto o Pandas levou 64 segundos e utilizou
8.5 MB. Essa discrepância destaca a eficiência do Polars em termos de tempo de
processamento e utilização de recursos.
Ao longo deste estudo, foi possível aprender a importância de explorar diferentes
bibliotecas e técnicas de otimização para alcançar os melhores resultados em
processamento de dados. A análise comparativa entre Pandas e Polars destacou a
necessidade de considerar não apenas a velocidade de processamento, mas também o
consumo de memória, especialmente ao lidar com conjuntos de dados volumosos. Além
disso, a descoberta da LazyAPI do Polars como uma opção ainda mais eficiente ressalta a
importância de explorar e aproveitar ao máximo os recursos disponíveis nas bibliotecas de
processamento de dados.
Em suma, este estudo demonstra a importância de escolher a ferramenta certa para
cada tarefa de processamento de dados, levando em consideração não apenas o
desempenho, mas também a eficiência em termos de uso de recursos. O conhecimento
adquirido ao longo deste processo contribui para uma melhor compreensão das melhores
práticas e técnicas de otimização em ciência de dados, permitindo que profissionais e
pesquisadores tomem decisões mais informadas ao enfrentar desafios de processamento de
dados em larga escala.
11
REFERÊNCIAS
SOBRE O(S)AUTOR(ES)
Sobre os autores:
_________________