Правилно ли е да се твърди, че новата библиотека Polars надминава Pandas в множество показатели, или библиотеката Pandas все още е доминиращият избор?

Докато изпълнявате задачи за анализ на данни, има вероятност да сте се сблъскали с Pandas. Това е най-преобладаващата библиотека в анализа на данни от дълго време. Polars от друга страна е сравнително нова библиотека, която може да се похвали с висока производителност и ефективност на паметта. Но кой е по-добър?

Тук ще видите сравнение на производителността между Pandas и Polars в редица общи задачи за манипулиране на данни.

Измерване на производителността: Метрики и сравнителен набор от данни

Това сравнение ще вземе предвид способността на Pandas и поляри библиотеки, от които да манипулирате набора от данни за разпродажбите в Черния петък Kaggle. Този набор от данни съдържа 550 068 реда с данни. Той включва информация за демографските данни на клиентите, историята на покупките и подробности за продукта.

За да се осигурят справедливи измервания на производителността, сравнението ще използва времето за изпълнение като стандартен показател за производителност за всяка задача. Платформата за изпълнение на кода за всяка задача за сравнение ще бъде Google Colab.

instagram viewer

Пълният изходен код, който сравнява библиотеките Pandas и Polars, е достъпен в a GitHub хранилище.

Четене на данни от CSV файл

Тази задача сравнява времето, необходимо на всяка библиотека за четене на данни от набора от данни за Черен петък. Наборът от данни е в CSV формат. Pandas и Polars предлагат подобна функционалност за тази задача.

Пандите отнемат два пъти повече време, отколкото е необходимо на Polars, за да прочетат данни в набора от данни за разпродажбата на Черния петък.

Избиране на колони

Тази задача измерва времето, необходимо на всяка библиотека да избере колоните от набора от данни. Това включва избор на User_ID и Покупка колони.

Polars отнема значително по-малко време за избор на колони от набора от данни в сравнение с Pandas.

Филтриране на редове

Тази задача сравнява производителността на всяка библиотека при филтриране на редове, където Пол колона е F от набора от данни.

Polars отнема много кратко време в сравнение с Pandas, за да филтрират редовете.

Групиране и агрегиране на данни

Тази задача включва групиране на данни по една или повече колони. След това изпълнява някои функции за агрегиране на групите. Той измерва времето, необходимо на всяка библиотека да групира данните по Пол колона и изчислете средната сума на покупката за всяка група.

Отново Polars превъзхождат Pandas. Но маржът не е толкова голям, колкото при филтрирането на редовете.

Прилагане на функции към данни

Тази задача включва прилагане на функция към една или повече колони. Той измерва времето, необходимо на всяка библиотека да умножи Покупка колона с 2.

Едва можете да видите бар Поларс. Polars отново превъзхождат Pandas.

Обединяване на данни

Тази задача включва обединяване на два или повече DataFrames въз основа на съществуването на една или повече общи колони. Той измерва времето, необходимо на всяка библиотека да обедини User_ID и Покупка колони от два отделни DataFrames.

И двете библиотеки отнемат известно време, за да изпълнят тази задача. Но Polars отнема почти половината от времето, необходимо на Panda, за да обедини данните.

Защо Polars е в състояние да надмине Pandas?

Във всички задачи за манипулиране на данни по-горе, Polars превъзхождат Pandas. Има няколко причини, поради които Polars може да превъзхождат Pandas във времето за изпълнение.

  • Оптимизация на паметта: Polars използва Rust, език за системно програмиране, който оптимизира използването на паметта. Това позволява на Polars да минимизира времето, което изразходва за разпределяне и освобождаване на памет. Това ускорява времето за изпълнение.
  • SIMD (единична инструкция с множество данни) операции: Polars използва SIMD операции за извършване на изчисления върху данни. Това означава, че може да използва една инструкция, за да извърши една и съща операция върху множество елементи от данни едновременно. Това позволява на Polars да извършват операции много по-бързо от Pandas, които използват еднонишков подход.
  • Мързелива оценка: Polars използва мързелива оценка, за да забави изпълнението на операциите, докато не се нуждае от тях. Това намалява времето, което Polars изразходва за ненужни операции, и подобрява производителността.

Разширете своите умения за наука за данни

Има много библиотеки на Python, които могат да ви помогнат в науката за данни. Пандите и полярите са само малка част. За да подобрите ефективността на вашата програма, трябва да се запознаете с повече библиотеки за наука за данни. Това ще ви помогне да сравните и изберете коя библиотека е най-подходяща за вашия случай на употреба.