Päivitetty 15.5.2020
Power BI desktop on hyvä työkalu datojen noutamiseen, yhdistelyyn ja visualisointiin. Visualisoinnit kootaan dashboard-tyyppiselle alustalle ja voidaan edelleen julkaista Power BI -pilvipalvelussa tai omalla Power BI -palvelimella.
Jos visualisointien tekemiseksi tarvitaan edistyneempää data-analytiikkaa, niin apuvälineinä voi käyttää Python- ja R-ohjelmointikieliä. Julkaisualustalle siirrettynä tuettuina ovat ainakin seuraavat Pythonin ohjelmakirjastot: numpy, pandas, matplotlib, seaborn, scikit-learn, scipy ja statsmodels.
Seuraavassa luon Excel-muotoiselle datalle ( http://taanila.fi/data3.xlsx ) jointplotin. Lukijan oletan entuudestaan tuntevan Power BI Desktopin toimintoja ja osaavan jonkin verran Python data-analytiikkaa.
Tässä käytävä esimerkki on yksinkertainen, mutta Python-koodi voisi sisältää paljonkin analytiikkaa kunhan lopputuloksena syntyy visualisointi (matplotlib– tai seaborn-kirjaston kuvio).
Käyttöönotto
Power BI desktopille täytyy kertoa, mitä Python-asennusta käytetään:
- Valitse File – Options and settings – Options.
- Valitse vasemmasta reunasta Python scripting.
- Detected Python home directories -listasta löytyy käyttämästäsi koneesta tunnistetut Python-asennukset, joista voit valita haluamasi. Anacondaa käyttävillä, myös minulla, on ollut ongelmia saada Python toimimaan Power BI:n kanssa. Tähän ongelmaan löytyy erilaisia ratkaisuyrityksiä googlaamalla. Tätä kirjoittaessani poistin koneeltani kaikki Python-asennukset ja asensin Anacondan uusimman version. Tässä tapauksessa Anacondan Python toimi ongelmitta Power BI:ssä.
WinPython on kätevä Windows-koneilla toimiva siirrettävissä oleva paketti, joka ei vaadi minkäänlaista asennusta eikä myöskään vaikuta mitenkään koneella jo oleviin Python asennuksiin. Tätä voit käyttää PowerBI:n kanssa, jos et saa muita asennuksia yhteistyöhön. PowerBI ei automaattisesti tunnista koneella olevaa WinPythonia, mutta sen voi ottaa käyttöön valitsemalla Detected Python home directories -listasta Other ja siirtymällä Browse-toiminnolla WinPythonin kansioon:
Visualisointi Pythonilla
Napsauta Visualizations-paneelissa Py-kuvaketta.
Jos saat pyynnön sallia visualisoinnit, niin valitse Enable.
Alareunaan ilmestyy Python script editor, jossa on teksti Drag fields into Values area in the Visualization pane to start scripting. Toimi ohjeen mukaan ja lisää tarvitsemasi kentät Value-alueelle.
Power BI muodostaa valituista kentistä pandas dataframen, jonka nimenä on dataset.
Tärkeää: Power BI poistaa duplikaatit eli rivit, joilla on täsmälleen samat arvot. Jos haluat säilyttää kaikki rivit, niin lisää Value-alueelle myös kenttä, jossa jokaisella rivillä on eri arvo (tässä esimerkissä nro).
Python script editor on valmiina koodia varten. Lisättävän koodin toimivuus kannattaa ehdottomasti testata ohjelmointiympäristössä, jossa yleensä koodaat. Virheiden metsästäminen ja korjaaminen on Power BI:ssä työlästä.
Seuraavassa olen kopioinut koodin Python script editoriin:
Koodin voi suortittaa editorin oikean yläkulman Run script -painikkeella:
Yllä näkyvästä olen lisäksi poistanut Power BI:n tuottaman otsikon.
Ongelmia desimaalipilkkujen kanssa
Pythonia voi käyttää datan noutamiseen valitsemalla Get data – Other – Python script – Connect. Tämän jälkeen pääset kirjoittamaan koodin datan avaamiseen:
Tämä kuitenkin johtaa ongelmiin Suomessa:
- Python käyttää aina desimaalierottimena pistettä.
- PowerBI puolestaan tunnistaa pisteitä sisältävän tiedon päivämäärätyyppiseksi.
Seurauksen huomaa tietoa noudettaessa:
Tästä voi toki jatkaa Power Query Editoriin, jossa voi kumota päivämääräksi muuntamisen, korvata pisteet pilkuilla ja antaa sen jälkeen Power BI:n tunnistaa tietotyyppi. Useimmissa tapauksissa kannattanee kuitenkin välttää datan avaamista Python scriptillä.
Power Query Editorissa voit halutessasi muuntaa ja siivota dataa Python scripteillä. Run Python Script -painike löytyy Transform-välilehdeltä.
Toisaalta Power Query Editor tarjoaa monipuoliset toiminnot datan muuntamiseen ja siivoamiseen ilman Python scriptejäkin.
Lisätietoa
https://docs.microsoft.com/fi-fi/power-bi/connect-data/desktop-python-visuals