Pandas vs Polars: Trận chiến hiệu suất
Trong khi thực hiện các nhiệm vụ phân tích dữ liệu, rất có thể bạn đã gặp phải Pandas. Nó đã từng là thư viện chiếm ưu thế nhất trong phân tích dữ liệu trong một thời gian dài. Mặt khác, Polars là một thư viện tương đối mới, có hiệu suất cao và hiệu quả bộ nhớ. Nhưng cái nào thì tốt hơn?
Tại đây, bạn sẽ thấy sự so sánh về hiệu suất giữa Pandas và Polars trên một loạt các tác vụ thao tác dữ liệu phổ biến.
Mục Lục
Đo lường hiệu suất: Bộ dữ liệu số liệu và điểm chuẩn
So sánh này sẽ tính đến khả năng của các thư viện Pandas và Polars trong việc thao túng bộ dữ liệu Giảm giá Thứ Sáu Đen từ Kaggle. Tập dữ liệu này chứa 550.068 hàng dữ liệu. Nó bao gồm thông tin về nhân khẩu học của khách hàng, lịch sử mua hàng và chi tiết sản phẩm.
Để đảm bảo đo lường hiệu suất hợp lý, quá trình so sánh sẽ sử dụng thời gian thực hiện làm thước đo hiệu suất tiêu chuẩn cho mỗi tác vụ. Nền tảng để chạy mã cho từng tác vụ so sánh sẽ là Google Colab.
Mã nguồn đầy đủ so sánh các thư viện Pandas và Polars có sẵn trong kho lưu trữ GitHub.
Đọc dữ liệu từ tệp CSV
Tác vụ này so sánh thời gian cần thiết để mỗi thư viện đọc dữ liệu từ bộ dữ liệu Giảm giá Thứ Sáu Đen. Tập dữ liệu ở định dạng CSV. Pandas và Polars cung cấp chức năng tương tự cho nhiệm vụ này.
Pandas mất gấp đôi thời gian Polars cần để đọc dữ liệu trong bộ dữ liệu Giảm giá Thứ Sáu Đen.
Chọn cột
Nhiệm vụ này đo thời gian cần thiết để mỗi thư viện chọn các cột từ tập dữ liệu. Nó liên quan đến việc lựa chọn các Tên người dùng Và Mua cột.
Polars mất ít thời gian hơn đáng kể để chọn các cột từ tập dữ liệu so với Pandas.
Lọc hàng
Nhiệm vụ này so sánh hiệu suất của từng thư viện trong các hàng lọc nơi Giới tính cột là F từ tập dữ liệu.
Polars mất một thời gian rất ngắn so với Pandas để lọc ra các hàng.
Nhóm và tổng hợp dữ liệu
Nhiệm vụ này liên quan đến việc nhóm dữ liệu theo một hoặc nhiều cột. Sau đó, thực hiện một số chức năng tổng hợp trên các nhóm. Nó đo thời gian cần thiết để mỗi thư viện nhóm dữ liệu theo Giới tính cột và tính số lượng mua trung bình cho mỗi nhóm.
Một lần nữa, Polars vượt trội hơn Pandas. Nhưng lề không lớn bằng cách lọc các hàng.
Áp Dụng Chức Năng Cho Dữ Liệu
Nhiệm vụ này liên quan đến việc áp dụng một chức năng cho một hoặc nhiều cột. Nó đo thời gian cần thiết để mỗi thư viện nhân lên Mua cột bằng 2.
Bạn hầu như không thể nhìn thấy thanh Polars. Polars một lần nữa vượt trội hơn Pandas.
Hợp nhất dữ liệu
Nhiệm vụ này liên quan đến việc hợp nhất hai hoặc nhiều DataFrames trên cơ sở tồn tại một hoặc nhiều cột chung. Nó đo thời gian cần thiết để mỗi thư viện hợp nhất Tên người dùng Và Mua cột từ hai DataFrames riêng biệt.
Phải mất cả hai thư viện một thời gian để hoàn thành nhiệm vụ này. Nhưng Polars mất gần một nửa thời gian mà Pandas cần để hợp nhất dữ liệu.
Tại sao Polars có thể vượt trội hơn Pandas?
Trong tất cả các tác vụ thao tác dữ liệu ở trên, Polars vượt trội hơn Pandas. Có một số lý do tại sao Polars có thể vượt trội hơn Pandas về thời gian thực thi.
- Tối ưu hóa bộ nhớ: Polars sử dụng Rust, một ngôn ngữ lập trình hệ thống giúp tối ưu hóa việc sử dụng bộ nhớ. Nó cho phép Polars giảm thiểu thời gian dành cho việc phân bổ và giải phóng bộ nhớ. Điều này làm cho thời gian thực hiện nhanh hơn.
- Hoạt động của SIMD (Đa dữ liệu một lệnh): Polars sử dụng thao tác SIMD để thực hiện tính toán trên dữ liệu. Điều này có nghĩa là nó có thể sử dụng một lệnh duy nhất để thực hiện cùng một thao tác trên nhiều phần tử dữ liệu cùng một lúc. Điều này cho phép Polars thực hiện các thao tác nhanh hơn nhiều so với Pandas, vốn sử dụng phương pháp đơn luồng.
- Đánh giá lười biếng: Polars sử dụng đánh giá lười biếng để trì hoãn việc thực hiện các hoạt động cho đến khi nó cần chúng. Điều này giúp giảm lượng thời gian Polars dành cho các hoạt động không cần thiết và cải thiện hiệu suất.
Mở rộng kỹ năng khoa học dữ liệu của bạn
Có rất nhiều thư viện Python có thể giúp bạn trong khoa học dữ liệu. Pandas và Polars chỉ là một phần nhỏ. Để cải thiện hiệu suất của chương trình, bạn nên tự làm quen với nhiều thư viện khoa học dữ liệu hơn. Điều này sẽ giúp bạn so sánh và chọn thư viện nào phù hợp nhất với trường hợp sử dụng của bạn.