Haz pandas 3 veces más rápido con PyPolars

Nodo de origen: 1854103

Haz pandas 3 veces más rápido con PyPolars

Aprenda a acelerar su flujo de trabajo de Pandas usando la biblioteca PyPolars.


By Satyam Kumar, Entusiasta del aprendizaje automático y programador



Foto por Tim Gouw on Unsplash

 

Pandas es uno de los paquetes de Python más importantes entre los científicos de datos para jugar con los datos. La biblioteca de Pandas se usa principalmente para exploraciones y visualizaciones de datos, ya que viene con toneladas de funciones incorporadas. Pandas no puede manejar conjuntos de datos de gran tamaño, ya que no escala ni distribuye su proceso en todos los núcleos de la CPU.

Para acelerar los cálculos, se pueden utilizar todos los núcleos de la CPU y acelerar el flujo de trabajo. Hay varias bibliotecas de código abierto, incluidas Dask, Vaex, Modin, Pandarallel, PyPolars, etc., que paralelizan los cálculos en varios núcleos de la CPU. En este artículo, analizaremos la implementación y el uso de la biblioteca PyPolars y compararemos su rendimiento con la biblioteca Pandas.

¿Qué es PyPolars?

 
PyPolars es una biblioteca de marcos de datos de Python de código abierto similar a Pandas. PyPolars utiliza todos los núcleos disponibles de la CPU y, por lo tanto, realiza los cálculos más rápido que Pandas. PyPolars tiene una API similar a la de Pandas. Está escrito en óxido con envoltorios de Python.


Idealmente, PyPolars se usa cuando los datos son demasiado grandes para Pandas y demasiado pequeños para Spark.


¿Cómo funciona PyPolars?

 
La biblioteca PyPolars tiene dos API, una es Eager API y la otra es Lazy API. Eager API es muy similar a la de Pandas, y los resultados se producen justo después de que se completa la ejecución de manera similar a Pandas. La Lazy API es muy similar a Spark, donde se forma un mapa o plan tras la ejecución de una consulta. Luego, la ejecución se ejecuta en paralelo en todos los núcleos de la CPU.



(Imagen del autor), API de PyPolars

 

PyPolars es básicamente un enlace de Python a la biblioteca Polars. La mejor parte de la biblioteca PyPolars es su similitud API con Pandas, lo que lo hace más fácil para los desarrolladores.

Instalación:

 
PyPolars se puede instalar desde PyPl usando el siguiente comando:

pip install py-polars


e importar la biblioteca usando

import pypolars as pl


Restricciones de tiempo de referencia:


Para las demostraciones, he utilizado un conjunto de datos de gran tamaño (~ 6.4 Gb) con 25 millones de instancias.




(Imagen del autor), número de tiempo de referencia para las operaciones básicas de Pandas y Py-Polars

 

Para los números de tiempo de referencia anteriores para algunas operaciones básicas que utilizan la biblioteca Pandas y PyPolars, podemos observar que PyPolars es casi 2 a 3 veces más rápido que Pandas.

Ahora sabemos que PyPolars tiene una API muy similar a la de Pandas, pero aún así, no cubre todas las funciones de Pandas. Por ejemplo, no tenemos .describe() función en PyPolars, en su lugar, podemos usar df_pypolars.to_pandas().describe()

Uso:

 

(Código por autor)

Conclusión:

 
En este artículo, hemos cubierto una pequeña introducción a la biblioteca PyPolars, incluida su implementación, uso y comparación de sus números de tiempo de referencia con Pandas para algunas operaciones básicas. Tenga en cuenta que PyPolars funciona de manera muy similar a la de Pandas, y PyPolars es una biblioteca de memoria eficiente, ya que la memoria respaldada por ella es inmutable.

Uno puede pasar por el documentación para obtener una comprensión detallada de la biblioteca. Hay varias otras bibliotecas de código abierto que pueden paralelizar las operaciones de Pandas y acelerar el proceso. Leer el artículo mencionado a continuación para conocer 4 de estas bibliotecas:

4 bibliotecas que pueden paralelizar el ecosistema Pandas existente
Distribuya la carga de trabajo de Python mediante el procesamiento paralelo utilizando estos marcos

 
Referencias:

[1] Documentación de Polars y repositorio de GitHub: https://github.com/ritchie46/polars

 
Gracias por leer

 
Bio: Satyam Kumar es un entusiasta y programador del aprendizaje automático. Satyam escribe sobre ciencia de datos y es uno de los mejores escritores en inteligencia artificial. Está buscando una carrera desafiante en una organización que le brinde la oportunidad de capitalizar sus habilidades y habilidades técnicas.

Original. Publicado de nuevo con permiso.

Relacionado:

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

Sello de tiempo:

Mas de nuggets