Cursus
Python is een van de populairste en snelst groeiende programmeertalen voor data science en analytics. Met Python kun je zeer complexe taken uitvoeren op het gebied van datatransformatie, visualisatie, machine learning, kunstmatige intelligentie en nog veel meer.
Power BI kan rechtstreeks met Python integreren, waardoor de mogelijkheden van Power BI naar een hoger niveau worden getild. In deze tutorial focussen we op de installatie en het gebruik van Python-scripts in Power BI om data te importeren en een bestaande dataset te verrijken.
Waarom Python gebruiken in Power BI?
Python met Power BI gebruiken opent een hele reeks nieuwe mogelijkheden om met data te werken. Python maakt van Power BI een platform dat bijna alles kan.
Hier zijn enkele voorbeelden van taken die je met Python in Power BI kunt uitvoeren:
- Data opschonen - je kunt Python-scripts schrijven die repetitieve opschoontaken automatiseren die je vaak uitvoert, zoals het verwijderen van missende waarden of het corrigeren van datumnotaties.
- Datatransformatie - Python-scripts zijn handig voor datasets die uitgebreidere transformaties vereisen, wat in de Power Query Editor traag of omslachtig kan zijn voordat je ze kunt importeren.
- Machine learning - je data verrijken met voorspellende analyses (zoals regressie of natural language processing), of unsupervised machine learning-taken zoals clusteranalyse.
- Omgaan met missende data - met Python heb je meer opties voor het behandelen van missende data, bijvoorbeeld met machine learning-modellen.
- Geavanceerde visualisaties - er is geen beperking aan het type visualisatie dat je aan je rapport kunt toevoegen met Python. Voeg zeer complexe of aangepaste visualisaties toe zonder aangepaste visuals in Power BI te hoeven downloaden.
- Connectiviteit - met Python kun je verbinding maken met vrijwel elke databron, zelfs als Power BI deze niet als ingebouwde connectie ondersteunt.
Wat zijn de beperkingen van Python in Power BI?
Houd bij het schrijven van je scripts rekening met enkele beperkingen bij het gebruik van Python met Power BI:
- Databronnen die met Python zijn toegevoegd, moeten op openbaar (public) staan.
- Alleen Pandas DataFrames kunnen met Python in Power BI worden geïmporteerd.
- Scripts die langer dan 30 minuten draaien, lopen vast door een time-out; Python-visuals die langer dan 5 minuten draaien, ook.
- Er is een beperkt aantal Python-bibliotheken dat wordt ondersteund door Power BI Service (hier gaan we in de volgende sectie op in).
- Rapporten die Python gebruiken, kunnen in Power BI Service alleen worden vernieuwd via een persoonlijke gateway (de enterprise- of standaardgateway wordt niet ondersteund).
- Python-visuals ondersteunen geen cross-filtering. Dit betekent dat het selecteren van een element in een Python-visual er niet voor zorgt dat andere visuals daarop filteren, waardoor een deel van de interactiviteit in het Power BI-rapport wegvalt.
Zoals vermeld, ondersteunt Power BI Service slechts een beperkt aantal Python-bibliotheken. Deze beperkingen gelden niet wanneer je rapporten bouwt met Power BI Desktop, dus let op welke bibliotheken je gebruikt als je je rapporten wilt publiceren naar Power BI Service.
Houd er ook rekening mee dat Power BI Service momenteel de Python 3.7.7-runtime ondersteunt. Als je je Python-scripts in een oudere versie van Python schrijft, kan het zijn dat je code niet correct werkt.
Power BI Service ondersteunt deze bibliotheken:
- Matplotlib
- NumPy
- Pandas
- Scikit-learn
- Scipy
- Seaborn
- Statsmodels
- XGBoost
Het is goed om te weten dat er minimaal twee Python-bibliotheken geïnstalleerd moeten zijn om de integratie tussen Power BI en Python te laten werken: Pandas en Matplotlib.
Python instellen in Power BI
Voordat je scripts in Power BI kunt schrijven, moet je de nieuwste versie van Python installeren via de Python-website.
De Power BI-documentatie raadt aan om geen environment managers zoals Anaconda te gebruiken, omdat dit problemen kan veroorzaken bij het uitvoeren van scripts. Een mogelijke workaround als je een aangepaste omgeving in Anaconda gebruikt, is om de omgeving via de command line te activeren en vervolgens ook Power BI Desktop via de command line te openen.
Ben je minder bekend met deze programmeeraspecten, houd het dan simpel en volg de aanbeveling van Power BI door Python rechtstreeks van de website te downloaden zonder aangepaste omgevingen.
Nadat je Python hebt geïnstalleerd, moet je in Power BI Desktop het juiste Python-pad opgeven. Kies in het lint voor ‘Bestand’, vervolgens ‘Opties en instellingen’, en daarna ‘Opties’. Zoek in de lijst met globale opties naar ‘Python scripting’. Hier moet je de map opgeven die de Python-distributie bevat.
Je zou in de keuzelijst alle Python-distributies moeten zien die op je computer zijn geïnstalleerd. Als je het pad handmatig moet invoeren, let er dan op dat hier alleen absolute paden worden ondersteund; je kunt geen relatief pad opgeven, zoals vanaf de locatie van het Power BI-rapport.

