Giả sử bạn có database SQLite db.sqlite3 với bảng student và muốn đọc toàn bộ dữ liệu vào DataFrame.
Giải pháp
- Kết nối:
sqlite3.connect('db.sqlite3'). - Đọc SQL:
pd.read_sql_query('SELECT * FROM student', con).
Mã ví dụ
import pandas as pd
import sqlite3
# Tạo DB mẫu để demo
con = sqlite3.connect(':memory:') # DB trong RAM
cursor = con.cursor()
cursor.execute("CREATE TABLE student (Id INT, Name TEXT)")
cursor.executemany("INSERT INTO student VALUES (?, ?)", [(1,'stud1'),(2,'stud2'),(3,'stud3'),(4,'stud4'),(5,'stud5')])
con.commit()
# Đọc vào DataFrame
df = pd.read_sql_query("SELECT * FROM student", con)
print(df)
con.close()
Kết quả
Id Name 0 1 stud1 1 2 stud2 2 3 stud3 3 4 stud4 4 5 stud5
Lưu ý:
read_sql_querycho câu lệnh SELECT.read_sql_tablecho tên bảng.- Hỗ trợ nhiều DB: PostgreSQL, MySQL, SQL Server, Oracle (cần driver: psycopg2, pymysql, pyodbc, cx_Oracle).
- Đóng kết nối sau khi dùng:
con.close()hoặc dùngwith. - Chunking cho dữ liệu lớn:
chunksize=10000.