Khóa học
Python là một trong những ngôn ngữ lập trình phổ biến và phát triển nhanh nhất cho khoa học dữ liệu và phân tích. Python có thể thực hiện các tác vụ phức tạp liên quan đến chuyển đổi dữ liệu, trực quan hóa, học máy, trí tuệ nhân tạo và nhiều hơn thế nữa.
Power BI có khả năng tích hợp trực tiếp với Python, đưa năng lực tổng thể của Power BI lên một tầm cao mới. Trong hướng dẫn này, chúng ta sẽ tập trung vào việc thiết lập và sử dụng tập lệnh Python trong Power BI để nhập dữ liệu và làm giàu một tập dữ liệu hiện có.
Tại sao dùng Python trong Power BI?
Kết hợp Python với Power BI mở ra một loạt khả năng mới để làm việc với dữ liệu. Python biến Power BI thành một nền tảng có thể làm gần như mọi thứ.
Dưới đây là một vài ví dụ về các loại tác vụ có thể thực hiện bằng Python trong Power BI:
- Làm sạch dữ liệu - bạn có thể viết các tập lệnh Python tự động hóa những công việc làm sạch dữ liệu lặp đi lặp lại mà bạn thường làm như loại bỏ giá trị khuyết hoặc chuẩn hóa định dạng ngày tháng.
- Chuyển đổi dữ liệu - tập lệnh Python hữu ích cho các tập dữ liệu cần chuyển đổi phức tạp hơn, vốn có thể chậm hoặc rườm rà nếu làm trong Power Query Editor trước khi nhập.
- Học máy - làm giàu dữ liệu bằng phân tích dự báo (như hồi quy hoặc xử lý ngôn ngữ tự nhiên), hoặc các tác vụ học máy không giám sát như phân cụm.
- Xử lý dữ liệu khuyết - Python cung cấp nhiều lựa chọn hơn cho cách bạn muốn xử lý dữ liệu khuyết, ví dụ dùng các mô hình học máy.
- Trực quan hóa nâng cao - không bị giới hạn loại biểu đồ khi dùng Python. Thêm các trực quan hóa phức tạp hoặc tùy chỉnh cao mà không cần tải custom visuals trong Power BI.
- Kết nối - Python cho phép bạn kết nối hầu như mọi nguồn dữ liệu ngay cả khi Power BI không hỗ trợ như một kết nối tích hợp sẵn.
Hạn chế khi dùng Python trong Power BI là gì?
Một số hạn chế khi dùng Python với Power BI mà bạn cần lưu ý khi viết tập lệnh:
- Nguồn dữ liệu thêm bằng Python phải được đặt ở chế độ công khai (public).
- Chỉ Pandas DataFrame mới có thể được nhập vào Power BI bằng Python.
- Các tập lệnh chạy quá 30 phút sẽ bị quá hạn, tương tự các trực quan hóa Python chạy quá 5 phút cũng vậy.
- Số lượng thư viện Python được Power BI Service hỗ trợ là hạn chế (chúng tôi sẽ nói rõ hơn ở phần sau).
- Báo cáo sử dụng Python chỉ có thể làm mới trong Power BI Service thông qua personal gateway (không hỗ trợ enterprise hoặc standard gateway).
- Trực quan hóa Python không hỗ trợ cross-filtering. Nghĩa là khi chọn một phần tử trong trực quan hóa Python sẽ không làm các biểu đồ khác lọc theo lựa chọn đó, do đó giảm bớt mức độ tương tác trong báo cáo Power BI.
Như đã đề cập, Power BI Service chỉ hỗ trợ một số thư viện Python giới hạn. Những ràng buộc này không áp dụng khi xây dựng báo cáo bằng Power BI Desktop, vì vậy hãy chú ý đến các thư viện bạn dùng nếu dự định xuất bản báo cáo lên Power BI Service.
Bên cạnh đó, lưu ý rằng Power BI Service hiện hỗ trợ runtime Python 3.7.7. Nếu bạn viết tập lệnh Python ở phiên bản cũ hơn, mã của bạn có thể không chạy đúng.
Power BI Service hỗ trợ các thư viện sau:
- Matplotlib
- NumPy
- Pandas
- Scikit-learn
- Scipy
- Seaborn
- Statsmodels
- XGBoost
Đáng chú ý là để tích hợp giữa Power BI và Python hoạt động, tối thiểu phải cài đặt hai thư viện Python – Pandas và Matplotlib.
Cách thiết lập Python trong Power BI
Trước khi có thể viết bất kỳ tập lệnh nào trong Power BI, bạn cần cài đặt phiên bản Python mới nhất từ trang web Python.
Tài liệu Power BI khuyến nghị tránh dùng các trình quản lý môi trường như Anaconda vì có thể gây ra một số vấn đề khi chạy tập lệnh. Một cách khắc phục khả dĩ nếu dùng môi trường tùy chỉnh trong Anaconda là kích hoạt môi trường từ dòng lệnh rồi mở Power BI Desktop cũng từ dòng lệnh.
Tuy nhiên, nếu bạn chưa quen với các khía cạnh này của lập trình, thì dễ nhất là làm theo khuyến nghị của Power BI bằng cách chỉ tải Python từ trang web của họ mà không dùng môi trường tùy chỉnh.
Sau khi cài đặt Python, bạn cần chỉ định đúng đường dẫn tệp Python trong Power BI Desktop. Trên dải băng, chọn ‘File’, rồi ‘Options and settings’, sau đó chọn ‘Options’. Trong danh sách tùy chọn chung, tìm ‘Python scripting’. Tại đây bạn cần tìm thư mục chứa bản phân phối Python.
Bạn sẽ thấy tất cả các bản phân phối Python đã cài đặt trên máy tính trong danh sách thả xuống. Nếu cần nhập đường dẫn thủ công, lưu ý rằng chỉ hỗ trợ đường dẫn tuyệt đối và bạn không thể nhập đường dẫn tương đối như từ vị trí tệp báo cáo Power BI

