Python và SQL để phân tích dữ liệu
Bài viết này cung cấp tổng quan về các câu lệnh SQL cơ bản cho các nhà khoa học dữ liệu và giải thích cách có thể khởi tạo một công cụ SQL trong Python và được sử dụng để truy vấn dữ liệu từ cơ sở dữ liệu Show
Là một nhà khoa học dữ liệu sử dụng Python, bạn thường cần lấy dữ liệu của mình từ cơ sở dữ liệu quan hệ được lưu trữ trên máy chủ cục bộ hoặc trên đám mây (e. g. đám mây AWS). Có nhiều cách để tiếp cận điều này. Ví dụ: bạn có thể truy vấn dữ liệu của mình trong Oracle, lưu tệp dưới dạng tệp engine = create_engine(*args, **kwargs) 7, sau đó nhập dữ liệu đó bằng Python. Tuy nhiên, cách hiệu quả nhất để sử dụng SQL trực tiếp trong Python. Kết hợp SQL và Pandas sẽ cung cấp cho bạn nhiều tùy chọn để truy vấn, xử lý và sử dụng dữ liệu cho dự án của bạn bằng PythonNhững điều đầu tiên đầu tiên. SQL là gì?SQL (còn gọi là Ngôn ngữ truy vấn có cấu trúc) là ngôn ngữ lập trình được sử dụng để quản lý hoặc truy vấn dữ liệu được lưu trữ trong hệ thống quản lý cơ sở dữ liệu quan hệ (RDBMS). SQL là ngôn ngữ thống trị để xử lý dữ liệu có cấu trúc trong đó các thực thể trong cơ sở dữ liệu (e. g. bảng hoặc thực thể bảng) có liên quan với nhau (đó là lý do tại sao các cơ sở dữ liệu này được gọi là cơ sở dữ liệu quan hệ). Có các tùy chọn khác để xử lý dữ liệu đó, nhưng SQL là ngôn ngữ phổ biến nhất, được sử dụng rộng rãi trong ngành "SQL" được phát âm như thế nào?SQL được phát triển tại IBM vào đầu những năm 1970 và ban đầu nó được gọi là “SEQUEL (Ngôn ngữ truy vấn tiếng Anh có cấu trúc)”. Sau đó, tên này được đổi thành SQL (Ngôn ngữ truy vấn có cấu trúc) do vấn đề nhãn hiệu. Tuy nhiên, cách phát âm “see-qu-el” (/ˈsiːkwəl/ ) vẫn tồn tại trong ngôn ngữ và đó là cách phát âm được hầu hết các học viên áp dụng [Mẹo chuyên nghiệp. khi bạn đi phỏng vấn, hãy chắc chắn rằng bạn phát âm nó “see-qu-el”, nếu bạn muốn công việc. ] Cơ sở dữ liệu quan hệ trông như thế nào?Amazon Web Services cung cấp định nghĩa tốt nhất cho một databl quan hệ
Cơ sở dữ liệu có thể có thiết kế rất phức tạp, với nhiều bảng và mỗi bảng có nhiều thực thể (cột) và nhiều hàng. Sẽ cực kỳ khó khăn hoặc thậm chí là không thể truy vấn dữ liệu khi không biết mối quan hệ giữa các bảng. ERD (Sơ đồ mối quan hệ thực thể) được sử dụng để trực quan hóa các mối quan hệ này và cũng hiển thị các thực thể trong mỗi bảng và kiểu dữ liệu của chúng. Quản trị viên cơ sở dữ liệu của bạn sẽ có thể cung cấp ERD cho cơ sở dữ liệu của bạn SQL được sử dụng như thế nào trong Python?Có nhiều cách để sử dụng SQL trong Python. Nhiều thư viện đã được phát triển cho mục đích này có thể được sử dụng. SQLite và MySQL là ví dụ về các thư viện này Trong bài viết này, chúng ta sẽ sử dụng Python Pandas kết hợp với thư viện engine = create_engine(*args, **kwargs) 8Tạo Công cụ SQLBắt đầu nào. Chúng ta cần cài đặt và sau đó nhập các thư viện trước. Chúng tôi sẽ sử dụng tính năng engine = create_engine(*args, **kwargs) 9 từ thư viện này!pip install sqlalchemyimport pandas as pd Sau khi thư viện được nhập, chúng ta cần tạo một công cụ SQL bằng cách sử dụng lệnh này để tạo một lớp mới`. Ví dụ động cơ` engine = create_engine(*args, **kwargs) Đối số đầu tiên thường là một chuỗi biểu thị phương ngữ cơ sở dữ liệu và đối số kết nối ở dạng URL và có thể được viết là dialect[+driver]://user:password@host/dbname[?key=value..] trong đó dialect[+driver]://user:password@host/dbname[?key=value..] 0 là tên cơ sở dữ liệu, chẳng hạn như dialect[+driver]://user:password@host/dbname[?key=value..] 1, dialect[+driver]://user:password@host/dbname[?key=value..] 2, dialect[+driver]://user:password@host/dbname[?key=value..] 3, v.v. , và dialect[+driver]://user:password@host/dbname[?key=value..] 4tên của một DBAPI, chẳng hạn như dialect[+driver]://user:password@host/dbname[?key=value..] 5, dialect[+driver]://user:password@host/dbname[?key=value..] 6, dialect[+driver]://user:password@host/dbname[?key=value..] 7, v.v. Thông tin chi tiết về điều này có thể được tìm thấy tại https. //www. sqlalchemy. tổ chức/Truy vấn dữ liệu sử dụng câu lệnh SQLBây giờ bạn đã được kết nối với cơ sở dữ liệu, bạn có thể gửi truy vấn dữ liệu. để sử dụng dialect[+driver]://user:password@host/dbname[?key=value..] 8, bạn cần bọc các câu lệnh SQL của mình trong một vùng chứa, gửi nó đến cơ sở dữ liệu, nhận lại phản hồi, sau đó đặt phản hồi vào một khung dữ liệu dialect[+driver]://user:password@host/dbname[?key=value..] 9. Hai mệnh đề chính phải có trong mọi truy vấn là sql = """0 và sql = """1
Ví dụ: đoạn mã sau sẽ trả về tất cả các thực thể (cột) từ sql = """4lưu phản hồi vào một khung dữ liệu và hiển thị phần đầu sql = """ Thay vào đó, bạn cũng có thể lấy các cột cụ thể từ bảng, sử dụng mã này để thay thế SELECT entity_1, entity_2, entity_3 Nếu bạn đang xử lý nhiều bảng (mà bạn chắc chắn sẽ làm trong một dự án trong thế giới thực), bạn có thể cần chỉ định thực thể nào từ bảng nào vì các thực thể quan tâm có thể đến từ các bảng khác nhau trong cơ sở dữ liệu. Chúng ta sẽ thảo luận cách nhiều thực thể từ nhiều bảng có thể là truy vấn, nhưng ví dụ này dành cho các thực thể từ một bảng. Trong trường hợp này, bạn có thể sử dụng sql = """5 trong câu lệnh SQL của mình SELECT table_1.entity_1, table_1.entity_2 Bạn cũng có thể gán bí danh cho từng tên thực thể hoặc tên bảng nhằm mục đích đơn giản hóa hoặc dễ đọc SELECT t.entity_1 AS name, t.entity_2 AS id Nếu bạn muốn lấy các hàng riêng biệt từ một cột, bạn có thể gửi câu lệnh SQL này SELECT DISTINCT entity_1 Nếu bạn muốn sắp xếp dữ liệu của mình theo một cột cụ thể (hoặc nhiều cột), bạn có thể sử dụng sql = """6 và chỉ định thứ tự bạn muốn sql = """7 (tăng dần) hoặc sql = """8 (giảm dần). Hãy nhớ rằng, nếu bạn sử dụng nhiều cột trong sql = """6 thì thứ tự SQL sắp xếp dữ liệu sẽ từ trái sang phải SELECT entity_1, entity_2, entity_3 Đôi khi bạn đang xử lý một tập dữ liệu rất lớn, nhưng bạn có thể chỉ cần truy xuất một tập dữ liệu giới hạn từ cơ sở dữ liệu. Nếu trường hợp này, bạn có thể sử dụng SELECT entity_1, entity_2, entity_3 0SELECT * Nếu bạn muốn bao gồm một điều kiện cho truy vấn, bạn có thể sử dụng SELECT entity_1, entity_2, entity_3 1 Bạn có thể sử dụng điều kiện boolean hoặc SELECT entity_1, entity_2, entity_3 2 cho các thực thể chuỗi. Ví dụengine = create_engine(*args, **kwargs) 0hoặc SELECT entity_1, entity_2, entity_3 3hoặc SELECT entity_1, entity_2, entity_3 4Ký tự đại diện (hoặc ký tự đại diện) là ký hiệu được sử dụng để thay thế hoặc đại diện cho một hoặc nhiều ký tự trong một từ. Một cái quen thuộc là SELECT entity_1, entity_2, entity_3 5 được sử dụng cho SELECT entity_1, entity_2, entity_3 6hoặc SELECT entity_1, entity_2, entity_3 7 được sử dụng cho SELECT entity_1, entity_2, entity_3 8 Chúng ta có thể sử dụng các ký tự đại diện một cách hiệu quả trong SQL khi truy vấn các thực thể chuỗi bằng cách sử dụng câu lệnh SELECT entity_1, entity_2, entity_3 9 trong SQL. Sự khác biệt giữa SELECT table_1.entity_1, table_1.entity_2 0 và SELECT table_1.entity_1, table_1.entity_2 1 là SELECT table_1.entity_1, table_1.entity_2 0 cũng chiếm dấu gạch dưới, nhưng SELECT table_1.entity_1, table_1.entity_2 1 thì không. Trong Python, bạn nên sử dụng SELECT table_1.entity_1, table_1.entity_2 4 thay vì một SELECT table_1.entity_1, table_1.entity_2 0. Câu lệnh dưới đây trả về tất cả các hàng trong đó SELECT table_1.entity_1, table_1.entity_2 6 bắt đầu bằng SELECT table_1.entity_1, table_1.entity_2 7engine = create_engine(*args, **kwargs) 1SELECT table_1.entity_1, table_1.entity_2 8 làm cho truy vấn này không nhạy cảm với trường hợp ký tự và SELECT table_1.entity_1, table_1.entity_2 9 trả về tất cả các hàng trong đó thực thể KHÔNG giống như ký tự đại diệnĐể xử lý các giá trị null, bạn có thể sử dụng engine = create_engine(*args, **kwargs) 2hoặc SELECT t.entity_1 AS name, t.entity_2 AS id 0Thường thì bạn cần tổng hợp dữ liệu, nhóm dữ liệu và áp dụng các điều kiện cho dữ liệu được tổng hợp. Những tuyên bố tổng hợp này bao gồm SELECT t.entity_1 AS name, t.entity_2 AS id 1 Ví dụengine = create_engine(*args, **kwargs) 3Khi sử dụng tổng hợp, bạn nên sử dụng SELECT t.entity_1 AS name, t.entity_2 AS id 2 thay vì SELECT t.entity_1 AS name, t.entity_2 AS id 3 nhưengine = create_engine(*args, **kwargs) 4Để nhóm dữ liệu của bạn theo thực thể cụ thể, bạn có thể sử dụng SELECT t.entity_1 AS name, t.entity_2 AS id 4engine = create_engine(*args, **kwargs) 5Tham gia bànKhi truy vấn dữ liệu từ nhiều bảng, bạn cần nối các bảng này. Có nhiều cách nối bảng trong SQL. Hình bên dưới minh họa các phép nối này. Bạn có thể sẽ làm việc với các phép nối bên trong thường xuyên hơn, nhưng điều quan trọng là phải hiểu tác dụng của từng loại phép nối Việc nối các bảng chỉ có thể được thực hiện khi có một thực thể chung giữa hai bảng và bạn cần xác định mối quan hệ đó bằng cách sử dụng SELECT t.entity_1 AS name, t.entity_2 AS id 5engine = create_engine(*args, **kwargs) 6Những câu lệnh này bao gồm những điều cơ bản về SQL trong Python. Bạn có thể kết hợp các câu lệnh này dựa trên cơ sở dữ liệu bạn đang xử lý, loại dữ liệu bạn cần. Có nhiều câu lệnh khác mà bạn có thể sử dụng. https. //www. w3schools. com/sql/ cung cấp tổng quan toàn diện hơn về các câu lệnh SQL Nick Minaie, Tiến sĩ (Hồ sơ LinkedIn) là cố vấn cấp cao và nhà khoa học dữ liệu có tầm nhìn xa, đồng thời đại diện cho sự kết hợp độc đáo giữa kỹ năng lãnh đạo, chuyên môn khoa học dữ liệu đẳng cấp thế giới, sự nhạy bén trong kinh doanh và khả năng dẫn dắt sự thay đổi của tổ chức. Nhiệm vụ của anh là thúc đẩy thực hành Trí tuệ nhân tạo (AI) và Học máy trong ngành Python và SQL được sử dụng như thế nào trong phân tích dữ liệu?Sự khác biệt đáng kể giữa SQL và Python là SQL được sử dụng để truy cập và trích xuất dữ liệu từ cơ sở dữ liệu. Đồng thời, Python được sử dụng để phân tích và thao tác dữ liệu bằng cách sử dụng các bài kiểm tra hồi quy, kiểm tra chuỗi thời gian và các tính toán khác .
Cái nào tốt hơn để phân tích dữ liệu SQL hoặc Python?SQL chắc chắn là một ngôn ngữ dễ học hơn Python . Nó có một cú pháp rất cơ bản với mục đích duy nhất là giao tiếp với cơ sở dữ liệu quan hệ. Do một lượng lớn dữ liệu được lưu trữ trong cơ sở dữ liệu quan hệ nên việc truy xuất dữ liệu bằng truy vấn SQL thường là bước đầu tiên trong bất kỳ dự án phân tích dữ liệu nào.
Python và SQL có thể được sử dụng cùng nhau không?Chúng ta cũng có thể sử dụng Python với SQL . Trong bài viết này, chúng ta sẽ tìm hiểu cách kết nối SQL với Python bằng mô-đun 'MySQL Connector Python'.
Python và SQL có đủ cho khoa học dữ liệu không?Vì vậy, không, Python và SQL là không đủ cho khoa học dữ liệu. Họ được yêu cầu. Nhưng nhiều công cụ khác cũng như mong muốn và khả năng giải quyết vấn đề |