Верно ли утверждать, что новая библиотека Polars превосходит Pandas во многих тестах, или библиотека Pandas по-прежнему является доминирующим выбором?
Выполняя задачи анализа данных, скорее всего, вы столкнулись с Pandas. Это была самая распространенная библиотека для анализа данных в течение длительного времени. Polars, с другой стороны, является относительно новой библиотекой, которая может похвастаться высокой производительностью и эффективностью использования памяти. Но какой из них лучше?
Здесь вы увидите сравнение производительности между Pandas и Polars в ряде общих задач по обработке данных.
Измерение производительности: метрики и набор контрольных данных
Это сравнение будет учитывать способность Pandas и Поляры библиотеки для управления набором данных о распродаже в Черную пятницу из Каггл. Этот набор данных содержит 550 068 строк данных. Он включает в себя информацию о демографии клиентов, истории покупок и деталях продукта.
Чтобы обеспечить справедливое измерение производительности, при сравнении будет использоваться время выполнения в качестве стандартной метрики производительности для каждой задачи. Платформой для запуска кода для каждой задачи сравнения будет Google Colab.
Полный исходный код, который сравнивает библиотеки Pandas и Polars, доступен в Репозиторий GitHub.
Чтение данных из файла CSV
В этой задаче сравнивается время, необходимое каждой библиотеке для чтения данных из набора данных «Распродажа в Черную пятницу». Набор данных находится в CSV-формат. Pandas и Polars предлагают аналогичные функции для этой задачи.
Pandaм требуется в два раза больше времени, чем Polars, для чтения данных из набора данных о распродажах в Черную пятницу.
Выбор столбцов
Эта задача измеряет время, необходимое каждой библиотеке для выбора столбцов из набора данных. Он включает в себя выбор ID пользователя и Покупка столбцы.
Полярам требуется значительно меньше времени для выбора столбцов из набора данных по сравнению с Pandas.
Фильтрация строк
Эта задача сравнивает производительность каждой библиотеки при фильтрации строк, где Пол столбец F из набора данных.
Полякам требуется очень короткое время по сравнению с Pandas для фильтрации строк.
Группировка и агрегирование данных
Эта задача включает в себя группировку данных по одному или нескольким столбцам. Затем, выполняя некоторые функции агрегации в группах. Он измеряет время, необходимое каждой библиотеке для группировки данных по Пол колонке и рассчитайте среднюю сумму покупки для каждой группы.
Опять же, Polars превосходят Pandas. Но маржа не такая большая, как у фильтрации строк.
Применение функций к данным
Эта задача включает в себя применение функции к одному или нескольким столбцам. Он измеряет время, необходимое каждой библиотеке для умножения Покупка столбик на 2.
Вы едва можете увидеть бар Polars. Полярники снова превосходят Панд.
Объединение данных
Эта задача включает объединение двух или более DataFrames на основании того, что существует один или несколько общих столбцов. Он измеряет время, необходимое каждой библиотеке для слияния ID пользователя и Покупка столбцы из двух отдельных фреймов данных.
Обеим библиотекам требуется некоторое время для выполнения этой задачи. Но Polars занимает почти половину времени, затрачиваемого Pandas на объединение данных.
Почему Polars может превзойти Pandas?
Во всех вышеперечисленных задачах по обработке данных Polars превосходят Pandas. Есть несколько причин, по которым Polars может превзойти Pandas по времени выполнения.
- Оптимизация памяти: Polars использует Rust, язык системного программирования, оптимизирующий использование памяти. Это позволяет Polars минимизировать время, затрачиваемое на выделение и освобождение памяти. Это ускоряет время выполнения.
- Операции SIMD (одна инструкция, несколько данных): Polars использует SIMD-операции для выполнения вычислений с данными. Это означает, что он может использовать одну инструкцию для одновременного выполнения одной и той же операции над несколькими элементами данных. Это позволяет Polars выполнять операции намного быстрее, чем Pandas, которые используют однопоточный подход.
- Ленивая оценка: Polars использует ленивую оценку, чтобы отложить выполнение операций до тех пор, пока они не потребуются. Это сокращает количество времени, которое Polars тратит на ненужные операции, и повышает производительность.
Расширьте свои навыки работы с данными
Существует множество библиотек Python, которые могут помочь вам в науке о данных. Панды и поляры — лишь малая часть. Чтобы повысить производительность вашей программы, вам следует ознакомиться с дополнительными библиотеками обработки данных. Это поможет вам сравнить и выбрать, какая библиотека лучше всего подходит для вашего варианта использования.