Este corect să pretindem că noua bibliotecă Polars îi depășește pe Pandas în mai multe benchmark-uri sau este încă biblioteca Pandas alegerea dominantă?
În timp ce efectuați sarcini de analiză a datelor, sunt șanse să fi întâlnit Panda. A fost cea mai predominantă bibliotecă în analiza datelor pentru o lungă perioadă de timp. Polars, pe de altă parte, este o bibliotecă relativ nouă, care se mândrește cu performanțe ridicate și eficiență a memoriei. Dar, care este mai bun?
Aici, veți vedea o comparație a performanței dintre Pandas și Polars într-o serie de sarcini comune de manipulare a datelor.
Măsurarea performanței: metrici și set de date de referință
Această comparație va ține cont de capacitatea panda și Polari biblioteci pentru a manipula setul de date Black Friday Sale Kaggle. Acest set de date conține 550.068 de rânduri de date. Include informații despre datele demografice ale clienților, istoricul achizițiilor și detalii despre produse.
Pentru a asigura măsurători corecte de performanță, comparația va folosi timpul de execuție ca măsură standard de performanță pentru fiecare sarcină. Platforma de rulare a codului pentru fiecare sarcină de comparare va fi Google Colab.
Codul sursă complet care compară bibliotecile Pandas și Polars este disponibil în a Depozitul GitHub.
Citirea datelor dintr-un fișier CSV
Această sarcină compară timpul necesar fiecărei biblioteci pentru a citi datele din setul de date Black Friday Sale. Setul de date este în format CSV. Pandas și Polars oferă funcționalități similare pentru această sarcină.
Pandelor le ia de două ori mai mult timp pentru a citi datele din setul de date Black Friday.
Selectarea coloanelor
Această sarcină măsoară timpul necesar fiecărei biblioteci pentru a selecta coloanele din setul de date. Aceasta implică selectarea ID-ul de utilizator și Cumpărare coloane.
Polarii au nevoie de mult mai puțin timp pentru a selecta coloanele din setul de date în comparație cu Pandas.
Filtrarea rândurilor
Această sarcină compară performanța fiecărei biblioteci în rândurile de filtrare în care Gen coloana este F din setul de date.
Polarii au nevoie de foarte puțin timp în comparație cu panda pentru a filtra rândurile.
Gruparea și agregarea datelor
Această sarcină implică gruparea datelor pe una sau mai multe coloane. Apoi, efectuarea unor funcții de agregare pe grupuri. Măsoară timpul necesar fiecărei biblioteci pentru a grupa datele după Gen coloană și calculați suma medie de achiziție pentru fiecare grup.
Din nou, polarii îi depășesc pe panda. Dar marja nu este la fel de mare ca cea de filtrare a rândurilor.
Aplicarea funcțiilor datelor
Această sarcină implică aplicarea unei funcții la una sau mai multe coloane. Măsoară timpul necesar fiecărei biblioteci pentru a multiplica Cumpărare coloana cu 2.
Abia vezi bara Polars. Polarii depășesc din nou panda.
Îmbinarea datelor
Această sarcină implică îmbinând două sau mai multe DataFrames pe baza faptului că există una sau mai multe coloane comune. Măsoară timpul necesar fiecărei biblioteci pentru a fuziona ID-ul de utilizator și Cumpărare coloane din două DataFrames separate.
Ambele biblioteci necesită ceva timp pentru a finaliza această sarcină. Dar Polars ia aproape jumătate din timpul necesar Pandas pentru a fuziona datele.
De ce Polars este capabil să depășească panda?
În toate sarcinile de manipulare a datelor de mai sus, Polarii depășesc Panda. Există mai multe motive pentru care Polars pot depăși Panda în timpul de execuție.
- Optimizarea memoriei: Polars folosește Rust, un limbaj de programare a sistemului care optimizează utilizarea memoriei. Acesta permite Polars să minimizeze timpul pe care îl petrece alocarea și dealocarea memoriei. Acest lucru face timpul de execuție mai rapid.
- Operații SIMD (Single Instruction Multiple Data).: Polars utilizează operațiuni SIMD pentru a efectua calcule pe date. Aceasta înseamnă că poate folosi o singură instrucțiune pentru a efectua aceeași operație pe mai multe elemente de date simultan. Acest lucru permite Polars să efectueze operațiuni mult mai rapid decât Pandas, care utilizează o abordare cu un singur fir.
- Evaluare leneșă: Polars folosește evaluarea leneșă pentru a întârzia execuția operațiunilor până când are nevoie de ele. Acest lucru reduce timpul petrecut de Polars pentru operațiuni inutile și îmbunătățește performanța.
Extindeți-vă abilitățile de știință a datelor
Există multe biblioteci Python care vă pot ajuta în știința datelor. Panda și polarii sunt doar o mică parte. Pentru a îmbunătăți performanța programului dvs., ar trebui să vă familiarizați cu mai multe biblioteci de știință a datelor. Acest lucru vă va ajuta să comparați și să alegeți care bibliotecă se potrivește cel mai bine cazului dvs. de utilizare.