Wizualizacje Pythonowe w Power BI

W jednym z projektów, w których miałem przyjemność pracować, Klient wewnętrzny przyszedł do nas z wymaganiem, że część wykresów ma być dokładnie taka sama jak w Pythonie. Nie mamy korzystać z natywnych wykresów, tylko osadzić jego wizualiacje Pythonowe w Power BI.

Zapraszam do lektury, gdzie pokażę Ci jak stworzyć wizualiacje Pythonowe w Power BI i podzielę się refleksjami na ich temat.

Wymagania

Jeden z Architektów żartował zawsze „Jak czytamy dokumentację? Od końca, gdyż tam są wszystkie obostrzenia i ograniczenia.” 😊  Ja przedstawię je już na początku, żebyś wiedział, na co zwrócić uwagę.

Przede wszystkim musisz mieć zainstalowanego Pythona na swoim lokalnym komputerze.

Upewnij się, że w opcjach Power BI Desktop wykrył Twoją instalację Pythonową.

Istnieją też pewne ograniczenia dotyczące bibliotek, z których możesz skorzystać. Warto też zainstalować sobie te biblioteki na swoim lokalnym środowisku Pythonowym, tak, żeby potem nie mieć błędów związanym z brakiem modułów. O pracy z Pythonem w kwestii konfiguracji, pisałem tutaj.

Na ten moment wspierane są poniższe biblioteki.

  • matplotlib
  • numpy
  • pandas
  • scikit-learn
  • scipy
  • seaborn
  • statsmodels

Warto też zwrócić uwagę, że nasz Dataframe może mieć maksymalnie 150 000 wierszy. Limit czasu wykonania naszego skryptu po stronie PBI Service to 60 sekund, po stronie Power BI Desktop z kolei to 300 sekund. Warto zapoznać się ze wszystkimi wymaganiami/ ograniczeniami, które w dobry sposób są zebrane tutaj.

Istotne są też wymagania licencyjne. Żeby w pełni korzystać z możliwości, trzeba mieć licencję PRO lub Premium Per User (PPU). Ewentualnie Użytkownicy mogą oglądać raporty wykorzystujące wizualizacje Pythonowe w ramach Obszarów roboczych przypisanych do Premium Capacity. Kwestie licencyjne są zgłębione tutaj.

To tyle z teorii, przejdźmy teraz do konkretów!

Praca z wizualizacją języka Python w Power BI

Wizualizacja Pythonowa jest dostępna w ramach palety natywnych wizualizacji. Ma charakterystyczną ikonkę, którą widzisz na poniższym screenie:

Zestaw danych Insurance

Na potrzeby artykułu załadowałem sobie do PBI’a dość popularny zestaw danych dotyczący wydatków na ubezepieczenia. Jest on dostępny na Kaggle, znajdziesz go np. tu.

Zestaw danych zawiera 1338 obserwacji opisujących ubezpieczonych.

Koszty ubezpieczenia są podane w odniesieniu do następujących atrybutów: wiek, płeć, BMI, liczba dzieci, czy dana osoba pali oraz regionu, który zamieszkuje. W zbiorze danych nie ma brakujących ani nieokreślonych wartości.

Załadowany zestaw danych insurance prezentuje się w następujący sposób:


Zachęcam też do zapoznania się z zestawem danych. Materiały, których używam w dzisiejszym artykule są podlinkowane, zgodnie z historyczną prośbą jednego z Czytelników. Link do materiałów znajdziesz na końcu artykułu.

Po wybraniu wizualizacji typu Python wyskoczy Ci okienko. Oczywiście w naszym przypadku wybieramy opcję „Włącz”. Jest to niezbędne, by tworzyć wizualiacje Pythonowe w Power BI.

Analiza eksploracyjna przy użyciu Chata GPT

O pomoc w przeprowadzeniu analizy eksploracyjnej poprosimy dziś Chata GPT, w wersji 4o.

Chat GPT 4o spisał się bardzo dobrze. Jeśli masz do niego dostęp, zachęcam do wykorzystania powyższego prompta i analizy wyników.
Ostatecznie, chciałbym zwizualizować sobie w Pythonie i osadzić w Power BI poniższe wykresy:

Pierwszy z nich to rozkłady zmiennych, a drugi to macierz korelacji. Co chyba oczywiste, widać, że to, czy ktoś jest palaczem w znaczący sposób wpływa na wysokość ubezpieczenia. Nie warto palić! 😊

Implementacja wizualizacji Pythonowej w Power BI Desktop

Aby stworzyć wykres przenosimy do pola Wartości elementy naszego załadowanego zestawu danych.  

W edytorze skryptów języka Python pojawi się domyślnie kilka linii kodu, które stworzą Pandasowy Dataframe, zawierający pola, które przed chwilą wybrałem i „wrzuciłem” do Wartości.
W kolejnym kroku zostaną usunięte duplikaty.

W ramach edytora skryptów języka Python możemy dokonywać dalszych transformacji, pamiętając jednak o limitach np. czasu wykonania, o których wspominałem wyżej.

W kolejnym kroku wklejam kod Pythonowy wygenerowany przez Chata GPT.Musiałem dokonać pewnych zmian, żeby odwoływał się do naszego Dataframe’u o nazwie dataset.

Po wklejeniu kodu i wybraniu opcji Uruchom skrypt Twoim oczom ukaże się wykres rozkładu zmiennych.

Co ważne i warte podkreślenia, wykresy Pythonowe są dostosowane do pracy z filtrami czy też fragmentatorami (ang. slicer). Dzięki czemu, możemy filtrować sobie nasze dane, a wykres Pythonowy będzie się odświeżał. Niestety wykresy Pythonowe w PBI nie zachowują interaktywności, do jakiej przyzwyczajają nas natywne wizualizacje dostępne w Power BI. Po najechaniu myszką na wykres nie mamy żadnej interakcji, nie wyświetlają się dodatkowe informacje. Sam wykres możesz sobie zobrazować jako po prostu osadzoną grafikę.

W analogiczny sposób, na kolnej stronie raportu zbudowałem sobie wykres Pythonowy z macierzą korelacji.

Podsumowanie

Podsumowując, Power BI (Desktop i Service) daje nam możliwość wykorzystania Pythona do budowania swoich wizulizacji. Należy jednak pamiętać o wspomnianych w artykule ograniczeniach. Fajną opcją jest możliwość dopisywania swojego kodu w kwestii np. dalszych transformacji naszego Dataframe’u. Przydatne jest to, że wykresy są responsywne na działanie filtrów czy fragmentatorów (ang. slicers). Minusem jest na pewno fakt, że wykresy tracą interaktywność po najechaniu na nie myszką. Są jak zwykła grafika osadzona w raporcie.

Temat integracji Pythonowej ze środowiskiem Power BI’owym jest bardzo ciekawy, można też go wykorzystywać w ramach transformacji Power Query. Chciałbym temu tematowi przyjrzeć się w przyszłości i podzielić się z Wami refleksjami.

Zestaw danych, którego użyłem do tworzenia tego artykułu, a także kod Pythonowy do wizualizacji znajdziesz tutaj. Zachęcam do zabawy w wizualiacje Pythonowe w Power BI i przećwiczenie tematu.

Wesołych Świąt i mała przerwa 🙂

Na koniec chciałbym Ci życzyć Wesołych Świąt i wszystkiego najlepszego w nadchodzącym roku! Dużo odpoczynku, dobrego czasu w gronie Najbliższych. Odpoczynku od pracy i obowiązków, mniej czasu przed ekranem 😊 W okresie świąteczno- noworocznym robię przerwę. Kolejny artykuł pojawi się 10.01.2025. Do zobaczenia!

Dane są wszędzie, wiesz?

Zapisz się, jeśli interesujesz się Power BI'em i danymi. Co jakiś czas odezwę się z ciekawymi materiałami.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *