1. Học hỏi
  2. /
  3. Khoa Học
  4. /
  5. Nhập môn Cơ sở dữ liệu với Python

Connected

Bài tập

Tải một CSV vào bảng

Đến đây bạn đã chèn dữ liệu vào bảng rất tốt! Giờ bạn sẽ học cách nạp nội dung của một tệp CSV vào một bảng.

Một cách là đọc tệp CSV theo từng dòng, tạo một dictionary từ mỗi dòng rồi dùng insert() như bạn đã làm ở bài trước.

Nhưng có một cách nhanh hơn với pandas. Bạn có thể đọc tệp CSV vào một DataFrame bằng hàm read_csv() (chắc bạn đã quen với hàm này; bạn có thể chạy help(pd.read_csv) trong console để ôn lại!). Sau đó, gọi phương thức .to_sql() (docs) trên DataFrame để nạp nó vào một bảng SQL trong cơ sở dữ liệu. Các cột của DataFrame cần khớp với các cột của bảng SQL.

.to_sql() có nhiều tham số, nhưng trong bài này ta sẽ dùng các tham số sau:

  • name là tên của bảng SQL (kiểu chuỗi).
  • con là kết nối tới cơ sở dữ liệu mà bạn sẽ dùng để tải dữ liệu lên.
  • if_exists quy định cách xử lý nếu bảng đã tồn tại trong cơ sở dữ liệu; các giá trị có thể là "fail", "replace", và "append".
  • index (True hoặc False) quy định có ghi chỉ mục của DataFrame thành một cột hay không.

Trong bài này, bạn sẽ tải dữ liệu trong tệp census.csv vào bảng "census" đã tồn tại. Đối tượng connection tới cơ sở dữ liệu đã được tạo sẵn cho bạn.

Hướng dẫn 1/2

undefined XP
    1
    2
  • Dùng pd.read_csv() để tải tệp "census.csv" vào một DataFrame. Đặt tham số header là None vì tệp không có hàng tiêu đề.
  • Đổi tên các cột của census_df thành "state", "sex", age, "pop2000", và "pop2008" để khớp với các cột của bảng "census" trong cơ sở dữ liệu.