Is het juist om te beweren dat de nieuwe Polars-bibliotheek Panda's overtreft in meerdere benchmarks, of is de Panda's-bibliotheek nog steeds de dominante keuze?

Tijdens het uitvoeren van data-analysetaken is de kans groot dat u panda's bent tegengekomen. Het is lange tijd de meest overheersende bibliotheek in data-analyse geweest. Polars daarentegen is een relatief nieuwe bibliotheek met hoge prestaties en geheugenefficiëntie. Maar welke is beter?

Hier ziet u een vergelijking van de prestaties tussen Panda's en Polars voor een reeks veelvoorkomende gegevensmanipulatietaken.

Prestaties meten: Metrics en Benchmark Dataset

Deze vergelijking houdt rekening met het vermogen van Panda's en Polaren bibliotheken om de Black Friday Sale-dataset van te manipuleren Kaggle. Deze dataset bevat 550.068 rijen met data. Het bevat informatie over demografische gegevens van klanten, aankoopgeschiedenis en productdetails.

Om eerlijke prestatiemetingen te garanderen, gebruikt de vergelijking de uitvoeringstijd als standaard prestatiemaatstaf voor elke taak. Het platform waarop de code voor elke vergelijkingstaak wordt uitgevoerd, is Google Colab.

De volledige broncode die de Panda's- en Polars-bibliotheken vergelijkt, is beschikbaar in een GitHub-opslagplaats.

Gegevens uit een CSV-bestand lezen

Deze taak vergelijkt de tijd die elke bibliotheek nodig heeft om gegevens uit de Black Friday Sale-gegevensset te lezen. De dataset is binnen CSV-indeling. Panda's en Polars bieden vergelijkbare functionaliteit voor deze taak.

Panda's hebben twee keer zoveel tijd nodig als Polars om gegevens in de Black Friday Sale-dataset te lezen.

Kolommen selecteren

Deze taak meet de tijd die elke bibliotheek nodig heeft om de kolommen uit de dataset te selecteren. Het gaat om het selecteren van de Gebruikersnaam En Aankoop kolommen.

Polars hebben aanzienlijk minder tijd nodig om kolommen uit de dataset te selecteren in vergelijking met Pandas.

Rijen filteren

Deze taak vergelijkt de prestaties van elke bibliotheek in filterrijen waar de Geslacht kolom is F uit de dataset.

Polars hebben een zeer korte tijd nodig in vergelijking met Panda's om de rijen eruit te filteren.

Groeperen en aggregeren van gegevens

Deze taak omvat het groeperen van gegevens op een of meer kolommen. Voer vervolgens enkele aggregatiefuncties uit op de groepen. Het meet de tijd die elke bibliotheek nodig heeft om de gegevens te groeperen op de Geslacht kolom en bereken het gemiddelde aankoopbedrag voor elke groep.

Nogmaals, Polars presteren beter dan Panda's. Maar de marge is niet zo groot als die van het filteren van de rijen.

Functies toepassen op gegevens

Deze taak omvat het toepassen van een functie op een of meer kolommen. Het meet de tijd die elke bibliotheek nodig heeft om het aantal te vermenigvuldigen Aankoop kolom per 2.

Je kunt de Polars-balk nauwelijks zien. Polars presteren opnieuw beter dan Panda's.

Gegevens samenvoegen

Deze taak houdt in het samenvoegen van twee of meer DataFrames gebaseerd op het feit dat er een of meer gemeenschappelijke kolommen bestaan. Het meet de tijd die elke bibliotheek nodig heeft om de Gebruikersnaam En Aankoop kolommen uit twee afzonderlijke DataFrames.

Het kost beide bibliotheken enige tijd om deze taak te voltooien. Maar Polars heeft bijna de helft van de tijd nodig die Panda's nodig heeft om de gegevens samen te voegen.

Waarom kan Polars beter presteren dan panda's?

In alle bovenstaande gegevensmanipulatietaken presteren Polars beter dan Panda's. Er zijn verschillende redenen waarom Polars beter presteren dan Panda's in uitvoeringstijd.

  • Geheugen optimalisatie: Polars gebruikt Rust, een systeemprogrammeertaal die het geheugengebruik optimaliseert. Hiermee kan Polars de tijd die het besteedt aan geheugentoewijzing en deallocatie tot een minimum beperken. Dit maakt de uitvoeringstijd sneller.
  • SIMD-bewerkingen (Single Instruction Multiple Data).: Polars gebruikt SIMD-bewerkingen om berekeningen op gegevens uit te voeren. Dit betekent dat het een enkele instructie kan gebruiken om dezelfde bewerking tegelijkertijd op meerdere gegevenselementen uit te voeren. Hierdoor kan Polars bewerkingen veel sneller uitvoeren dan Panda's, die een single-threaded benadering gebruiken.
  • Luie evaluatie: Polars gebruikt luie evaluatie om de uitvoering van bewerkingen uit te stellen totdat ze nodig zijn. Dit vermindert de hoeveelheid tijd die Polars besteedt aan onnodige bewerkingen en verbetert de prestaties.

Breid uw datawetenschapsvaardigheden uit

Er zijn veel Python-bibliotheken die u kunnen helpen bij datawetenschap. Panda's en Polars zijn slechts een kleine fractie. Om de prestaties van uw programma te verbeteren, moet u vertrouwd raken met meer gegevenswetenschappelijke bibliotheken. Dit helpt u bij het vergelijken en kiezen welke bibliotheek het beste bij uw gebruik past.