Är det korrekt att hävda att det nya Polars-biblioteket överträffar Pandas i flera riktmärken, eller är Pandas-biblioteket fortfarande det dominerande valet?
När du utförde dataanalysuppgifter är chansen stor att du har stött på pandor. Det har varit det mest dominerande biblioteket inom dataanalys under lång tid. Polars å andra sidan är ett relativt nytt bibliotek som har hög prestanda och minneseffektivitet. Men vilken är bättre?
Här kommer du att se en jämförelse av prestandan mellan Pandas och Polars över en rad vanliga datamanipuleringsuppgifter.
Mäta prestanda: mätvärden och benchmarkdatauppsättning
Denna jämförelse kommer att ta hänsyn till förmågan hos Pandas och Polars bibliotek att manipulera Black Friday Sale-datauppsättningen från Kuggla. Denna datauppsättning innehåller 550 068 rader med data. Den innehåller information om kunddemografi, köphistorik och produktinformation.
För att säkerställa rättvisa prestandamätningar kommer jämförelsen att använda exekveringstid som ett standardprestandamått för varje uppgift. Plattformen för att köra koden för varje jämförelseuppgift kommer att vara Google Colab.
Den fullständiga källkoden som jämför Pandas- och Polars-biblioteken är tillgänglig i en GitHub-förråd.
Läsa data från en CSV-fil
Den här uppgiften jämför den tid det tar för varje bibliotek att läsa data från Black Friday Sale-datauppsättningen. Datauppsättningen finns i CSV-format. Pandas och Polars erbjuder liknande funktionalitet för denna uppgift.
Pandas tar dubbelt så lång tid det tar Polars att läsa data i Black Friday Sale-datauppsättningen.
Välja kolumner
Den här uppgiften mäter den tid det tar för varje bibliotek att välja kolumner från datamängden. Det handlar om att välja Användar ID och Inköp kolumner.
Polarer tar betydligt mindre tid att välja kolumner från datamängden jämfört med pandor.
Filtrera rader
Den här uppgiften jämför prestandan för varje bibliotek i filtreringsrader där Kön kolumnen är F från datamängden.
Polarer tar väldigt kort tid jämfört med pandor att filtrera bort raderna.
Gruppering och aggregering av data
Denna uppgift innebär att gruppera data efter en eller flera kolumner. Utför sedan några aggregeringsfunktioner på grupperna. Den mäter den tid det tar för varje bibliotek att gruppera data efter Kön kolumnen och beräkna det genomsnittliga inköpsbeloppet för varje grupp.
Återigen överträffar Polars Pandas. Men marginalen är inte lika stor som att filtrera raderna.
Tillämpa funktioner på data
Denna uppgift innebär att en funktion appliceras på en eller flera kolumner. Den mäter den tid det tar för varje bibliotek att multiplicera Inköp kolumn med 2.
Du kan knappt se Polars bar. Polarerna överträffar återigen Pandas.
Sammanfoga data
Denna uppgift innebär slå samman två eller flera DataFrames på grundval av att en eller flera vanliga kolumner finns. Den mäter den tid det tar för varje bibliotek att slå samman Användar ID och Inköp kolumner från två separata DataFrames.
Det tar lite tid för båda biblioteken att slutföra denna uppgift. Men Polars tar nästan hälften av den tid det tar för Pandas att slå samman data.
Varför Polars kan överträffa pandor?
I alla datamanipuleringsuppgifter ovan överträffar Polars Pandas. Det finns flera anledningar till varför Polars kan överträffa Pandas i avrättningstid.
- Minnesoptimering: Polars använder Rust, ett systemprogrammeringsspråk som optimerar minnesanvändningen. Det gör det möjligt för Polars att minimera tiden de lägger på minnesallokering och -deallokering. Detta gör utförandetiden snabbare.
- SIMD-operationer (Single Instruction Multiple Data).: Polars använder SIMD-operationer för att utföra beräkningar på data. Detta innebär att den kan använda en enda instruktion för att utföra samma operation på flera dataelement samtidigt. Detta gör att Polars kan utföra operationer mycket snabbare än Pandas, som använder ett entrådigt tillvägagångssätt.
- Lat utvärdering: Polars använder lat utvärdering för att fördröja utförandet av operationer tills det behöver dem. Detta minskar tiden Polars lägger på onödiga operationer och förbättrar prestandan.
Utöka dina kunskaper i datavetenskap
Det finns många Python-bibliotek där ute som kan hjälpa dig inom datavetenskap. Panda och polar är bara en liten bråkdel. För att förbättra programmets prestanda bör du bekanta dig med fler datavetenskapliga bibliotek. Detta hjälper dig att jämföra och välja vilket bibliotek som bäst passar ditt användningsfall.