Er det riktig å påstå at det nye Polars-biblioteket overgår Pandas i flere benchmarks, eller er Pandas-biblioteket fortsatt det dominerende valget?
Mens du utfører dataanalyseoppgaver, er sjansen stor for at du har møtt pandaer. Det har vært det mest dominerende biblioteket innen dataanalyse i lang tid. Polars på den annen side er et relativt nytt bibliotek som kan skryte av høy ytelse og minneeffektivitet. Men hvilken er bedre?
Her vil du se en sammenligning av ytelsen mellom Pandas og Polars på tvers av en rekke vanlige datamanipulasjonsoppgaver.
Måling av ytelse: Beregninger og referansedatasett
Denne sammenligningen vil ta hensyn til evnen til Pandaer og Polarer biblioteker for å manipulere Black Friday Sale-datasettet fra Kaggle. Dette datasettet inneholder 550 068 rader med data. Den inkluderer informasjon om kundedemografi, kjøpshistorikk og produktdetaljer.
For å sikre rettferdige ytelsesmålinger, vil sammenligningen bruke utførelsestid som en standard ytelsesmåling for hver oppgave. Plattformen for å kjøre koden for hver sammenligningsoppgave vil være Google Colab.
Den fullstendige kildekoden som sammenligner Pandas- og Polars-bibliotekene er tilgjengelig i en GitHub-depot.
Lese data fra en CSV-fil
Denne oppgaven sammenligner tiden det tar for hvert bibliotek å lese data fra Black Friday Sale-datasettet. Datasettet er inne CSV-format. Pandaer og Polarer tilbyr lignende funksjonalitet for denne oppgaven.
Pandaer bruker dobbelt så lang tid det tar Polars å lese data i Black Friday Sale-datasettet.
Velge kolonner
Denne oppgaven måler tiden det tar for hvert bibliotek å velge kolonnene fra datasettet. Det innebærer å velge Bruker-ID og Kjøp kolonner.
Polarer bruker betydelig mindre tid på å velge kolonner fra datasettet sammenlignet med pandaer.
Filtrere rader
Denne oppgaven sammenligner ytelsen til hvert bibliotek i filtreringsrader der Kjønn kolonnen er F fra datasettet.
Polarer bruker svært kort tid sammenlignet med pandaer for å filtrere ut radene.
Gruppering og aggregering av data
Denne oppgaven innebærer å gruppere data etter én eller flere kolonner. Deretter utfører du noen aggregeringsfunksjoner på gruppene. Den måler tiden det tar for hvert bibliotek å gruppere dataene etter Kjønn kolonne og beregne gjennomsnittlig kjøpsbeløp for hver gruppe.
Igjen, Polars utkonkurrerer Pandas. Men marginen er ikke så stor som ved å filtrere radene.
Bruke funksjoner på data
Denne oppgaven innebærer å bruke en funksjon på én eller flere kolonner. Den måler tiden det tar for hvert bibliotek å multiplisere Kjøp kolonne med 2.
Du kan knapt se Polars-baren. Polarer utkonkurrerer nok en gang pandaer.
Slå sammen data
Denne oppgaven innebærer slå sammen to eller flere DataFrames på bakgrunn av at det finnes en eller flere vanlige kolonner. Den måler tiden det tar for hvert bibliotek å slå sammen Bruker-ID og Kjøp kolonner fra to separate DataFrames.
Det tar litt tid for begge bibliotekene å fullføre denne oppgaven. Men Polars bruker nesten halvparten av tiden Pandas bruker på å slå sammen dataene.
Hvorfor Polars er i stand til å overgå pandaer?
I alle datamanipuleringsoppgavene ovenfor, utkonkurrerer Polars Pandas. Det er flere grunner til at Polars kan utkonkurrere Pandas i utførelsestid.
- Minneoptimalisering: Polars bruker Rust, et systemprogrammeringsspråk som optimerer minnebruken. Det lar Polars minimere tiden de bruker på minnetildeling og deallokering. Dette gjør utførelsestiden raskere.
- SIMD-operasjoner (Single Instruction Multiple Data).: Polars bruker SIMD-operasjoner for å utføre beregninger på data. Dette betyr at den kan bruke en enkelt instruksjon for å utføre den samme operasjonen på flere dataelementer samtidig. Dette gjør at Polars kan utføre operasjoner mye raskere enn Pandas, som bruker en enkelt-tråds tilnærming.
- Lat evaluering: Polars bruker lat evaluering for å utsette utførelsen av operasjoner til den trenger dem. Dette reduserer tiden Polars bruker på unødvendige operasjoner og forbedrer ytelsen.
Utvid dine datavitenskapelige ferdigheter
Det er mange Python-biblioteker der ute som kan hjelpe deg med datavitenskap. Pandaer og polarer er bare en liten brøkdel. For å forbedre programmets ytelse bør du gjøre deg kjent med flere datavitenskapelige biblioteker. Dette vil hjelpe deg med å sammenligne og velge hvilket bibliotek som passer best for din brukssituasjon.