Если у вас таблицы с миллионами строк, обратите внимание на Polars — проект с открытым исходным кодом, который написан на Rust и распространяется бесплатно по лицензии MIT. Рассказываем про эту быструю альтернативу Pandas ниже.
Polars обеспечивает эффективный параллелизм и очень высокую производительность на любых современных процессорах с наборами команд для работы с векторами.
Проект поддерживает распространённые форматы (CSV, JSON, Parquet), умеет работать с различными облачными хранилищами (S3, Azure Blob, BigQuery) и базами данных (Postgres, MySQL).
В отличие от Pandas, Polars не присваивает каждой строке метку с индексом. Строки индексируются по их целочисленным позициям в таблице. Поэтому в Polars семантика запроса не меняется в зависимости от состояния индекса.
Для представления данных в памяти Polars использует Apache Arrow — колоночно-ориентированный формат, широко используемый аналитиками из-за его высокой эффективности. Он ускоряет загрузку данных и сокращает расход памяти. Pandas применяет для этих целей массивы NumPy. Поскольку многие переходят на Polars с Pandas, из соображений совместимости Polars может конвертировать данные в формат NumPy.
Для тех, кто знаком с Pandas, переход на Polars не составит труда благодаря схожести интерфейсов. Устанавливается Polars с помощью стандартного менеджера пакетов.