Faceți Pandas de 3 ori mai rapid cu PyPolars

Nodul sursă: 1854103

Faceți Pandas de 3 ori mai rapid cu PyPolars

Aflați cum să vă accelerați fluxul de lucru Pandas folosind biblioteca PyPolars.


By Satyam Kumar, pasionat de învățare automată și programator



Fotografie de Tim Gouw on Unsplash

 

Pandas este unul dintre cele mai importante pachete Python dintre oamenii de știință de date pentru a se juca cu datele. Biblioteca Pandas este folosită mai ales pentru explorări și vizualizări de date, deoarece vine cu tone de funcții încorporate. Pandas nu reușește să gestioneze seturi de date de dimensiuni mari, deoarece nu își scalează sau nu își distribuie procesul în toate nucleele procesorului.

Pentru a accelera calculele, se pot utiliza toate nucleele procesorului și se pot accelera fluxul de lucru. Există diverse biblioteci open-source, inclusiv Dask, Vaex, Modin, Pandarallel, PyPolars etc., care paralelizează calculele pe mai multe nuclee ale procesorului. În acest articol, vom discuta despre implementarea și utilizarea bibliotecii PyPolars și vom compara performanța acesteia cu biblioteca Pandas.

Ce este PyPolars?

 
PyPolars este o bibliotecă de cadre de date Python open-source similară cu Pandas. PyPolars utilizează toate nucleele disponibile ale procesorului și, prin urmare, efectuează calculele mai rapid decât Pandas. PyPolars are un API similar cu cel al lui Pandas. Este scris în rugină cu ambalaje Python.


În mod ideal, PyPolars este folosit atunci când datele sunt prea mari pentru Pandas și prea mici pentru Spark


Cum funcționează PyPolars?

 
Biblioteca PyPolars are două API-uri, unul este Eager API și celălalt este Lazy API. Eager API este foarte asemănător cu cel al lui Pandas, iar rezultatele sunt produse imediat după finalizarea execuției, similar cu Pandas. Lazy API este foarte similar cu Spark, unde se formează o hartă sau un plan la executarea unei interogări. Apoi execuția este executată paralel pe toate nucleele CPU.



(Imagine după autor), API-urile PyPolars

 

PyPolars este practic ca python care se leagă la biblioteca Polars. Cea mai bună parte a bibliotecii PyPolars este asemănarea API-ului cu Pandas, ceea ce face mai ușor pentru dezvoltatori.

Instalare:

 
PyPolars poate fi instalat din PyPl folosind următoarea comandă:

pip install py-polars


și importați biblioteca folosind

import pypolars as pl


Constrângeri de timp de referință:


Pentru demonstrații, am folosit un set de date de dimensiuni mari (~6.4 Gb) cu 25 de milioane de instanțe.




(Imagine după autor), Număr de timp de referință pentru operațiunile de bază pentru Pandas și Py-Polars

 

Pentru numerele de timp de referință de mai sus pentru unele operațiuni de bază folosind biblioteca Pandas și PyPolars, putem observa că PyPolars este de aproape 2 până la 3 ori mai rapid decât Pandas.

Acum știm că PyPolars are un API foarte asemănător cu cel al lui Pandas, dar totuși, nu acoperă toate funcțiile lui Pandas. De exemplu, nu avem .describe() funcția în PyPolars, în schimb, putem folosi df_pypolars.to_pandas().describe()

Utilizare:

 

(Cod după autor)

Concluzie:

 
În acest articol, am acoperit o mică introducere în biblioteca PyPolars, inclusiv implementarea acesteia, utilizarea și compararea numerelor de timp de referință cu Pandas pentru unele operațiuni de bază. Rețineți că PyPolars funcționează foarte asemănător cu cel al lui Pandas, iar PyPolars este o bibliotecă eficientă din punct de vedere al memoriei, deoarece memoria susținută de aceasta este imuabilă.

Se poate trece prin documentaţie pentru a obține o înțelegere detaliată a bibliotecii. Există diverse alte biblioteci open-source care pot paraleliza operațiunile Pandas și pot accelera procesul. Citeste articolul mai jos mentionat sa cunosti 4 astfel de biblioteci:

4 biblioteci care pot paraleliza ecosistemul existent Pandas
Distribuiți volumul de lucru Python prin procesare paralelă folosind aceste cadre

 
Referinte:

[1] Documentația Polars și depozitul GitHub: https://github.com/ritchie46/polars

 
Vă mulțumim pentru lectură

 
Bio: Satyam Kumar este un entuziast și programator de învățare automată. Satyam scrie despre Data Science și este un scriitor de top în AI. El caută o carieră provocatoare într-o organizație care oferă o oportunitate de a-și valorifica abilitățile și abilitățile tehnice.

Original. Repostat cu permisiunea.

Related:

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

Timestamp-ul:

Mai mult de la KDnuggets