Hướng dẫn python vs sql for data analysis reddit - python vs sql để phân tích dữ liệu reddit

Nhấn J để nhảy vào nguồn cấp dữ liệu. Nhấn dấu câu hỏi để tìm hiểu phần còn lại của các phím tắt

Tìm thấy Internet!

Tạo một tài khoản để theo dõi các cộng đồng yêu thích của bạn và bắt đầu tham gia vào các cuộc trò chuyện.

Tham gia Reddit

r/Python

Được đăng bởi 6 tháng trước6 months ago

Lưu trữ

Hướng dẫn python vs sql for data analysis reddit - python vs sql để phân tích dữ liệu reddit

Chủ đề này được lưu trữ

Nhận xét mới không thể được đăng và phiếu bầu không thể được chọn

Không chắc chắn nếu tôi có thể thiếu quan điểm của câu hỏi của bạn, nhưng cả hai là hai điều ồ ạt khác nhau có thể làm một số thứ tương tự.

SQL là cơ sở dữ liệu nơi dữ liệu của bạn sống. Nếu bạn có nhiều hệ thống và trang web và sao cho dữ liệu truy cập, chúng có thể truy cập dữ liệu bằng cơ sở dữ liệu SQL. Tất cả các bản cập nhật, bản sao lưu và sử dụng trực tiếp của bạn thường ở SQL. Nhiều người có thể nhấn vào cơ sở dữ liệu SQL cùng một lúc nhưng tôi không chắc chắn nhiều trường hợp khác nhau của Python có thể sử dụng cùng một khung dữ liệu cùng một lúc. Tôi nhận ra đây không phải là một so sánh 1: 1 nhưng nó đáng để chỉ ra.

Python là một ngôn ngữ lập trình. Nếu bạn có một cơ sở dữ liệu không quá lớn, đôi khi bạn có thể tải toàn bộ bảng vào các khung dữ liệu Pandas (trong Python) để thực hiện giảm số lượng hoặc tương tự. Trên thực tế, bạn có thể có Python đóng vai trò là thứ mà truy vấn và cập nhật cơ sở dữ liệu SQL của bạn. Nhưng nó chỉ là một ngôn ngữ lập trình mà bạn có thể làm. Bạn sẽ không muốn nó xử lý tất cả dữ liệu của bạn.

Bây giờ, sang một bên, khi bạn nhận được dữ liệu lớn và một loạt các bảng, SQL chỉ tốt hơn trong việc xử lý công việc đó. Với một bảng có kích thước terabyte+, gấu trúc sẽ rơi ra khỏi một truy vấn đơn giản và tải vào khung dữ liệu.

Tại sao không kết hợp tốt nhất của cả hai thế giới? Postgres cho phép bạn sử dụng Python để viết các chức năng và kích hoạt SQL của riêng bạn. Nó hỗ trợ nhiều ngôn ngữ thủ tục hơn, bạn có thể tìm thấy nhiều thông tin hơn về nó nếu bạn tìm kiếm PL/Python, nó hỗ trợ PY2 và PY3.

Nếu không, Gandas và Sqlalchemy cũng là một sự kết hợp tốt. Tạo kết nối với cơ sở dữ liệu SQL của bạn với SQLalchemy (Postgres, MySQL, SQLite, ... được hỗ trợ) và tải dữ liệu đã chọn vào DataFrame, thật tốt khi chọn trước và những thứ nặng có thể xảy ra trong DataFrame. Ưu điểm chính là bạn có thể thực hiện mọi thứ theo chương trình hơn, như chỉ chọn các cột kết thúc bằng 'ngày' hoặc khớp với Regex đặc biệt và vì vậy, điều bạn không thể làm với SQL bình thường.

Ví dụ: bạn có một bảng với 100 cột và bạn muốn có một cái nhìn tổng quan về mỗi cột với gấu trúc, bạn có thể làm điều gì đó như thế này:

