Je li točna tvrdnja da nova biblioteka Polars nadmašuje Pandu u više mjerila ili je biblioteka Panda još uvijek dominantan izbor?

Dok obavljate zadatke analize podataka, velike su šanse da ste naišli na Pande. Dugo je bila najdominantnija knjižnica u analizi podataka. S druge strane, Polars je relativno nova biblioteka koja se može pohvaliti visokim performansama i učinkovitošću memorije. Ali, koji je bolji?

Ovdje ćete vidjeti usporedbu performansi Pandas i Polars u nizu uobičajenih zadataka manipulacije podacima.

Mjerenje izvedbe: metrika i referentni skup podataka

Ova usporedba će uzeti u obzir sposobnost Panda i Polari knjižnice iz kojih možete manipulirati skupom podataka rasprodaje na Crni petak Kaggle. Ovaj skup podataka sadrži 550 068 redaka podataka. Sadrži informacije o demografskim podacima kupaca, povijesti kupovine i pojedinostima o proizvodu.

Kako bi se osigurala pravedna mjerenja izvedbe, usporedba će koristiti vrijeme izvršenja kao standardnu ​​metriku izvedbe za svaki zadatak. Platforma za pokretanje koda za svaki zadatak usporedbe bit će Google Colab.

instagram viewer

Potpuni izvorni kod koji uspoređuje biblioteke Pandas i Polars dostupan je u a GitHub spremište.

Čitanje podataka iz CSV datoteke

Ovaj zadatak uspoređuje vrijeme koje je potrebno svakoj biblioteci za čitanje podataka iz skupa podataka rasprodaje za Crni petak. Skup podataka je unutra CSV format. Pandas i Polars nude sličnu funkcionalnost za ovaj zadatak.

Pandama je potrebno dvostruko više vremena nego što je potrebno Polarsima za čitanje podataka u skupu podataka rasprodaje na Crni petak.

Odabir stupaca

Ovaj zadatak mjeri vrijeme koje je potrebno da svaka biblioteka odabere stupce iz skupa podataka. To uključuje odabir User_ID i Kupiti stupci.

Polarima je potrebno znatno manje vremena za odabir stupaca iz skupa podataka u usporedbi s Pandama.

Filtriranje redaka

Ovaj zadatak uspoređuje izvedbu svake biblioteke u filtriranju redaka gdje Spol stupac je F iz skupa podataka.

Polarima je potrebno vrlo kratko vrijeme u usporedbi s Pandama da filtriraju retke.

Grupiranje i prikupljanje podataka

Ovaj zadatak uključuje grupiranje podataka prema jednom ili više stupaca. Zatim, izvođenje nekih funkcija agregacije na grupama. Mjeri vrijeme koje je potrebno svakoj knjižnici da grupira podatke prema Spol stupac i izračunajte prosječni iznos kupnje za svaku skupinu.

Opet, Polari nadmašuju Pande. Ali margina nije tako velika kao kod filtriranja redaka.

Primjena funkcija na podatke

Ovaj zadatak uključuje primjenu funkcije na jedan ili više stupaca. Mjeri vrijeme koje je potrebno svakoj knjižnici da umnoži Kupiti stupac od 2.

Polars bar se jedva vidi. Polari ponovno nadmašuju Pande.

Spajanje podataka

Ovaj zadatak uključuje spajanje dva ili više DataFramesa na temelju postojanja jednog ili više zajedničkih stupaca. Mjeri vrijeme potrebno svakoj knjižnici za spajanje User_ID i Kupiti stupaca iz dva odvojena okvira podataka.

Objema knjižnicama potrebno je neko vrijeme da obave ovaj zadatak. Ali Polarsu je potrebno gotovo pola vremena potrebnog Pandama za spajanje podataka.

Zašto Polars može nadmašiti Pande?

U svim gore navedenim zadacima manipulacije podacima, Polari nadmašuju Pande. Postoji nekoliko razloga zašto bi Polars mogao biti bolji od Panda u vremenu izvršenja.

  • Optimizacija memorije: Polars koristi Rust, sistemski programski jezik koji optimizira korištenje memorije. Omogućuje Polarsu da minimizira vrijeme koje troši na dodjelu i oslobađanje memorije. To čini vrijeme izvršenja bržim.
  • SIMD (Jedna instrukcija s više podataka) operacije: Polars koristi SIMD operacije za izvođenje izračuna na podacima. To znači da može koristiti jednu instrukciju za izvođenje iste operacije na više podatkovnih elemenata istovremeno. To Polarima omogućuje izvođenje operacija puno brže od Panda, koje koriste jednonitni pristup.
  • Lijena evaluacija: Polars koristi lijenu procjenu za odgodu izvršenja operacija dok ih ne zatreba. Ovo smanjuje količinu vremena koje Polars troši na nepotrebne operacije i poboljšava performanse.

Proširite svoje vještine znanosti o podacima

Postoje mnoge Python knjižnice koje vam mogu pomoći u znanosti o podacima. Pande i Polari samo su mali dio. Kako biste poboljšali izvedbu svog programa, trebali biste se upoznati s više knjižnica znanosti o podacima. To će vam pomoći da usporedite i odaberete koja biblioteka najbolje odgovara vašem slučaju upotrebe.