+3

Sử dụng SQL trong Pandas như thế nào? Chúng ta có thể giải quyết bằng duckdb!

Xin chào mọi người, hôm nay mình sẽ viết bài tìm hiểu về việc kết hợp sử dụng SQL trong pandas như thế nào. Việc sử dụng kết hợp SQL và Pandas còn giúp tăng hiệu năng cho các Data Scientist

Khi kết hợp sử dụng SQL và Pandas, bạn có thể tận dụng sức mạnh của SQL để truy vấn và lọc dữ liệu từ cơ sở dữ liệu một cách hiệu quả, sau đó sử dụng Pandas để thực hiện các phân tích, biến đổi và tạo các báo cáo từ dữ liệu đã được trích xuất. Điều này giúp tăng hiệu suất và sự linh hoạt trong quá trình làm việc với dữ liệu và làm cho công việc của Data Scientist trở nên dễ dàng hơn. Và cụ thể ở đây mình sử dụng mã nguồn mở Duckdb .

Duckdb là gì?

DuckDB là một cơ sở dữ liệu quan hệ mã nguồn mở được thiết kế để làm việc với dữ liệu lớn một cách nhanh chóng và hiệu quả. Nó có một số ưu điểm vượt trội, như khả năng xử lý truy vấn SQL nhanh hơn so với nhiều hệ thống cơ sở dữ liệu khác, đặc biệt là trong các tình huống cần phân tích dữ liệu lớn.

Kết hợp duckdb và Pandas như thế nào?

Muốn kểt hợp 2 cái này lại với nhau thì việc đầu tiên tất nhiên là chúng ta sẽ cài đặt 2 thư viện này

pip install duckdb
pip install pandas

Sau khi đã cài đặt xong thì chúng ta cùng nhau test thử thôi nào. bạn có thể tạo cơ sở dữ liệu, nhập dữ liệu, và thực thi truy vấn SQL trên dữ liệu của mình.

import duckdb

# Kết nối đến cơ sở dữ liệu DuckDB
con = duckdb.connect(database='mydb.db')

# Tạo một bảng và nhập dữ liệu
con.execute("CREATE TABLE mytable (id INTEGER, name STRING)")
con.execute("INSERT INTO mytable VALUES (1, 'Alice')")
con.execute("INSERT INTO mytable VALUES (2, 'Bob')")

# Thực hiện truy vấn SQL và lấy kết quả thành DataFrame
result = con.execute("SELECT * FROM mytable").fetchdf()

Sau khi bạn đã thực hiện truy vấn bằng DuckDB và có kết quả, bạn có thể chuyển kết quả thành DataFrame của Pandas để tiếp tục xử lý và phân tích dữ liệu:

import pandas as pd

# Chuyển kết quả từ DuckDB thành DataFrame của Pandas
df = pd.DataFrame(result, columns=result.columns)

Và kết quả thu được đây

Hình: kết quả

Lợi ích

Kết hợp DuckDB và Pandas có một số lợi ích quan trọng:

Tăng hiệu suất: DuckDB được thiết kế để xử lý dữ liệu lớn nhanh chóng, giúp tăng hiệu suất xử lý dữ liệu so với các hệ thống cơ sở dữ liệu khác.

Linh hoạt: Bạn có thể sử dụng SQL để truy vấn và xử lý dữ liệu một cách dễ dàng, sau đó chuyển kết quả thành DataFrame của Pandas để thực hiện các phân tích chi tiết.

Hỗ trợ đa nền tảng: DuckDB hỗ trợ đa nền tảng và có thể chạy trên nhiều hệ điều hành khác nhau.

Kết hợp sử dụng DuckDB và Pandas là một giải pháp hữu ích cho các Data Scientist khi làm việc với dữ liệu lớn và cần tối ưu hóa hiệu suất xử lý dữ liệu.

Kết luận

Kết hợp sử dụng DuckDB và Pandas là một giải pháp hữu ích cho các Data Scientist khi làm việc với dữ liệu lớn và cần tối ưu hóa hiệu suất xử lý dữ liệu. Cảm ơn mọi người đã đọc bài viết của mình ạ.

Tham Khảo

https://github.com/duckdb/duckdb


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí