SQL hoặc Python cho khoa học dữ liệu

Phiên bản SQL của truy vấn này chắc chắn là dễ hiểu và ngắn gọn hơn, đây là một khía cạnh quan trọng của bất kỳ dự án phân tích dữ liệu hoặc phần mềm nào trong đó các nhóm lớn các nhà phát triển sẽ làm việc cùng nhau. Điều này đặc biệt hữu ích khi thực hiện các truy vấn chính xác và phức tạp trong đó nhiều bảng được nối với nhau và việc đưa bản ghi vào một lựa chọn dựa trên các câu lệnh điều kiện nhiều lớp. Bây giờ trong thập kỷ tồn tại thứ tư, SQL vẫn là một công cụ thiết yếu cho các nhà khoa học dữ liệu vì lý do này.  

Đối với các ứng dụng Khoa học dữ liệu, phần lớn tiện ích của Python bắt đầu ở nơi SQL kết thúc––nghĩa là sau khi đã truy xuất đúng tập dữ liệu, Python có thể thực hiện phân tích thống kê phức tạp, tạo trực quan hóa và kích hoạt nhiều chức năng khác liên quan đến . Các thư viện phân tích dữ liệu của Python rất tuyệt vời để xử lý toán học phức tạp và phân tích thống kê làm nền tảng cho nhiều quy trình trong Khoa học dữ liệu, cho phép các nhà khoa học dữ liệu dành nhiều thời gian hơn để khám phá và thử nghiệm thay vì thực hiện các phép tính tốn nhiều công sức.  

Một loạt các thư viện dành cho khoa học dữ liệu của Python giúp các tổ chức biến các câu hỏi và linh cảm thành những hiểu biết có thể hành động một cách hiệu quả. Cuối cùng, hãy khám phá một số thư viện Python phổ biến và mạnh mẽ nhất cho phép khoa học dữ liệu khám phá và đổi mới trong các lĩnh vực phân tích dữ liệu khác nhau.  

NumPy

NumPy được sử dụng cho các ứng dụng khác nhau trong điện toán khoa học và đặc biệt hữu ích cho các nhà khoa học dữ liệu thực hiện các quy trình Học máy và Học sâu. Tên của nó là viết tắt của “Numerical Python” và khả năng xử lý vector hóa, lập chỉ mục và phát sóng mạnh mẽ của nó là vô giá đối với các nhà khoa học dữ liệu khi xử lý các đối tượng mảng đa chiều.  

scikit-học

Scikit-learning là một thư viện Machine Learning nguồn mở được xây dựng trên NumPy cũng như các thư viện Python khác để phân tích dữ liệu. Ở cấp độ cơ bản nhất, scikit-learning là một công cụ để xây dựng các mô hình Machine Learning. Về cơ bản, nó chứa nhiều thuật toán Machine Learning như hồi quy, phân loại, phân cụm và tiền xử lý, đồng thời hiển thị chúng dưới dạng trừu tượng Python. Điều này có nghĩa là các nhà khoa học dữ liệu không phải viết các thuật toán phức tạp này từ đầu mỗi khi một trường hợp sử dụng phân tích yêu cầu chúng và thay vào đó có thể xử lý việc này bằng các phương pháp nhất quán như

`sklearning. linear_model. Hồi quy tuyến tính[]`

TenorFlow

Được phát triển bởi nhóm Google Brain, TensorFlow đã nổi tiếng là công cụ tiên tiến cho cả Học máy và Học sâu. Là một thư viện ML toàn diện với hệ sinh thái tài nguyên, thư viện và công cụ riêng, TendorFlow đang cho phép cộng đồng nghiên cứu vượt qua ranh giới của những gì có thể trong các ứng dụng dựa trên ML/DL và Học sâu.  

PyTorch

Được phát triển tại Facebook, PyTorch là một nhánh của khung Torch dựa trên Lua và đã đóng một vai trò quan trọng trong việc đổi mới trong không gian Deep Learning bằng cách làm cho các mô hình DL rẻ hơn và tính toán nhanh hơn.  

Mục tiêu cuối cùng là sử dụng công cụ tốt nhất cho công việc của bạn. Nhưng thường thì nên sử dụng một số công cụ cùng nhau như SQL và Python. Cả hai đều khác nhau rất nhiều ở nhiều điểm [điều này cũng sẽ được thảo luận trong văn bản sau], nhưng điều này không có nghĩa là bạn phải luôn chọn giữa cả hai cho các nhiệm vụ Phân tích của mình. Ngược lại, chúng có thể bổ sung…

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

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 tệp đó 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 Python

Nhữ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 chấp nhận

[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 quan hệ là một tập hợp các mục dữ liệu với các mối quan hệ được xác định trước giữa chúng. Các mục này được tổ chức dưới dạng một tập hợp các bảng có cột và hàng. Các bảng được sử dụng để chứa thông tin về các đối tượng được biểu diễn trong cơ sở dữ liệu. Mỗi cột trong bảng chứa một loại dữ liệu nhất định và một trường lưu trữ giá trị thực của một thuộc tính. Các hàng trong bảng đại diện cho một tập hợp các giá trị có liên quan của một đối tượng hoặc thực thể. Mỗi hàng trong một bảng có thể được đánh dấu bằng một mã định danh duy nhất được gọi là khóa chính và các hàng giữa nhiều bảng có thể được tạo liên quan bằng khóa ngoại. Dữ liệu này có thể được truy cập theo nhiều cách khác nhau mà không cần tự tổ chức lại các bảng cơ sở dữ liệu

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

ERD mẫu — https. //www. mô hình trực quan. com/guide/data-modeling/what-is-entity-relationship-diagram/

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]
8

