Helyes-e azt állítani, hogy az új Polars könyvtár több benchmarkban is felülmúlja a Pandákat, vagy továbbra is a Pandas könyvtár a domináns választás?

Az adatelemzési feladatok végrehajtása során nagy eséllyel találkozott Pandákkal. Hosszú ideig az adatelemzés legdominánsabb könyvtára. Másrészt a Polars egy viszonylag új könyvtár, amely nagy teljesítménnyel és memóriahatékonysággal büszkélkedhet. De vajon melyik a jobb?

Itt láthatja a Pandák és a Polars teljesítményének összehasonlítását a gyakori adatkezelési feladatok során.

A teljesítmény mérése: mérőszámok és benchmark adatkészlet

Ez az összehasonlítás figyelembe veszi a Pandák képességét és Polars könyvtárak a Black Friday Sale adatkészlet kezeléséhez Kaggle. Ez az adatkészlet 550 068 adatsort tartalmaz. Információkat tartalmaz az ügyfelek demográfiai adatairól, a vásárlási előzményekről és a termék részleteiről.

A tisztességes teljesítménymérések biztosítása érdekében az összehasonlítás a végrehajtási időt használja standard teljesítménymutatóként minden egyes feladatnál. Az egyes összehasonlítási feladatok kódjának futtatására szolgáló platform a Google Colab lesz.

A Pandas és Polars könyvtárakat összehasonlító teljes forráskód elérhető a GitHub adattár.

Adatok olvasása CSV-fájlból

Ez a feladat összehasonlítja azt az időt, amely alatt az egyes könyvtárak kiolvassák a Black Friday Sale adatkészletből származó adatokat. Az adatkészlet bent van CSV formátum. A Pandák és a Polars hasonló funkciókat kínál erre a feladatra.

A pandák kétszer annyi időt vesznek igénybe, mint a Polaroknak a Black Friday Sale adatkészletben szereplő adatok beolvasása.

Oszlopok kiválasztása

Ez a feladat azt az időt méri, amely alatt az egyes könyvtárak kiválasztják az oszlopokat az adatkészletből. Ez magában foglalja a Felhasználói azonosító és Vásárlás oszlopok.

A Polaroknak lényegesen kevesebb időbe telik az oszlopok kiválasztása az adatkészletből, mint a Pandák.

Sorok szűrése

Ez a feladat összehasonlítja az egyes könyvtárak teljesítményét olyan szűrési sorokban, ahol a Nem oszlop F az adatkészletből.

A pandákhoz képest nagyon rövid idő alatt szűrik ki a sarkokat a sorok.

Adatok csoportosítása és összesítése

Ez a feladat magában foglalja az adatok egy vagy több oszlop szerinti csoportosítását. Ezután néhány aggregációs funkció végrehajtása a csoportokon. Azt az időt méri, amely alatt az egyes könyvtárak az adatokat csoportosítják Nem oszlopban, és számítsa ki az egyes csoportok átlagos vásárlási összegét.

A Polars ismét felülmúlja a Pandákat. De a margó nem akkora, mint a sorok szűrésénél.

Függvények alkalmazása adatokra

Ez a feladat egy függvény alkalmazását foglalja magában egy vagy több oszlopra. Azt az időt méri, amely alatt az egyes könyvtárak megsokszorozzák a Vásárlás oszlop 2-vel.

Alig látni a Polars sávot. A sarkiak ismét felülmúlják a pandákat.

Adatok egyesítése

Ez a feladat magában foglalja két vagy több DataFrame összevonása azon az alapon, hogy létezik egy vagy több közös oszlop. Méri azt az időt, amely alatt az egyes könyvtárak egyesítik a Felhasználói azonosító és Vásárlás oszlopokat két külön DataFrame-ből.

Mindkét könyvtárnak időbe telik a feladat elvégzése. A Polars azonban csaknem feleannyi időt vesz igénybe, mint a Pandák az adatok egyesítése.

Miért képes a Polars felülmúlni a pandákat?

Az összes fenti adatkezelési feladatban a Polarok felülmúlják a Pandákat. Több oka is van annak, hogy a Polars miért teljesíti jobban a Pandákat a végrehajtási idő tekintetében.

  • Memória optimalizálás: A Polars a Rust rendszerprogramozási nyelvet használja, amely optimalizálja a memóriahasználatot. Lehetővé teszi a Polars számára, hogy minimalizálja a memóriafoglalásra és -felszabadításra fordított időt. Ez felgyorsítja a végrehajtási időt.
  • SIMD (Single Instruction Multiple Data) műveletek: A Polars SIMD műveleteket használ az adatok számításaihoz. Ez azt jelenti, hogy egyetlen utasítással képes ugyanazt a műveletet egyszerre több adatelemen végrehajtani. Ez lehetővé teszi a Polarok számára, hogy sokkal gyorsabban hajtsanak végre műveleteket, mint az egyszálas megközelítést alkalmazó Pandák.
  • Lusta értékelés: A Polars lusta kiértékelést használ a műveletek végrehajtásának késleltetésére, amíg szüksége van rájuk. Ez csökkenti azt az időt, amit a Polars felesleges műveletekre fordít, és javítja a teljesítményt.

Bővítse adattudományi készségeit

Számos Python-könyvtár létezik, amelyek segíthetnek az adattudományban. A pandák és a sarkok csak egy kis töredék. A program teljesítményének javítása érdekében több adattudományi könyvtárat kell megismernie. Ez segít összehasonlítani és kiválasztani, hogy melyik könyvtár felel meg leginkább az Ön használati esetének.