for column in df.columns:
    print(column)
    print(df[column].max())
    print(df[column].min())
    print(len(df[column].unique()))

Trong SQL, bạn cần chọn mọi cột bằng tay và thực hiện các chức năng trên đó. Giống như ví dụ đồ chơi.

Tương tự như những gì hầu hết những người khác đang nói, việc học cả hai song song sẽ rất tuyệt. Điều đó nói rằng, trừ khi bạn siêu tận tâm và đam mê học tập, đó là một ngọn đồi dốc để leo lên và có khả năng kết thúc trong việc bạn trở nên thất vọng và từ bỏ cả hai.

Như đã nói, tôi nghĩ SQL sẽ là ngôn ngữ thực tế hơn để học trước. Chúng tôi đang ở trong một subreddit SQL mặc dù bạn tự nhiên sẽ nhận được một số câu trả lời thiên vị (tương tự nếu bạn đi đến subreddit R/Python). Là một nhà phân tích kinh doanh, bạn sẽ được sử dụng truy vấn SQL để trích xuất một số dữ liệu trước đây (nếu có?) Dự kiến ​​sẽ tạo tập lệnh Python để tự động hóa một số rút dữ liệu. Ngay cả khi nó đến với điều đó, tôi cảm thấy rằng bạn sẽ dựa vào các chuyên gia khác để giúp bạn xây dựng nó, vì đó thường là vai trò của các nhà phân tích kinh doanh trong hoàn cảnh thông thường cho một dự án như thế.

Câu hỏi tiếp theo mặc dù. Bạn đã nói "Bosses". Điều đó có nghĩa là bạn báo cáo cho nhiều người? Cuối cùng, nó phải là cấp trên trực tiếp của bạn hướng dẫn bạn và nói với bạn những gì cần phải làm. Vào cuối ngày, có lẽ tốt nhất để đi theo con đường của họ. Nếu bạn báo cáo với nhiều người, thì tôi nghĩ bạn cần gặp họ và đặt một con đường thực tế về phía trước. Nếu những người bảo bạn học X, người khác, thì có khả năng họ không nói chuyện với nhau. Họ cũng nên nhận ra rằng việc học 2 ngôn ngữ lập trình cùng một lúc là một thách thức đối với bất kỳ ai.

Sự phân chia sạch của lao động phân tích dữ liệu giữa Python và SQL dường như đang mờ dần với các công cụ như DBT, Snowpark và Dask-SQL. Hãy so sánh hai ngôn ngữ về hiệu suất, chức năng và nhà phát triển XP.

(Liên kết đến bài viết đầy đủ bên dưới)

Mã SQL hiệu suất trên các kho dữ liệu thường nhanh hơn Python để truy vấn dữ liệu và thực hiện các tập hợp cơ bản. Điều này là do các truy vấn SQL di chuyển mã sang dữ liệu thay vì dữ liệu sang mã. Điều đó nói rằng, các giải pháp tính toán song song như DASK và các giải pháp khác có quy mô mã Python sang các bộ dữ liệu lớn hơn bộ nhớ có thể thấp hơn đáng kể thời gian xử lý.
Running SQL code on data warehouses is generally faster than Python for querying data and doing basic aggregations. This is because SQL queries move code to data instead of data to code. That said, parallel computing solutions like Dask and others that scale Python code to larger-than-memory datasets can significantly lower processing times.

Chức năng Sức mạnh lớn nhất cũng là điểm yếu của nó: Đơn giản. Ví dụ, viết mã SQL để thực hiện phân tích dữ liệu khám phá lặp, khoa học dữ liệu hoặc các tác vụ học máy có thể nhanh chóng có được thời gian dài và khó đọc. Python cho phép bạn viết mã phân tích dữ liệu thử nghiệm dạng tự do và mã toán học phức tạp và/hoặc ML. Sự vắng mặt của một cộng đồng thư viện bên thứ ba sôi động và đáng tin cậy cho SQL cũng là một vấn đề so với Python.
SQL’s greatest strength is also its weakness: simplicity. For example, writing SQL code to perform iterative exploratory data analysis, data science or machine learning tasks can quickly get lengthy and hard to read. Python lets you write free-form experimental data analysis code and complex mathematical and/or ML code. The absence of a vibrant and reliable third-party library community for SQL is also a problem compared to Python.

