Gör Pandas 3 gånger snabbare med PyPolar

Källnod: 1854103

Gör Pandas 3 gånger snabbare med PyPolar

Lär dig hur du påskyndar ditt Pandas-arbetsflöde med hjälp av PyPolars-biblioteket.


By Satyam Kumar, Maskininlärningsentusiast och programmerare



Foto: Tim Gouw on Unsplash

 

Pandas är ett av de viktigaste Python-paketen bland datavetenskapsmän att leka med data. Pandas-biblioteket används främst för datautforskningar och visualiseringar eftersom det kommer med massor av inbyggda funktioner. Pandor hanterar inte stora datamängder eftersom de inte skalar eller distribuerar sin process över alla kärnor i CPU: n.

För att påskynda beräkningarna kan man använda alla kärnor i CPU: n och påskynda arbetsflödet. Det finns olika öppen källkodsbibliotek inklusive Dask, Vaex, Modin, Pandarallel, PyPolar, etc som parallelliserar beräkningarna över flera kärnor i CPU: n. I den här artikeln kommer vi att diskutera implementeringen och användningen av PyPolars-biblioteket och jämföra dess prestanda med Pandas-biblioteket.

Vad är PyPolar?

 
PyPolars är ett Python-datarambibliotek med öppen källkod som liknar Pandas. PyPolar använder alla tillgängliga kärnor i CPU: n och utför därmed beräkningarna snabbare än Pandas. PyPolars har ett API som liknar Pandas. Den är skriven i rost med Python-omslag.


Helst används PyPolar när data är för stora för Pandas och för små för Spark


Hur fungerar PyPolar?

 
PyPolars-biblioteket har två API: er, det ena är Eager API och det andra är Lazy API. Eager API liknar mycket på Pandas och resultaten produceras precis efter att körningen har slutförts på samma sätt som Pandas. Lazy API liknar väldigt mycket Spark, där en karta eller plan skapas vid körning av en fråga. Sedan körs körningen parallellt över alla kärnor i CPU: n.



(Bild av författare), PyPolars API: er

 

PyPolar är i grunden som pythonbindning till Polars-biblioteket. Den bästa delen av PyPolars-biblioteket är dess API-likhet med Pandas, vilket gör det lättare för utvecklarna.

Installation:

 
PyPolars kan installeras från PyPl med följande kommando:

pip install py-polars


och importera biblioteket med

import pypolars as pl


Jämförelsetidsbegränsningar:


För demonstrationer har jag använt en storleksdataset (~ 6.4Gb) med 25 miljoner instanser.




(Bild av författare), Benchmark Time Number för Pandas och Py-Polars grundläggande operationer

 

För ovanstående tidssiffror för vissa grundläggande operationer som använder Pandas och PyPolar-biblioteket kan vi observera att PyPolar är nästan 2x till 3x snabbare än Pandas.

Nu vet vi att PyPolars har ett API som liknar Pandas, men ändå täcker det inte alla Pandas funktioner. Till exempel har vi inte .describe() funktion i PyPolar, istället kan vi använda df_pypolars.to_pandas().describe()

Användning:

 

(Kod av författare)

Slutsats:

 
I den här artikeln har vi täckt en liten introduktion till PyPolars-biblioteket, inklusive dess implementering, användning och jämförelse av dess jämförelsetidsnummer med Pandas för vissa grundläggande operationer. Observera att PyPolar fungerar väldigt lik Pandas och PyPolar är ett minneseffektivt bibliotek eftersom minnet som stöds av det är oföränderligt.

Man kan gå igenom dokumentation för att få en detaljerad förståelse för biblioteket. Det finns flera andra öppen källkodsbibliotek som kan parallellisera Pandas-operationer och påskynda processen. Läs nedan nämnda artikel att känna till fyra sådana bibliotek:

4 bibliotek som kan parallellisera det befintliga Pandas-ekosystemet
Distribuera Python-arbetsbelastning genom parallell bearbetning med hjälp av dessa ramar

 
Referenser:

[1] Polars dokumentation och GitHub-förvar: https://github.com/ritchie46/polars

 
Tack för att du läste

 
Bio: Satyam Kumar är en maskininlärningsentusiast och programmerare. Satyam skriver om datavetenskap och är en toppförfattare inom AI. Han söker en utmanande karriär hos en organisation som ger en möjlighet att dra nytta av hans tekniska färdigheter och förmågor.

Ursprungliga. Skickas om med tillstånd.

Relaterat:

Källa: https://www.kdnuggets.com/2021/05/pandas-faster-pypolars.html

Tidsstämpel:

Mer från KDnuggets