Maak panda's 3 keer sneller met PyPolars

Bronknooppunt: 1854103

Maak panda's 3 keer sneller met PyPolars

Leer hoe u uw Pandas-workflow kunt versnellen met behulp van de PyPolars-bibliotheek.


By Satjam Kumar, Machine Learning Enthousiast & Programmeur



Foto door Tim Gouw on Unsplash

 

Panda's is een van de belangrijkste Python-pakketten onder datawetenschappers om met de gegevens te spelen. Panda's-bibliotheek wordt meestal gebruikt voor gegevensverkenningen en visualisaties, omdat deze wordt geleverd met tal van ingebouwde functies. Panda's kunnen grote datasets niet verwerken, omdat het proces niet wordt geschaald of gedistribueerd over alle kernen van de CPU.

Om de berekeningen te versnellen, kan men alle kernen van de CPU gebruiken en de workflow versnellen. Er zijn verschillende open-sourcebibliotheken, waaronder Dask, Vaex, Modin, Pandarallel, PyPolars, enz. die de berekeningen over meerdere kernen van de CPU parallel laten lopen. In dit artikel zullen we de implementatie en het gebruik van de PyPolars-bibliotheek bespreken en de prestaties ervan vergelijken met de Pandas-bibliotheek.

Wat is PyPolars?

 
PyPolars is een open-source Python-dataframebibliotheek vergelijkbaar met Panda's. PyPolars gebruikt alle beschikbare kernen van de CPU en voert de berekeningen daarom sneller uit dan Panda's. PyPolars heeft een API die lijkt op die van Panda's. Het is in roest geschreven met Python-wikkels.


Idealiter wordt PyPolars gebruikt wanneer de gegevens te groot zijn voor Panda's en te klein voor Spark


Hoe PyPolars werkt?

 
De PyPolars-bibliotheek heeft twee API's, de ene is Eager API en de andere is Lazy API. Eager API lijkt erg op die van Panda's en de resultaten worden geproduceerd net nadat de uitvoering is voltooid, vergelijkbaar met Panda's. Lazy API lijkt erg op Spark, waarbij een kaart of plan wordt gevormd bij het uitvoeren van een query. Vervolgens wordt de uitvoering parallel uitgevoerd over alle kernen van de CPU.



(Afbeelding door auteur), PyPolars API's

 

PyPolars is in feite als python-binding aan de Polars-bibliotheek. Het beste deel van de PyPolars-bibliotheek is de API-overeenkomst met Pandas, wat het voor de ontwikkelaars gemakkelijker maakt.

Installatie:

 
PyPolars kan worden geïnstalleerd vanuit PyPl met behulp van de volgende opdracht:

pip install py-polars


en importeer de bibliotheek met

import pypolars as pl


Benchmark Tijdsbeperkingen:


Voor demonstraties heb ik een grote dataset (~ 6.4 Gb) gebruikt met 25 miljoen exemplaren.




(Afbeelding door auteur), Benchmark-tijdnummer voor basisbewerkingen van Panda's en Py-Polars

 

Voor de bovenstaande benchmark-tijdnummers voor sommige basisbewerkingen met behulp van Panda's en PyPolars-bibliotheek, kunnen we vaststellen dat PyPolars bijna 2x tot 3x sneller is dan Panda's.

Nu weten we dat PyPolars een API heeft die erg lijkt op die van Panda's, maar toch dekt deze niet alle functies van Panda's. We hebben bijvoorbeeld geen .describe() functie in PyPolars, in plaats daarvan kunnen we df_pypolars.to_pandas().describe()

Gebruik:

 

(Code op auteur)

Conclusie:

 
In dit artikel hebben we een kleine inleiding gegeven tot de PyPolars-bibliotheek, inclusief de implementatie, het gebruik en het vergelijken van de benchmark-tijdnummers met Panda's voor enkele basisbewerkingen. Merk op dat PyPolars erg lijkt op dat van Panda's, en PyPolars is een geheugenefficiënte bibliotheek omdat het geheugen dat erdoor wordt ondersteund onveranderlijk is.

Men kan door de documentatie om een ​​gedetailleerd inzicht te krijgen in de bibliotheek. Er zijn verschillende andere open-sourcebibliotheken die de Pandas-operaties parallel kunnen lopen en het proces kunnen versnellen. Lees de onderstaand artikel om 4 van dergelijke bibliotheken te kennen:

4 bibliotheken die het bestaande Panda's-ecosysteem parallel kunnen lopen
Verdeel Python-werklast door parallelle verwerking met behulp van deze frameworks

 
Referenties:

[1] Polars-documentatie en GitHub-repository: https://github.com/ritchie46/polars

 
Bedankt voor het lezen

 
Bio: Satjam Kumar is een Machine Learning Enthousiast & Programmeur. Satyam schrijft over Data Science, en is een Topschrijver in AI. Hij is op zoek naar een uitdagende carrière bij een organisatie die de mogelijkheid biedt om te profiteren van zijn technische vaardigheden en capaciteiten.

ORIGINELE. Met toestemming opnieuw gepost.

Zie ook:

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

Tijdstempel:

Meer van KDnuggets