Nhà phát triển Xppython làm cho việc gỡ lỗi và kiểm tra đơn vị dễ dàng và đáng tin cậy hơn rất nhiều. Mặc dù DBT đã thêm phiên bản mã bằng cách buộc việc sử dụng GIT, SQL Diffs vẫn khó đọc và thao tác hơn so với các khác nhau trong Python IMO.
Python makes debugging and unit-testing a lot easier and more reliable. While dbt has added code versioning by forcing the use of Git, SQL diffs are still harder to read and manipulate than diffs in Python IMO.

Kết luận Trong khi nó hấp dẫn để đóng khung cuộc tranh luận giữa SQL và Python là một sự cố, hai ngôn ngữ trên thực tế xuất sắc ở các phần khác nhau của đường ống xử lý dữ liệu. Một quy tắc tiềm năng để lấy từ điều này là sử dụng SQL cho các truy vấn đơn giản cần chạy nhanh trên kho dữ liệu, DBT để tổ chức các mô hình SQL phức tạp hơn và Python với các thư viện điện toán phân tán như DASK để phân tích và máy khám phá dạng tự do và máy Mã học và/hoặc mã cần được kiểm tra đơn vị đáng tin cậy. & NBSP;
While it's tempting to frame the debate between SQL and Python as a stand-off, the two languages in fact excel at different parts of the data-processing pipeline. One potential rule of thumb to take from this is to use SQL for simple queries that need to run fast on a data warehouse, dbt for organizing more complex SQL models, and Python with distributed computing libraries like Dask for free-form exploratory analysis and machine learning code and/or code that needs to be reliably unit tested. 

Bài viết đầy đủ: https: //airbyte.com/blog/sql-vs-python-data-analysis
https://airbyte.com/blog/sql-vs-python-data-analysis

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

Nếu ai đó thực sự đang tìm cách bắt đầu sự nghiệp của họ với tư cách là một nhà phát triển, thì họ nên bắt đầu với SQL vì đó là ngôn ngữ tiêu chuẩn và cấu trúc dễ hiểu làm cho quá trình phát triển và mã hóa nhanh hơn. Mặt khác, Python là dành cho các nhà phát triển lành nghề.

Tôi nên bắt đầu với SQL hay Python?

Một điều cần nhớ là SQL là bước đầu tiên lớn đối với một số ngôn ngữ phức tạp hơn (Python, R, JavaScript, v.v.). Một khi bạn hiểu cách một máy tính nghĩ, thật dễ dàng để học một ngôn ngữ lập trình mới để phân tích dữ liệu của bạn.SQL is a big first step to some more complex languages (Python, R, JavaScript, etc.). Once you understand how a computer thinks, it is easy to learn a new programming language to analyze your data.

SQL có đủ cho nhà phân tích dữ liệu không?

Nhà khoa học dữ liệu Long Story Short: Có, bạn cần học SQL cho bất kỳ vai trò nào trong ngành khoa học dữ liệu.Nó sẽ không chỉ khiến bạn có trình độ hơn cho những công việc này, mà còn khiến bạn khác biệt với các ứng viên khác, những người chỉ tập trung vào những thứ gợi cảm của Hồi giáo, như học máy ở Python.yes, you need to learn SQL for any role in the data science industry. It will not only make you more qualified for these jobs, it will also set you apart from other candidates who've only focused on the “sexy” stuff, like machine learning in Python.

Python và SQL có đủ cho khoa học dữ liệu không?

Nếu bạn có kế hoạch xây dựng sự nghiệp trong khoa học dữ liệu, thì lý tưởng nhất, bạn nên tìm hiểu cả ba Python, R và SQL.