Avainsana-arkisto: Power BI Desktop

Python ja Power BI yhteiskäyttö

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:

powerbi1

Visualisointi Pythonilla

Napsauta Visualizations-paneelissa Py-kuvaketta.

powerbi2

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.

powerbi3

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:

powerbi4

Koodin voi suortittaa editorin oikean yläkulman Run script -painikkeella:

powerbi5

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:

powerbi6

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:

powerbi7

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ä.

powerbi8

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