Có vài cách để bạn dùng tập lệnh Python trong Power BI:
- Làm nguồn dữ liệu để nhập dữ liệu mới.
- Làm giàu một nguồn dữ liệu hiện có trong Power Query Editor.
- Trực quan hóa dữ liệu trên khung báo cáo Power BI.
Phần còn lại của hướng dẫn này sẽ trình bày cách dùng Python làm nguồn dữ liệu và để làm giàu một nguồn dữ liệu hiện có.
Sử dụng Python làm nguồn dữ liệu trong Power BI
Trong tab Home trên dải băng, chọn ‘Get data’ để mở danh sách đầy đủ các kết nối dữ liệu. Chọn danh mục ‘Other’ và tìm ‘Python script’ trong danh sách. Tùy chọn này cho phép bạn viết tập lệnh Python để nhập một tập dữ liệu. Tôi thấy điều này đặc biệt hữu ích khi kết nối tới nguồn dữ liệu không được hỗ trợ trong danh sách kết nối của Power BI, hoặc một tập dữ liệu cần chuyển đổi phức tạp trước khi nhập (chẳng hạn từ một API).

Một hộp thoại sẽ bật lên để bạn nhập mã Python. Trong ví dụ này, chúng ta sẽ dùng thư viện Scikit-Learn để tải tập dữ liệu Iris mà chúng ta cũng sẽ dùng ở phần kế tiếp. Hãy nhớ rằng Power BI chỉ cho phép nhập Pandas DataFrame, nên trước tiên ta phải chuyển đổi tập dữ liệu bằng ‘pd.DataFrame’.

Trong cửa sổ tiếp theo, chọn bảng có tên ‘df’ chứa dữ liệu. Giờ bạn có thể nạp tập dữ liệu này vào mô hình dữ liệu như bất kỳ nguồn dữ liệu nào khác trong Power BI.

Phân cụm K-Means trong Power BI bằng Python
Phân cụm K-Means là một kỹ thuật học máy không giám sát cho phép bạn tìm các nhóm điểm dữ liệu tương đồng với nhau – đó là các cụm. Kỹ thuật này đặc biệt hữu ích cho doanh nghiệp trong tiếp thị và chăm sóc khách hàng để hiểu khách hàng tốt hơn.
Power BI có khả năng thực hiện phân tích phân cụm trên dữ liệu của bạn mà không cần Python. Tuy nhiên, nó có phần hạn chế ở chỗ tự quyết định số cụm để chia dữ liệu và không cho bạn thay đổi. Tình huống này khiến Python trở thành giải pháp hoàn hảo, vì giờ bạn có sự linh hoạt để viết tập lệnh theo đúng yêu cầu của mình.
Từ Power Query Editor, chọn tab Transform trên dải băng rồi chọn ‘Run Python Script’. Hộp thoại hiển thị gần như giống hệt khi chúng ta nhập tập dữ liệu, ngoại trừ ở đây có một placeholder cho tập dữ liệu hiện tại của chúng ta là ‘dataset’.

Chọn ‘OK’ sẽ nhập một bảng dạng thu gọn. Bạn cần bung cột Value để chọn những cột muốn đưa vào truy vấn. Chọn tất cả các cột, bao gồm cột ‘Cluster’ vừa được tạo từ tập lệnh ở trên và nhớ bỏ chọn ô ‘Use original column name as prefix'.

Cuối cùng, chúng ta có một tập dữ liệu chứa tất cả các cột gốc cùng một cột bổ sung hiển thị cụm mà mỗi dòng dữ liệu được gán vào. Trong ví dụ này, chúng ta chọn chia dữ liệu thành 4 cụm, do đó sẽ có nhãn cụm từ 0 đến 3.

Kết luận
Đây mới chỉ là phần nổi của tảng băng về những gì có thể làm với tích hợp Python và Power BI. Nếu hướng dẫn này khơi gợi sự tò mò của bạn về cách khai thác tối đa Power BI, bạn có thể tìm hiểu lộ trình kỹ năng Power BI Fundamentals của DataCamp hoặc lộ trình nghề nghiệp Data Analyst with Power BI.