Pandas, một thư viện xử lý dữ liệu tuyệt vời cho các data scientist

Hôm nay tôi sẽ giới thiệu với các bạn về pandas, một thư viện xử lý dữ liệu rất mạnh trên Python, đặc biệt trong ngành khoa học dữ liệu. Điều đặc biệt ở pandas là nó là một tập hợp của rất nhiều các thư viện con ẩn trong nó, vì vậy pandas cung cấp rất nhiều tính năng hữu ích cho người sử dụng.

Pandas lưu trữ dữ liệu theo một cách khá giống với Excel, đó là sử dụng các bảng hay còn được gọi là DataFrame. Bắt đầu sử dụng pandas với câu lệnh:

Những chức năng cơ bản

Đọc dữ liệu từ file csv:

Pandas cung cấp các option trong việc đọc file csv như:

với

  • sep: dấu phân cách giữa các điểm dữ liệu trên 1 dòng
  • encoding: định dạng của file dữ liệu
  • nrows: số lượng hàng sẽ đọc
  • skiprows: những hàng sẽ bỏ qua khi đọc dữ liệu

Ngoài ra còn một số hàm để đọc dữ liệu như: read_excel(), read_clipboard(), read_sql()

Ghi dữ liệu

Rất đơn giản phải không. Ngoài ra còn một số hàm để ghi dữ liệu như: to_excel(), to_json(), to_pickle().

Xem các số liệu về dữ liệu

Xem số chiều của dữ liệu:

Xem các thống kê về dữ liệu:

In dữ liệu lên màn hình

In 3 hàng đầu tiên:

In hàng thứ 8:

In phần tử ở hàng 8 cột ‘column_1’:

In hàng 4 và hàng 5:

Các logical operations trong pandas

Pandas cung cấp việc truy xuất dữ liệu có điều kiện bằng các operator & (AND), ~ (NOT)| (OR) như các ví dụ dưới đây. Mỗi logical operation cần phải nằm trong ngoặc ()

Thay vì dùng nhiều phép ~ (OR), ta có thể sử dụng hàm .isin()

Vẽ đồ thị

Pandas sử dụng trực tiếp package matplotlib chứa trong nó để thực hiện các thao tác vẽ đồ thị. Để vẽ đồ thị về giá trị số thực của một cột dữ liệu ta gọi hàm .plot() trên cột dữ liệu đó.

Để vẽ đồ thị phân phối giá trị (histogram), ta gọi hàm .hist()

Nếu bạn đang code trên Jupyter, chạy câu lệnh này trước khi thực hiện vẽ đồ thị

Cập nhật dữ liệu

Thay đổi giá trị phần tử tại hàng 8, cột ‘column_1’ bằng ‘english’

Thay đổi giá trị của nhiều hàng cùng lúc

Thống kê số lần xuất hiện

Map và chain function trong pandas

Hàm .map() thực hiện việc gọi hàm được truyền vào tới từng phần tử của một cột. Ở ví dụ dưới đây làm len() sẽ được gọi trên tất cả các phần tử của cột ‘column_1’

Các hàm trong pandas có thể được gọi chồng lên nhau tạo thành 1 chain. Bạn hãy thử đoán xem câu lệnh dưới đây thực hiện chức năng gì nhé

Hàm .apply() thực hiện việc gọi hàm được truyền vào tới các cột dữ liệu. Câu lệnh dưới đây sẽ lấy tổng giá trị của từng cột

Package tqdm

Những operation trong pandas có thể sẽ tốt kha khá thời gian để thực hiện trên các tập dữ liệu lớn. Ta có thể theo dõi tiến trình thực hiện của các operation đó bằng cách sử dụng tqdm

Thay .map(), .apply()  bằng progress_map()progress.apply()

Ta có progress bar như dưới đây

Các hàm nâng cao trong pandas

SQL join

Ghép dữ liệu trong pandas trở nên đơn giản hơn rất nhiều bằng cách sử dụng hàm .merge(). Dưới đây là ví dụ về việc ghép 2 DataFrame có 3 cột chung

Grouping

Ta có thể nhóm các cột lại với nhau bằng hàm .groupby(). Ở ví dụ dưới đây, ta nhóm dữ liệu theo cột ‘column_1’, sau đó lấy ra cột ‘column_2’ và áp dụng hàm .apply() lên cột này. Hàm .reset_index() có tác dụng biến đổi dữ liệu về dạng DataFrame

Loop với từng hàng

Hàm .iterrows() lặp qua các hàng của dữ liệu với 2 tham số i là số thứ tự của hàng và row là các phần tử tại hàng thứ i.

Kết

Pandas còn rất nhiều các chức năng tuyệt vời nữa nhưng chỉ qua các ví dụ ở trên, hẳn các bạn đã thấy tầm quan trọng của package này trong ngành khoa học dữ liệu rồi phải không. Sự tồn tại của những thư viện như Pandas chính là lý do mà Python được coi là một trong những ngôn ngữ lập trình mạnh mẽ nhất. Cảm ơn các bạn đã đọc và hẹn gặp lại :D

Nguồn: TowardsDataScience Be a more efficient data scientist, master pandas with this guide

Từ khóa: data science, data analysis, pandas, Trí tuệ nhân tạo