Torne os pandas 3 vezes mais rápidos com os PyPolars

Nó Fonte: 1854103

Torne os pandas 3 vezes mais rápidos com os PyPolars

Aprenda como acelerar o fluxo de trabalho do Pandas usando a biblioteca PyPolars.


By Satyam Kumar, Entusiasta de aprendizado de máquina e programador



Foto por Tim Gouw on Unsplash

 

Pandas é um dos pacotes Python mais importantes entre os cientistas de dados para brincar com os dados. A biblioteca do Pandas é usada principalmente para exploração de dados e visualizações, pois vem com toneladas de funções embutidas. O Pandas não consegue lidar com conjuntos de dados de grande porte, pois não dimensiona ou distribui seu processo por todos os núcleos da CPU.

Para acelerar os cálculos, pode-se utilizar todos os núcleos da CPU e acelerar o fluxo de trabalho. Existem várias bibliotecas de código aberto, incluindo Dask, Vaex, Modin, Pandarallel, PyPolars, etc, que paralelizam os cálculos em vários núcleos da CPU. Neste artigo, discutiremos a implementação e uso da biblioteca PyPolars e compararemos seu desempenho com a biblioteca Pandas.

O que é PyPolars?

 
PyPolars é uma biblioteca de quadro de dados Python de código aberto semelhante ao Pandas. O PyPolars utiliza todos os núcleos disponíveis da CPU e, portanto, executa os cálculos mais rapidamente do que o Pandas. PyPolars tem uma API semelhante à dos Pandas. Ele é escrito em ferrugem com invólucros Python.


Idealmente, PyPolars é usado quando os dados são muito grandes para Pandas e muito pequenos para Spark


Como funcionam os PyPolars?

 
A biblioteca PyPolars tem duas APIs, uma é Eager API e a outra é Lazy API. A API Eager é muito semelhante à do Pandas, e os resultados são produzidos logo após a conclusão da execução, de forma semelhante ao Pandas. Lazy API é muito semelhante ao Spark, onde um mapa ou plano é formado na execução de uma consulta. Em seguida, a execução é executada paralelamente em todos os núcleos da CPU.



(Imagem do autor), API PyPolars

 

PyPolars é basicamente uma ligação python à biblioteca Polars. A melhor parte da biblioteca PyPolars é a semelhança da API com o Pandas, o que torna mais fácil para os desenvolvedores.

Instalação:

 
O PyPolars pode ser instalado a partir do PyPl usando o seguinte comando:

pip install py-polars


e importe a biblioteca usando

import pypolars as pl


Restrições de tempo de referência:


Para demonstrações, usei um conjunto de dados de grande tamanho (~ 6.4 Gb) com 25 milhões de instâncias.




(Imagem do autor), Número de tempo de referência para operações básicas de Pandas e Py-Polars

 

Para os números de tempo de referência acima para algumas operações básicas usando a biblioteca Pandas e PyPolars, podemos observar que PyPolars é quase 2x a 3x mais rápido do que Pandas.

Agora sabemos que o PyPolars possui uma API muito semelhante à do Pandas, mas ainda assim não cobre todas as funções do Pandas. Por exemplo, não temos .describe() função em PyPolars, em vez disso, podemos usar df_pypolars.to_pandas().describe()

Uso:

 

(Código por Autor)

Conclusão:

 
Neste artigo, cobrimos uma pequena introdução à biblioteca PyPolars, incluindo sua implementação, uso e comparação de seus números de tempo de referência com Pandas para algumas operações básicas. Observe que o PyPolars funciona de maneira muito semelhante ao do Pandas, e o PyPolars é uma biblioteca com uso eficiente de memória, pois a memória por ele respaldada é imutável.

Pode-se passar pelo documentação para obter uma compreensão detalhada da biblioteca. Existem várias outras bibliotecas de código aberto que podem paralelizar as operações do Pandas e acelerar o processo. Leia o artigo abaixo mencionado para conhecer 4 dessas bibliotecas:

4 Bibliotecas que podem paralelizar o ecossistema Pandas existente
Distribuir a carga de trabalho Python por processamento paralelo usando essas estruturas

 
Referências:

[1] Documentação da Polars e repositório GitHub: https://github.com/ritchie46/polars

 
Obrigado por ler

 
Bio: Satyam Kumar é um entusiasta e programador de aprendizado de máquina. Satyam escreve sobre Data Science e é um dos melhores escritores em IA. Ele está procurando uma carreira desafiadora em uma organização que oferece a oportunidade de capitalizar suas habilidades e habilidades técnicas.

Óptimo estado. Original. Republicado com permissão.

Relacionado:

Fonte: https://www.kdnuggets.com/2021/05/pandas-faster-pypolars.html

Carimbo de hora:

Mais de KDnuggetsGenericName