É correto afirmar que a nova biblioteca Polars está superando o Pandas em vários benchmarks ou a biblioteca Pandas ainda é a escolha dominante?

Ao executar tarefas de análise de dados, é provável que você tenha encontrado Pandas. Tem sido a biblioteca mais predominante na análise de dados por um longo tempo. Polars, por outro lado, é uma biblioteca relativamente nova que possui alto desempenho e eficiência de memória. Mas, qual é melhor?

Aqui, você verá uma comparação do desempenho entre Pandas e Polars em uma variedade de tarefas comuns de manipulação de dados.

Medindo o desempenho: métricas e conjunto de dados de referência

Esta comparação levará em conta a capacidade dos Pandas e polares bibliotecas para manipular o conjunto de dados Black Friday Sale de Kaggle. Este conjunto de dados contém 550.068 linhas de dados. Inclui informações sobre dados demográficos do cliente, histórico de compras e detalhes do produto.

Para garantir medições de desempenho justas, a comparação usará o tempo de execução como uma métrica de desempenho padrão em cada tarefa. A plataforma para executar o código de cada tarefa de comparação será o Google Colab.

instagram viewer

O código-fonte completo que compara as bibliotecas Pandas e Polars está disponível em um Repositório GitHub.

Lendo dados de um arquivo CSV

Esta tarefa compara o tempo que leva para cada biblioteca ler dados do conjunto de dados Black Friday Sale. O conjunto de dados está em formato CSV. Pandas e Polars oferecem funcionalidade semelhante para esta tarefa.

Os pandas levam o dobro do tempo que os polares levam para ler os dados no conjunto de dados Black Friday Sale.

Selecionando Colunas

Esta tarefa mede o tempo que cada biblioteca leva para selecionar as colunas do conjunto de dados. Envolve a seleção do ID do usuário e Comprar colunas.

Polars levam muito menos tempo para selecionar colunas do conjunto de dados em comparação com Pandas.

Filtrando Linhas

Esta tarefa compara o desempenho de cada biblioteca nas linhas de filtragem onde o Gênero coluna é F do conjunto de dados.

Os polares demoram muito pouco em comparação com os pandas para filtrar as linhas.

Agrupando e agregando dados

Esta tarefa envolve o agrupamento de dados por uma ou mais colunas. Em seguida, realizando algumas funções de agregação nos grupos. Ele mede o tempo que cada biblioteca leva para agrupar os dados pelo Gênero coluna e calcule o valor médio de compra para cada grupo.

Mais uma vez, os Polars superam os Pandas. Mas a margem não é tão grande quanto a de filtrar as linhas.

Aplicando funções aos dados

Esta tarefa envolve a aplicação de uma função a uma ou mais colunas. Ele mede o tempo que cada biblioteca leva para multiplicar o Comprar coluna por 2.

Você mal consegue ver a barra Polars. Os polares mais uma vez superam os pandas.

Mesclando dados

Esta tarefa envolve mesclando dois ou mais DataFrames com base na existência de uma ou mais colunas comuns. Ele mede o tempo que leva para cada biblioteca mesclar os ID do usuário e Comprar colunas de dois DataFrames separados.

Ambas as bibliotecas levam algum tempo para concluir esta tarefa. Mas o Polars leva quase metade do tempo que o Pandas leva para mesclar os dados.

Por que os Polars são capazes de superar os Pandas?

Em todas as tarefas de manipulação de dados acima, os Polars superam os Pandas. Existem várias razões pelas quais os Polars podem superar os Pandas em tempo de execução.

  • Otimização de memória: Polars usa Rust, uma linguagem de programação do sistema que otimiza o uso da memória. Ele permite que o Polars minimize o tempo gasto na alocação e desalocação de memória. Isso torna o tempo de execução mais rápido.
  • Operações SIMD (dados múltiplos de instrução única): Polars usa operações SIMD para realizar cálculos em dados. Isso significa que ele pode usar uma única instrução para executar a mesma operação em vários elementos de dados simultaneamente. Isso permite que os Polars executem operações muito mais rapidamente do que os Pandas, que usam uma abordagem de thread único.
  • Avaliação preguiçosa: Polars usa avaliação preguiçosa para atrasar a execução de operações até que seja necessário. Isso reduz a quantidade de tempo que o Polars gasta em operações desnecessárias e melhora o desempenho.

Expanda suas habilidades de ciência de dados

Existem muitas bibliotecas Python por aí que podem ajudá-lo na ciência de dados. Pandas e polares são apenas uma pequena fração. Para melhorar o desempenho do seu programa, você deve se familiarizar com mais bibliotecas de ciência de dados. Isso ajudará você a comparar e escolher qual biblioteca se adapta melhor ao seu caso de uso.