STORY

Python Pandas of PowerBI?

Joep Sanders, directeur/consultant bij SkyClear deelt zijn ervaring met BI-tools, welke hij het liefst gebruikt en waarom:

De afgelopen jaren heb ik het geluk gehad dat ik heb mogen proeven van een breed scala aan BI-tools. Van transformatie in Alteryx tot dashboards in Qlik, SQL queries, Cognos modellen, rapportages in Business Objects en natuurlijk het betere knutselwerk in MS Access en Excel. Twee tools steken met kop en schouder uit in mijn gereedschapskist: MS PowerBI en Python Pandas. Als ik mag kiezen (en gelukkig is dat vaak het geval), dan gebruik ik een van deze twee… of beide.

Elke BI-oplossing heeft natuurlijk zijn voordelen. Als je ze goed inricht helpen ze je allemaal met het slimmer besturen van je bedrijf. Als je zelf aan de slag wil met het maken van een dashboard of het uitvoeren van een data analyse dan moet je in het oerwoud van tools een keuze gaan maken.

Microsoft PowerBI en Python Pandas zijn mijn favorieten. Natuurlijk is het appels met peren vergelijken, maar ik wil toch een poging doen om op een rijtje te zetten wanneer ik welke oplossing gebruik en waarom.

Visualisatie

Alhoewel er veel Python data visualisatie libraries beschikbaar zijn, gebruik ik het liefste PowerBI voor visualisaties. PowerBI biedt standaard de belangrijkste grafieken, tabellen en KPI weergaven die je nodig hebt om een mooi dashboard te bouwen. Mocht je daar niet voldoende aan hebben kan je altijd op zoek naar een ‘visual’ in AppSource, of zelf aan de slag gaan met een ‘custom visual’.

Een groot voordeel van PowerBI is het gemak waarmee je een grafiek maakt. Met een paar klikken kan je verschillende visualisaties uitproberen en de meest geschikte uitzoeken voor de informatie die je wilt overbrengen. Een absolute plus is het interactieve karakter van dashboards in PowerBI. Door het klikken op een visualisatie kan je inzoomen op de voor jou relevante informatie en andere visualisaties filteren. Natuurlijk zijn ook standaard filters en slicers super snel en toegankelijk in PowerBI.

Transformatie

Met DAX kan je in PowerBI prachtige formules en metrics bouwen die je supersnel kunt filteren en samenvoegen. Voor het binnenhalen van bronnen en het uitvoeren van transformaties stap je over naar de query editor en Power Query ‘M’. Het mooie hier is de grafische interface waarmee je uitgebreide transformaties kan uitvoeren zonder een regel code te hoeven schrijven. Veel verschillende typen data kunnen eenvoudig worden binnengehaald, zoals bijvoorbeeld tekstbestanden, Excel, SQL Server, API’s. En als dat niet genoeg is dan kan je nog zelf aan de slag met een Custom Connector die je ook in “M” kan schrijven.

Je kunt het zo gek niet bedenken of je kan het bouwen in PowerBI, geloof me: ik heb het geprobeerd :). Data binnenhalen vanuit een Rest API met OAUTH authenticatie flow, een prachtig dimensioneel datamodel met transformaties en complexe calculaties in “M”. Allemaal te realiseren, maar je loopt tegen de grenzen van de applicatie aan. En dat merk je aan de stabiliteit en performance van je dashboard. Het refreshen van de data en het runnen van de queries gaat in dat geval erg lang duren, en loopt helaas af en toe vast. Daarnaast biedt PowerBI niet zo’n fijne ontwikkelomgeving als je wat dieper de code induikt.

Dus voor het zwaardere transformatiewerk stap ik over naar Python Pandas. Niet zo ‘instap-klaar’ als PowerBI maar met een online cursus, een fijne omgeving zoals bijvoorbeeld Jupyter en het betere google-werk kom je een heel eind. Als je een beetje handig bent met Python zijn de mogelijkheden onbegrensd: je kan alle typen data inlezen, met grote data sets aan de slag, complexe bewerkingen uitvoeren en dat allemaal super stabiel en razendsnel. Omdat Python erg populair is onder data engineers en scientists is er online veel documentatie en community content te vinden. Met de meeste vraagstukken hebben andere mensen al geworsteld en zijn er verschillende oplossingen beschikbaar.

Analyse

Afhankelijk van het type analyse dat ik wil uitvoeren geef ik de voorkeur aan een van beide oplossingen. PowerBI is een goede manier om visueel op data in te zoomen, te vergelijken en filteren. Een analyse is op deze manier ook makkelijk te delen met andere mensen.

Het grote voordeel van data analyse met behulp van Python is de snelheid. Met een simpel scriptje graaf je door een grote berg data, maak je groeperingen en voeg je data samen. Geen ‘refresh’ data, geen overstappen tussen query editor, data model en metrics. Je kan je script direct runnen en krijgt direct resultaat. Als je een beetje gestructureerd werkt, kan je je code de volgende keer dat je dezelfde of een soortgelijke vraag hebt hergebruiken. Dat is vooral handig als je wat meer geavanceerde bewerkingen uitvoert zoals bijvoorbeeld text analyse of complexe joins. Helaas vereist het werken met python pandas wel wat oefening voordat het echt tijd gaat besparen.

Toegankelijkheid

PowerBI komt veruit het beste uit de bus als het gaat om toegankelijkheid. De applicatie is volledig ingericht op het gebruik van de grafische interface. Als je dan een DAX formule maakt, wordt je geholpen in de formule editor met de juiste syntax en tips. De basis van PowerBI zijn twee tools welke al beschikbaar waren in Excel: PowerQuery en PowerPivot, en de functies sluiten aan op de office applicaties. Het is een Self-Service BI tool bij uitstek en hiervoor hoef je de applicatie niet eens te hebben geïnstalleerd: je komt al een heel eind met Dashboards gepubliceerd in de cloud. Natuurlijk kan je het ingewikkeld maken met geavanceerde DAX of transformaties in M, maar dat hoeft niet om een mooi dashboard te maken.

Wat betreft de toegankelijkheid van Python kan je het jezelf wat makkelijker maken bij het opzetten van je omgeving met behulp van een platform zoals Anaconda. Als ontwikkelomgeving geef ik zelf de voorkeur aan Jupyter Lab als het aankomt op eenvoud. Jupyter Lab biedt je een logische en overzichtelijke interface, net geformatteerde output, auto-complete en functie toelichting. Maar hoe je het ook wendt of keert, het gebruik van Python voor data analyse vereist een basiskennis en een ingerichte ontwikkelomgeving en is daarom veel minder toegankelijk dan PowerBI.

Het beste van beide werelden

Als ik zou moeten kiezen, dan zou ik dat niet doen :). En volgens mij hoeft dat ook niet: het is mogelijk om Python scripts toe te voegen aan PowerBI. Op dit moment ben ik nog niet tegen een use case aangelopen, maar wie weet wordt dat een nuttige toepassing in een volgend project.

Heb je behoefte aan context en overzicht?

Lees hier meer over onze aanpak.