Polars – thư viện xử lý dữ liệu DataFrame nhanh hơn cả Pandas!!!!

Tram Ho

Hello mọi người, hẳn là mọi người vẫn hay dùng Pandas để xử lý dữ liệu dạng DataFrame đúng không nhỉ? Hôm nay mình sẽ giới thiệu một thư viện mới Polars – một thư viện xử lý dữ liệu dạng bảng biểu được base trên Rust, tốc độ xử lý của thư viện này nhanh hơn cả Pandas mà mọi người vẫn hay dùng. Bên cạnh đó thư viện này cũng dễ dùng và hữu ích không thua kém gì Pandas. Chúng ta cùng nhau tìm hiểu nhé!!!

Polars có thể sử dụng với các ngôn ngữ lập trình như Rust | Python | NodeJS | …, bên cạnh đó còn có một số đặc điểm:

  • Đa luồng
  • Polars không sử dụng index cho DataFrame. Việc loại bỏ index giúp thao tác DataFrame dễ dàng hơn nhiều.
  • Polars đại diện cho dữ liệu bên trong bằng cách sử dụng mảng Mũi tên Apache trong khi Pandas lưu trữ dữ liệu bên trong bằng cách sử dụng mảng NumPy. Mảng Mũi tên Apache hiệu quả hơn nhiều trong các lĩnh vực như: thời gian tải, sử dụng bộ nhớ và tính toán.

-Polars hỗ trợ lazy evaluation. Polars kiểm tra các truy vấn của bạn, tối ưu hóa chúng và tìm cách tăng tốc truy vấn hoặc giảm mức sử dụng bộ nhớ.

Install Polars trong python

Mọi người có thể dùng 2 câu lệnh quen thuộc để cài đặt thư viện này như sau:

  • với Pip

  • Với conda

Tạo một Polars DataFrame

Kết quả thu được:

Hình: DataFrame

Check df types:

Sử dụng Polars

Tiếp theo check columns và rows cũng tương tự như Pandas

Hình: check columns và rows

Select columns

Ở pandas thì việc lấy ra các cột cũng khá đơn giản, trong polars cũng tương tự, chúng ta cùng xem xem nhé

Mình sẽ thử lấy ra cột Model

Kết quả thu được :

Hình: select cột Model

Và khi muốn lấy ra 2 cột thì chúng ta phải select dưới dạng list:

Kết quả thu được:


Hình: select 2 cột

Và chúng ta cũng có thể select các cột theo kiểu dữ liệu như dưới đây:

Kết quả thu được:


Hình: select theo kiểu dữ liệu

Và cũng có thể vừa lựa chọn vừa sort theo cột luôn:

Kết quả thu được sẽ được sort theo thứ tự tăng dần của cột Sales


Hình: select và sort

Select theo rows

Tương tự thì mình cũng có thể select theo từng hàng.

  • Lấy hàng đầu tiên trong bảng dữ liệu.


Hình: lấy hàng đầu tiên

Sử dụng filter để lấy tất cả các hàng có một giá trị nào đó


Hình: lấy tất cả các hàng có cùng 1 giá trị nào đó

Select columns và rows

Chúng ta có thể lấy ra cột Model với Companytoyota

Kết quả thu được:


Hình: lấy ra cột Model với Companytoyota

Cleaning dữ liệu

Mọi người có thể down tập dữ liệu ở đây.


hình: data

check null data

với hàm is_null() này giá trị trả về là boolean, nếu bạn muốn tính tổng giá trị null thì thực hiện như sau:

Kết quả trả về:

Tính giá trị null cho các cột

kết quả thu được như hình trên.

Fill các gía trị null

Kết quả thu được:

Mọi người cũng có thể fill_null bằng các giá trị mong muốn khác

Drop các giá trị null

Xóa các giá trị duplicate

Khởi tạo 1 dataframe mới:

Sử dụng hàm unique() để xóa duplicate
Kết quả thu được:


Hình: xóa duplicate

Kết Luận

Mình đã giới thiệu một cách đơn giản nhất về thư viện Polars này, nếu nhìn tổng thể thì nó khá giống Pandas và dễ dùng, vì vậy đây cũng là một lựa chọn nếu như bạn muốn sử dụng một FrameWork mới để làm việc với dữ liệu dạng bảng. Cảm ơn mọi người đã theo dõi bài viết của mình. Nếu cảm thấy hữu ích thì Upvoted cho mình nhé.

Reference

https://github.com/pola-rs/polars

https://pola-rs.github.io/polars-book/user-guide/quickstart/intro.html

https://www.codemag.com/Article/2212051/Using-the-Polars-DataFrame-Library

https://towardsdatascience.com/getting-started-with-the-polars-dataframe-library-6f9e1c014c5c

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo