Blog Details

  • Home
  • Python und R in Power BI

Python und R in Power BI

Python und R gehören unumstritten zu den populärsten Programmiersprachen im Data Science Bereich. Frei verfügbar und mit Integrationen auf zahlreichen Plattformen existiert für beide Sprachen eine breite Community. Microsoft hat vor geraumer Zeit bereits erkannt wie wichtig die Integration von Open Source Software in ihrem Produkt-Portfolio ist und bietet bei diversen eigenen Applikationen (vor allem auf ihrer Cloud Plattform Azure) Integrationen zu externer Software an. Mit der Integration von Python und R in ihrem Erfolgsprodukt «Power BI» wird die «Microsoft Data Analytics Welt» mit der «Open Source Data Science Welt» verbunden.

Python und R kommen in Power BI an drei Orten zum Einsatz: Zuerst als Datenquelle und somit Import von Datensets, anschliessend zur Transformation im Power Query Editor oder dann als graphische Aufbereitung, sogenannte Visuals. Dieser Beitrag hier sollte kurz aufzeigen, wie Python und R integriert werden können, welcher Einsatz sinnvoll ist und wo Limitierungen auftauchen.

Installation und Integration

Wenn man bereits mit Python (resp. R) arbeitet, benötigt es keine weiteren Installationen. Es ist lediglich nötig Python zu installieren und die zwingenden Packages dazu zu laden (Pandas und Matplotlib als Basis), bei R reicht die Basisinstallation. In Power BI findet man dann unter den Optionen die Script-Einstellungen, welche automatisch zugeordnet und geändert werden können, falls nötig.

Python und R Options in Power BI

Datenimport und Transformation mit Python

Der erste Einsatzort ist der Datenimport, welchen wir als Beispiel mit Python durchführen. Die Einbindung erfolgt analog anderer Datenquellen-Einbindung mit einem Connector, welcher Power BI zur Verfügung stellt.

Python und R Connector in Power BI

Nun wird der basic Python Code zum Import mittels Pandas Library eingetragen. Wir nehmen zum Testen ein Datenset von Opendata Swiss mit dem Durchschnittsalter der Bevölkerung des Kanton Zürich.

Python Import in Power BI

Natürlich kann hier noch mehr Python Magic stattfinden ehe das Datenset in Power BI geladen wird. Wie man aber sieht ist es ein sehr einfacher Editor und für ein einfaches Laden der Daten ist nicht mehr nötig als diese paar Zeilen.

Mit OK wird die Quelle aufbereitet und das Dataframe ist als Tabelle in Power BI verfügbar. Wie bei allen anderen Quellen kann nun der Transformationsprozess mit Power Query zum Einsatz kommen. Auch hier ist es möglich ein Python (oder R) Script einzubinden (auch bei Sourcen, die nicht mit Python importiert worden sind). Die Transformationsmöglichkeiten mit Power Query selber sind mächtig. Als eingefleischter Python Entwickler wird aber wahrscheinlich ein Data Wrangling in der bekannten Programmiersprache bevorzugt. Das Editor-Fenster ist das Gleiche und es empfiehlt sich bei umfangreicheren Transformationen in einer Python- oder R-IDE zu arbeiten und den Code zu kopieren.

Visuals mit R

Die dritte Einsatzmöglichkeit von Python und R in Power BI ist das Erstellen von Visuals. Die Funktionsweise erklären wir hier nun anhand von R. Neben all den bekannten Charts in Power BI (Bar Chart, Line Chart, etc.), gibt es ein Visual für «R» und ein Visual für «Py». Mit der Auswahl eines dieser Charts öffnet sich ein Script Editor. Im ersten Schritt werden nun die Datenfelder aus dem Datenset in «Values» gezogen. Nur dann können sie im Script Editor verwendet werden. Im folgenden Bild sieht man die verwendeten Elemente:

R Visual in Power BI

Rechts ist nun die Auswahl des Visuals und der Datenfelder zu sehen und im unteren Teil links den Einzeiler, welchen wir für eine simple Anzeige einer Boxplot-Grafik mit R verwenden. In der Arbeitsfläche sieht man das Resultat. Das Ziel in dem Fall ist es zu sehen, wie sich das Durchschnittsalter der Bevölkerung über die Jahre entwickelt. In dem Beispiel wurde eine sehr simple Anzeige verwendet. Wer sich etwas mit R auskennt, weiss, dass das nur der Anfang ist und die Möglichkeiten sehr umfangreich sind.

Das Visual lässt sich nun genau wie andere Grafiken in Power BI mit anderen Grafiken interagieren. Oberflächlich sieht man z.B. dass das Durchschnittsalter über die letzten 12 Jahre fast linear steigt und insgesamt über 3 Jahre zunimmt. Wenn wir nun aber mittels anderen Power BI Visuals auf Gemeindeeben runterbrechen, sehen wir, dass einige Gemeinden dem Trend widersprechen:

R Visual in Power BI Interaktiv

Lohnt sich der Einsatz von Python oder R mit Power BI?

Wie man sieht ist die Integration sehr einfach und man hat schnell ein Ergebnis. Die Frage ist nun, ob es sich lohnt diese Funktionen zu nutzen oder nicht. Das hängt natürlich davon ab, wo die eigenen Präferenzen liegen und was die Aufgaben und Ziele sind.

  • Existieren vielleicht bereits Reports oder Aufbereitungen in R oder Python und das Unternehmen möchte auf ein einheitliches Reporting mit Power BI setzen, dann können diese Visuals in Power BI mittels R- oder Py-Visual übernommen werden. Warum sollten diese mit herkömmlichen Power BI Visuals neu zusammengestellt werden, wenn sie bereits in anderer Form existieren.
  • Zudem sind Entwickler und Analysten, welche mit Python oder R sehr vertraut sind, einfach schneller in ihrer bekannten Umgebung. In dem Fall ist es also eine Frage der Präferenz und der Skills, die im Team vorhanden sind.
  • Ein weiterer wichtiger Punkt ist die Flexibilität und der Funktionsumfang, welcher Python und R bieten. Auch wenn es für Power BI mittlerweile sehr viele Visuals gibt, die den Grossteil der Anforderungen abdecken, so geht der Funktionsumfang von Python und R weit darüber hinaus und die letzte Meile ist dann eben nur noch mit Scripting möglich.

Es gibt aber durchaus  technische Gründe, diese Integration nicht zu verwenden.

  • Es gibt technische Limitierungen für den Gebrauch von Python, wie auch bei der Anwendung der R-Integration.
  • Auch wenn mit Pandas, Matplotlib, scikit-learn, Seaborn, usw. wichtige Packages integriert sind, sind gesamthaft nur wenige Python Packages verfügbar (Supported Python Packages).
  •  Wenn eine automatische Aktualisierung der Daten (Refresh) geplant ist, so ist ein «Personal Gateway» nötig, damit die Python- oder R-Scripts aktualisiert werden. Der Enterprise Gateway kann dazu nicht benutzt werden.
  • Eine Publikation von diesen Visuals auf eine öffentliche Website ist aktuell nicht möglich.

Fazit

Die Installation ist schnell und die wichtigsten Features sind verfügbar. Für Personen, die vertiefte Kenntnisse in Python oder R haben und weniger fundiert in Power BI sind, nutzen diese Integration bestimmt. Die Limitierungen der Packages und vor allem die Notwendigkeit des Personal Gateways wird dennoch einige davon abschrecken die Integration zu nutzen, zumal der Funktionsumfang von native Power BI Import, Transformation und Visuals bereits sehr hoch ist.