Đã giải quyết: bảng pandas tới postgresql

Trong thế giới phân tích và thao tác dữ liệu, một trong những thư viện Python phổ biến nhất là Gấu trúc. Nó cung cấp nhiều công cụ mạnh mẽ để làm việc với dữ liệu có cấu trúc, giúp dễ dàng thao tác, trực quan hóa và phân tích. Một trong nhiều nhiệm vụ mà nhà phân tích dữ liệu có thể gặp phải là nhập dữ liệu từ CSV tập tin vào một PostgreSQL cơ sở dữ liệu. Trong bài viết này, chúng ta sẽ thảo luận về cách thực hiện hiệu quả và hiệu quả nhiệm vụ này bằng cách sử dụng cả hai Gấu trúcpsychopg2 thư viện. Chúng tôi cũng sẽ khám phá các chức năng và thư viện khác nhau liên quan đến quá trình này, cung cấp sự hiểu biết toàn diện về giải pháp.

Giới thiệu về Pandas và PostgreSQL

Pandas là một thư viện Python mạnh mẽ cung cấp các cấu trúc dữ liệu dễ sử dụng và các chức năng thao tác dữ liệu để phân tích dữ liệu. Nó đặc biệt hữu ích khi xử lý các tập dữ liệu lớn hoặc khi bạn cần thực hiện các chuyển đổi dữ liệu phức tạp. Mặt khác, PostgreSQL là một hệ thống quản lý cơ sở dữ liệu quan hệ đối tượng (ORDBMS) nguồn mở và miễn phí, nhấn mạnh khả năng mở rộng và tuân thủ SQL. Nó được sử dụng rộng rãi cho các tác vụ quản lý dữ liệu phức tạp, quy mô lớn.

Bây giờ, giả sử chúng ta có một tệp CSV chứa một tập dữ liệu lớn và chúng ta muốn nhập nó vào cơ sở dữ liệu PostgreSQL. Một cách phổ biến để đạt được nhiệm vụ này là sử dụng Pandas kết hợp với thư viện psycopg2, cung cấp bộ điều hợp cho cơ sở dữ liệu PostgreSQL cho phép chúng tôi giao tiếp với nó bằng Python.

Pandas: Đọc tệp CSV

Bước đầu tiên trong quy trình của chúng tôi là đọc nội dung của tệp CSV bằng Pandas.

import pandas as pd

filename = "example.csv"
df = pd.read_csv(filename)

Mã này sử dụng pd.read_csv () chức năng đọc tệp CSV và trả về một đối tượng DataFrame. Với đối tượng DataFrame, chúng ta có thể dễ dàng thao tác và phân tích dữ liệu.

Kết nối với cơ sở dữ liệu PostgreSQL

Bước tiếp theo là kết nối với cơ sở dữ liệu PostgreSQL của chúng tôi bằng thư viện psycopg2. Để làm điều này, chúng ta cần cài đặt thư viện psycopg2, có thể thực hiện việc này bằng cách sử dụng pip:

pip install psycopg2

Sau khi thư viện được cài đặt, chúng ta cần kết nối với cơ sở dữ liệu PostgreSQL của mình:

import psycopg2

connection = psycopg2.connect(
    dbname="your_database_name",
    user="your_username",
    password="your_password",
    host="your_hostname",
    port="your_port",
)

Sản phẩm psycopg2.connect() chức năng thiết lập kết nối với máy chủ cơ sở dữ liệu bằng thông tin đăng nhập được cung cấp. Nếu kết nối thành công, hàm sẽ trả về một đối tượng kết nối mà chúng ta sẽ sử dụng để tương tác với cơ sở dữ liệu.

Tạo bảng trong PostgreSQL

Bây giờ chúng ta có dữ liệu của mình trong một đối tượng DataFrame và kết nối với cơ sở dữ liệu PostgreSQL, chúng ta có thể tạo một bảng trong cơ sở dữ liệu để lưu trữ dữ liệu của mình.

cursor = connection.cursor()
create_table_query = '''
CREATE TABLE IF NOT EXISTS example_table (
    column1 data_type,
    column2 data_type,
    ...
)
'''
cursor.execute(create_table_query)
connection.commit()

Trong đoạn mã này, trước tiên chúng ta tạo một đối tượng con trỏ bằng cách sử dụng kết nối.con trỏ() phương pháp. Con trỏ được sử dụng để thực hiện các thao tác cơ sở dữ liệu như tạo bảng và chèn dữ liệu. Tiếp theo, chúng tôi xác định một truy vấn SQL để tạo bảng và thực hiện truy vấn đó bằng cách sử dụng con trỏ.execute() phương pháp. Cuối cùng, chúng tôi cam kết các thay đổi đối với cơ sở dữ liệu với connection.commit ().

Chèn dữ liệu vào cơ sở dữ liệu PostgreSQL

Bây giờ chúng ta có một bảng, chúng ta có thể chèn dữ liệu từ DataFrame của mình vào cơ sở dữ liệu PostgreSQL bằng cách sử dụng to_sql() phương pháp được cung cấp bởi Pandas.

from sqlalchemy import create_engine

engine = create_engine("postgresql://your_username:your_password@your_hostname:your_port/your_database_name")
df.to_sql("example_table", engine, if_exists="append", index=False)

Trong đoạn mã này, trước tiên chúng ta tạo một công cụ cơ sở dữ liệu bằng cách sử dụng tạo_engine() chức năng của thư viện SQLAlchemy, yêu cầu chuỗi kết nối chứa thông tin đăng nhập cơ sở dữ liệu của chúng tôi. Sau đó, chúng tôi sử dụng to_sql() phương pháp để chèn dữ liệu từ DataFrame của chúng tôi vào bảng “example_table” trong cơ sở dữ liệu PostgreSQL.

Tóm lại, bài viết này cung cấp hướng dẫn toàn diện về cách nhập dữ liệu từ tệp CSV vào cơ sở dữ liệu PostgreSQL bằng Pandas và psycopg2. Bằng cách kết hợp khả năng thao tác dữ liệu dễ dàng trong Pandas với sức mạnh và khả năng mở rộng của PostgreSQL, chúng tôi có thể đạt được một giải pháp liền mạch và hiệu quả cho nhiệm vụ chung là nhập dữ liệu CSV vào cơ sở dữ liệu.

bài viết liên quan:

Để lại một bình luận