Tạo Công cụ SQL

Bắ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
from sqlalchemy import create_engine

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 SQL

Bâ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à
engine = create_engine[*args, **kwargs]
60 và
engine = create_engine[*args, **kwargs]
61

  • engine = create_engine[*args, **kwargs]
    60 cho phép bạn chọn một tập hợp con các cột [hoặc tất cả chúng] từ một bảng,
  • engine = create_engine[*args, **kwargs]
    61 chỉ định [các] cột đang được lấy từ bảng nào

Ví dụ: đoạn mã sau sẽ trả về tất cả các thực thể [cột] từ

engine = create_engine[*args, **kwargs]
64lưu phản hồi vào một khung dữ liệu và hiển thị phần đầu

engine = create_engine[*args, **kwargs]
6

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ế

engine = create_engine[*args, **kwargs]
2

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

engine = create_engine[*args, **kwargs]
65 trong câu lệnh SQL của mình

engine = create_engine[*args, **kwargs]
4

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

engine = create_engine[*args, **kwargs]
5

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

engine = create_engine[*args, **kwargs]
6

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

engine = create_engine[*args, **kwargs]
66 và chỉ định thứ tự bạn muốn
engine = create_engine[*args, **kwargs]
67 [tăng dần] hoặc
engine = create_engine[*args, **kwargs]
68 [giảm dần]. Hãy nhớ rằng, nếu bạn sử dụng nhiều cột trong
engine = create_engine[*args, **kwargs]
66 thì thứ tự SQL sắp xếp dữ liệu sẽ từ trái sang phải

!pip install sqlalchemyimport pandas as pd
from sqlalchemy import create_engine
1

Đô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

engine = create_engine[*args, **kwargs]
20

!pip install sqlalchemyimport pandas as pd
from sqlalchemy import create_engine
3

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

engine = create_engine[*args, **kwargs]
21 Bạn có thể sử dụng điều kiện boolean hoặc
engine = create_engine[*args, **kwargs]
22 cho các thực thể chuỗi. Ví dụ

engine = create_engine[*args, **kwargs]
0

hoặc

engine = create_engine[*args, **kwargs]
23

hoặc

engine = create_engine[*args, **kwargs]
24

Ký 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à

engine = create_engine[*args, **kwargs]
25 được sử dụng cho
engine = create_engine[*args, **kwargs]
26 hoặc
engine = create_engine[*args, **kwargs]
27 được sử dụng cho
engine = create_engine[*args, **kwargs]
28 Chúng ta có thể sử dụng 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
engine = create_engine[*args, **kwargs]
29 trong SQL. Sự khác biệt giữa ________ 240 và ________ 241 là ________ 240 cũng chiếm dấu gạch dưới, nhưng
engine = create_engine[*args, **kwargs]
41 thì không. Trong Python, bạn nên sử dụng
engine = create_engine[*args, **kwargs]
44 thay vì một
engine = create_engine[*args, **kwargs]
40. Câu lệnh bên dưới trả về tất cả các hàng trong đó
engine = create_engine[*args, **kwargs]
46 bắt đầu bằng
engine = create_engine[*args, **kwargs]
47

engine = create_engine[*args, **kwargs]
1

engine = create_engine[*args, **kwargs]
48 làm cho truy vấn này không nhạy cảm với trường hợp ký tự và
engine = create_engine[*args, **kwargs]
49 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]
2

hoặc

engine = create_engine[*args, **kwargs]
50

Thườ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 báo cáo tổng hợp này bao gồm

engine = create_engine[*args, **kwargs]
51 Ví dụ

engine = create_engine[*args, **kwargs]
3

Khi sử dụng tổng hợp, bạn nên sử dụng

engine = create_engine[*args, **kwargs]
52 thay vì
engine = create_engine[*args, **kwargs]
53 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

engine = create_engine[*args, **kwargs]
54

engine = create_engine[*args, **kwargs]
5

Tham gia bàn

Khi 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

Các kiểu nối bảng khác nhau trong SQL — https. //www. công xưởng. com/sql/tham gia

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

engine = create_engine[*args, **kwargs]
55

engine = create_engine[*args, **kwargs]
6

Nhữ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ó đủ cho khoa học dữ liệu không?

Các lớp học của tôi cũng sẽ bao gồm việc sử dụng Cognos và gói mô hình hóa mà tôi chưa từng nghe đến. 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 đề

SQL có tốt hơn Python để phân tích dữ liệu không?

Chạy mã SQL trên kho dữ liệu thường nhanh hơn Python để truy vấn dữ liệu và thực hiện các phép tổng hợp cơ bản . Điều này chủ yếu là do dữ liệu có một lược đồ được áp dụng và quá trình tính toán diễn ra gần với dữ liệu.

SQL hay Python nhiều hơn trong

Nếu bạn đang tìm kiếm công việc đầu tiên của mình về dữ liệu, thì việc biết SQL thậm chí còn quan trọng hơn. Đối với vai trò nhà phân tích dữ liệu, SQL lại là kỹ năng được yêu cầu nhiều nhất , được liệt kê trong con số khổng lồ 61% tin tuyển dụng. Đối với vai trò nhà phân tích dữ liệu trên Indeed, SQL xuất hiện như sau. 1. gấp 7 lần Python.

Python có tốt nhất cho khoa học dữ liệu không?

Python là ngôn ngữ cấp cao, mã nguồn mở, được thông dịch và cung cấp cách tiếp cận tuyệt vời cho lập trình hướng đối tượng. Đây là một trong những ngôn ngữ tốt nhất được nhà khoa học dữ liệu sử dụng cho các dự án/ứng dụng khoa học dữ liệu khác nhau .

Chủ Đề