Er zijn een paar manieren waarop je Python-scripts in Power BI kunt gebruiken:
- Als databron om nieuwe data te importeren.
- Om een bestaande databron te verrijken in de Power Query Editor.
- Om data te visualiseren op het canvas van het Power BI-rapport.
De rest van deze tutorial behandelt hoe je Python gebruikt als databron en om een bestaande databron te verrijken.
Python gebruiken als databron in Power BI
Selecteer op het tabblad Start in het lint ‘Gegevens ophalen’ om de volledige lijst met dataverbindingen te openen. Kies de categorie ‘Overig’ en zoek ‘Python-script’ in de lijst. Hiermee kun je een Python-script schrijven om een dataset te importeren. Dit is vooral handig wanneer je verbinding maakt met een databron die niet wordt ondersteund in de lijst met Power BI-verbindingen, of met een dataset die vóór het importeren uitgebreide transformaties vereist (zoals via een API).

Er verschijnt een dialoogvenster waarin je je Python-code kunt invoeren. In dit voorbeeld gebruiken we de Scikit-Learn-bibliotheek om de Iris-dataset te laden, die we ook in de volgende sectie gebruiken. Onthoud dat Power BI alleen Pandas DataFrames toestaat om te importeren, dus we moeten de dataset eerst converteren met ‘pd.DataFrame’.

Selecteer in het volgende venster de tabel ‘df’ die de data bevat. Je kunt deze dataset nu net als elke andere databron in Power BI naar het datamodel laden.

K-means-clustering in Power BI met Python
K-means-clustering is een unsupervised machine learning-techniek waarmee je groepen datapunten vindt die op elkaar lijken – dit zijn de clusters. Deze techniek is vooral nuttig voor bedrijven in marketing en klantenservice om hun klanten beter te begrijpen.
Power BI kan clusteranalyse op je data uitvoeren zonder Python. Het is echter wat beperkend, omdat het zelf het aantal clusters bepaalt waarin de data wordt opgedeeld en je dit niet kunt aanpassen. Dit is precies zo’n situatie waarin Python de perfecte oplossing is: je hebt de flexibiliteit om een script te schrijven dat aan jouw eisen voldoet.
Selecteer in de Power Query Editor het tabblad Transformeren in het lint en kies vervolgens ‘Python-script uitvoeren’. Er verschijnt bijna hetzelfde dialoogvenster als bij het importeren van de dataset, maar hier is er een placeholder voor onze huidige dataset met de naam ‘dataset’.

Als je op ‘OK’ klikt, wordt een samengevouwen tabel geïmporteerd. Je moet nu de kolom Value uitklappen om te kiezen welke kolommen je in de query wilt opnemen. Selecteer alle kolommen, inclusief onze nieuwe kolom ‘Cluster’ die zojuist door het bovenstaande script is aangemaakt, en zorg dat het selectievakje ‘Oorspronkelijke kolomnaam als voorvoegsel gebruiken’ uit staat.

Uiteindelijk houden we een dataset over met alle oorspronkelijke kolommen plus een extra kolom die het cluster toont waaraan elke rij van de data is toegewezen. In dit voorbeeld kozen we ervoor om de data in 4 clusters op te splitsen, dus zouden de clusterlabels van 0 tot en met 3 moeten lopen.

Conclusie
Dit is slechts het topje van de ijsberg van wat mogelijk is met de integratie tussen Python en Power BI. Als deze tutorial je nieuwsgierig heeft gemaakt naar hoe je het maximale uit Power BI haalt, bekijk dan eens DataCamp’s Power BI Fundamentals skill track of de Data Analyst with Power BI career track.
