Er det korrekt at påstå, at det nye Polars-bibliotek overgår Pandas i flere benchmarks, eller er Pandas-biblioteket stadig det dominerende valg?
Mens du udfører dataanalyseopgaver, er chancerne for, at du har stødt på pandaer. Det har været det mest fremherskende bibliotek inden for dataanalyse i lang tid. Polars på den anden side er et relativt nyt bibliotek, der kan prale af høj ydeevne og hukommelseseffektivitet. Men hvilken er bedre?
Her vil du se en sammenligning af ydeevnen mellem Pandas og Polars på tværs af en række almindelige datamanipulationsopgaver.
Måling af ydeevne: Metrics og benchmarkdatasæt
Denne sammenligning vil tage højde for Pandas evne og Polarer biblioteker til at manipulere Black Friday Sale-datasættet fra Kaggle. Dette datasæt indeholder 550.068 rækker af data. Det inkluderer oplysninger om kundedemografi, købshistorik og produktdetaljer.
For at sikre retfærdige præstationsmålinger vil sammenligningen bruge udførelsestid som en standard præstationsmåling på hver opgave. Platformen til at køre koden for hver sammenligningsopgave vil være Google Colab.
Den fulde kildekode, der sammenligner Pandas- og Polars-bibliotekerne, er tilgængelig i en GitHub-depot.
Læsning af data fra en CSV-fil
Denne opgave sammenligner den tid, det tager for hvert bibliotek at læse data fra Black Friday Sale-datasættet. Datasættet er i CSV-format. Pandaer og Polarer tilbyder lignende funktionalitet til denne opgave.
Pandaer tager dobbelt så lang tid, det tager Polars at læse data i Black Friday Sale-datasættet.
Valg af kolonner
Denne opgave måler den tid, det tager for hvert bibliotek at vælge kolonnerne fra datasættet. Det involverer at vælge Bruger ID og Køb kolonner.
Polarer tager betydeligt mindre tid at vælge kolonner fra datasættet sammenlignet med pandaer.
Filtrering af rækker
Denne opgave sammenligner ydeevnen for hvert bibliotek i filtreringsrækker, hvor Køn kolonne er F fra datasættet.
Polarer tager meget kort tid sammenlignet med pandaer at filtrere rækkerne fra.
Gruppering og aggregering af data
Denne opgave involverer gruppering af data efter en eller flere kolonner. Derefter udfører nogle aggregeringsfunktioner på grupperne. Den måler den tid, det tager for hvert bibliotek at gruppere dataene efter Køn kolonne og beregn det gennemsnitlige købsbeløb for hver gruppe.
Igen udkonkurrerer Polars Pandas. Men marginen er ikke så stor som ved at filtrere rækkerne.
Anvendelse af funktioner til data
Denne opgave involverer at anvende en funktion på en eller flere kolonner. Den måler den tid, det tager for hvert bibliotek at gange Køb kolonne med 2.
Du kan næsten ikke se Polars bar. Polarer overgår endnu en gang pandaer.
Sammenlægning af data
Denne opgave involverer sammenlægning af to eller flere DataFrames på baggrund af, at der findes en eller flere fælles kolonner. Den måler den tid, det tager for hvert bibliotek at fusionere Bruger ID og Køb kolonner fra to separate DataFrames.
Det tager begge biblioteker noget tid at fuldføre denne opgave. Men Polars tager næsten halvdelen af den tid, det tager Pandas at fusionere dataene.
Hvorfor Polars er i stand til at overgå pandaer?
I alle ovenstående datamanipulationsopgaver klarer Polars Pandaer. Der er flere grunde til, at Polars kan udkonkurrere Pandas i udførelsestid.
- Hukommelsesoptimering: Polars bruger Rust, et systemprogrammeringssprog, der optimerer hukommelsesforbruget. Det giver Polars mulighed for at minimere den tid, de bruger på hukommelsestildeling og -deallokering. Dette gør udførelsestiden hurtigere.
- SIMD-operationer (Single Instruction Multiple Data).: Polars bruger SIMD-operationer til at udføre beregninger på data. Det betyder, at den kan bruge en enkelt instruktion til at udføre den samme operation på flere dataelementer samtidigt. Dette gør det muligt for Polars at udføre operationer meget hurtigere end Pandas, som bruger en enkelt-gevind tilgang.
- Doven evaluering: Polars bruger doven evaluering til at forsinke udførelsen af operationer, indtil den har brug for dem. Dette reducerer den tid, Polars bruger på unødvendige operationer, og forbedrer ydeevnen.
Udvid dine datavidenskabelige færdigheder
Der er mange Python-biblioteker derude, som kan hjælpe dig med datavidenskab. Pandaer og polarer er kun en lille brøkdel. For at forbedre dit programs ydeevne bør du gøre dig bekendt med flere datavidenskabelige biblioteker. Dette vil hjælpe dig med at sammenligne og vælge, hvilket bibliotek der passer bedst til din brugssituation.