Power BI:用Python自動執行數據處理任務

2020-12-25 讀芯術

全文共1521字,預計學習時長3分鐘

圖片來源:https://unsplash.com/@yancymin

很多數據分析愛好者都會使用Power BI構建Dashboard、可視化數據。

然而,在對複雜的Dashboard進行建立和改進時,總會通過不同的欄位和相應表格,不斷添加或刪除Widget。

經過多次更改後,數據結構會看起來很雜亂——原先幫助構建Dashboard的那些表格和列表變得混亂不堪。一番數據處理後,最終的Dashboard可以包含所有當前使用欄位。

不幸的是,在Power BI上實現Dashboard全預覽的唯一方法是,自行瀏覽所有Widget的數據,並手動寫下那些已用欄位。

從Power BI手動搜索Widget的後臺數據

但程式設計師都會努力避免不必要的手動操作,所以我們應該好好鑽研,尋找這方面的解決方案。別擔心,最後的解決方案出奇地簡單!

解構PBIX文件

整理Power BI而不直接使用的第一步是研究.PBIX文件。WinRAR等免費壓縮文件能夠解壓任何.PBIX文件。以上功能給用戶提供了一系列不同的文件格式和目錄選擇,為後續的分析和操控創造可能。

瀏覽解壓文件時,可以看到一個內含「layout」的「Report」的文件夾。這個文件夾包含了有關Dashboard的視覺結構的所有信息,比如:

每個Widget的大小和x/y坐標

已用欄位名稱

所有的設置和參數

標題

……以及其他海量信息

layout文件看起來由一串JSON、表單和詞庫共同構成。我們打算使用Python對所有數據欄位和已用Widget進行總結。

從文字編輯器裡打開layout

構建語法分析器

原本以為一個普通的JSON分析器可以解決問題,但不幸的是JSON內部都是嵌套結構,因此代碼都比設想的長一些,但整體上還是比較簡短。解碼和場景建構之後,得到了較為滿意的結果:分析器成功返回了每一個Widget對應的表格和欄位。

然後運用Pandas將以上數據概括到一個數據幀中,刪除了所有重複信息(例如,兩個Widget共用的信息)。這個步驟的結果以簡潔的數據幀呈現,涵蓋了在Dashboard中使用的所有數據:

Jupyter Notebook上的輸出數據幀

線上版本

好了,目前所有程序都能從layout文件上複製字符串,再粘貼到Jupyter Notebook上,從而藉助方程完美運行。儘管運行得相當順利,整個操作的用戶友好度不是很好,所以下一步就是把該方程轉化為一個實用工具。

繼續用Python的話,可以選擇用Flask構建一個網絡應用程式。

工具的線上版本

總的來說,這僅僅是將字符串當作輸入。運行方程,返回數據幀後,它將框架轉換為HTML表格,最終將HTML表格展示給用戶。該工具完全免費,沒有任何廣告。它有時候在Heroku網絡伺服器上運行速度會稍慢。

最後得到一個顯示了所有Dashboard裡使用過的獨有數據欄位

接下來做什麼?

儘管得到了令人滿意的結果,不過,研究才剛剛開始。還有足夠空間擴展腳本文件,探索解壓文件夾中的其他文件。.PBIX文件能帶來許多新的機會。比如說,可以簡單地對文件進行微調,重新壓縮文件然後用Power BI重新打開——似乎有點成效。這說明用戶可以使用Python腳本編輯Dashboard。

下一步需要做什麼?你可以考慮以下方面:

追蹤更改

自動生成報告

創建更廣泛的報告

……

留言 點讚 關注

我們一起分享AI學習與發展的乾貨

編譯組:夏伊凡、楊月

相關連結:

https://towardsdatascience.com/power-bi-how-i-started-using-python -to- automate- tasks-9f53e3e9ab47

如需轉載,請後臺留言,遵守轉載規範

相關焦點

  • Python開發:Win10創建定時任務執行Python腳本
    Python腳本,如果手動輸入執行執行,會產生頻繁的工作量,對於這種情況,在Win10環境下創建任務計劃程序:  Win10創建定時任務  電腦桌面→我的電腦→右鍵→管理  計算機管理→系統工具→任務計劃程序→創建基本任務
  • 如何選擇數據分析可視化工具?Excel,Tableau還是Power BI?
    因此,Excel文件通常用作Power BI和Tableau的數據源。 Tableau支持數百種數據連接器,包括在線分析處理(OLAP)和大數據(例如NoSQL,Hadoop)以及雲數據。
  • Python數據核對系列之2—power query VS pandas
    我們從數據-新建查詢-從文件裡選擇從工作簿或者從csv。然後加載我們的源文件。在選擇csv文件加載的時候,有時候會因為原始數據的某個欄位裡包含換行符而導致加載完的數據會出現錯行問題,導致你的數據格式設置會報錯。這個問題的解決方案我們之前已經發過了,大家再遇到的話可以再查看一下。power query加載csv錯行?
  • 如何選擇數據分析可視化工具?Excel, Tableau還是Power BI?
    Tableau支持數百種數據連接器,包括在線分析處理(OLAP)和大數據(例如NoSQL,Hadoop)以及雲數據。當用戶從多個來源添加數據時,Tableau和Power BI會自動關聯。但Power BI連接有限的數據源,同時會在每月更新中增加其數據源連接器。2. 數據發掘數據發掘是通過可視化數據或應用高級分析來檢測數據中的模式和特點的過程。使用Excel需要充分了解數據特點才能找到關鍵的信息。
  • python定時獲取天氣數據並自動發送到郵箱
    自動發送郵件,python幾行代碼來搞定!我們說到如何用python來實現自動發送郵件。這篇文章我們就來談談如何獲取天氣數據,並定時將天氣數據發送到指定的郵箱中?函數tick就是我們每3秒要執行的方法。這裡用BlockingScheduler調度器來生成一個調度器對象,並將要執行的函數tick與間隔執行時間添加到調度器對象當中。回歸到我們主題上來,按照剛剛這個例子,我們只需將tick函數替換為我們自己的發送郵件的函數即可,並根據自己的需求設置時間。
  • 手把手教你學會Power BI排名的計算
    昨天看了PowerBI星球中的關於RANKX 排名的文章,心有觸動,遂著手整理基礎數據(虛擬的銷售數據)練習,話不多說,馬上開始。第一步:整理數據本數據是虛擬某公司銷售人員銷售不同類型產品的銷售金額,為了驗證自己對RANKX函數的理解,數據上趨於簡單。數據截圖如下:
  • 自動生成pandas代碼,python數據處理神器
    今天我要說的不是怎麼寫代碼,而是介紹一款我親手打造的小工具,它作為探索數據的工具,你不僅不需要寫任何的代碼,它最終還會自動生成pandas代碼。python 上其實有一些庫或者工具,是基於pandas做的界面操作,而我的工具有兩大特性可以秒殺他們。現在來簡單看看所見即所得,人工操作轉代碼這個工具的核心功能,就是自動生成代碼!!
  • 將Python集成到Power BI中:充分利用兩者
    如果您是商務智能(BI)專業人員,並且想要執行某些數據科學任務,則必須依靠數據科學團隊。另一方面,Python開發人員需要依賴BI團隊以可呈現的格式(也許在儀錶板中)展示其分析。但是,Power BI擺脫了這種相互依賴性,因為您現在可以在集成環境中運行Python。新時代的數據科學家必須了解解決複雜業務問題的完整流程。
  • Python數學建模技巧之pandas數據處理
    最常見的庫有進行矩陣運算的Numpy、進行數據處理的pandas、進行科學計算的Scipy、進行圖形繪製及科學可視化的matplotlib、進行符號計算的Sympy以及方便進行機器學習任務的Sklearn。由於今年美賽官方公告中稱,將會提前在賽題公布之前就提供下載C題數據集的方式。
  • 還在用excel?太落伍了,現在都用Python和Jupyter處理數據了
    你可以用它分析價格及其他tick數據、評估投資組合、計算風險價值、進行事後檢等等。你熟練掌握數據透視表、Excel公式、圖表甚至是VBA和PowerQuery。這使你可以快速執行一個方案。但是在你意識到之前,電子表就會擴張成為幾十個結構複雜的表格和混亂無序的VBA代碼時,讀懂和維護這些表格將變得極其困難。
  • 如何用 Python 執行單行命令
    一般來說,面對日常處理的一些小任務,直接用 sed,grep 之類的就可以搞定,更複雜一點的就會考慮 awk 或者用一些現成的輪子,要是 awk
  • vscode寫Python數據處理分析代碼,由安裝配置到cell交互模式
    vs code 知道你當前打開了一個 Python 文件,他估計你是要輸入 Python 代碼,他會識別你電腦的上那些 python.exe (不知道我說啥,請回看本系列上一節文章)在左下角,你會看到他默認選擇了其中一個 python 環境滑鼠點一下左下角,還可以選擇其他的Python環境,說白了,就是用不同的python.exe來執行你的代碼:可以看到,我有7個 Python
  • 高效使用Power BI的15條建議
    PowerBI是一個強大的工具,它的大數據處理能力、豐富的可視化對象、便捷的交互體驗正在改變越來越多的人查看數據的方式。但同時也有很多人抱怨PowerBI運行速度太慢:打開慢、刷新慢、響應慢,你在使用過程中是不是也有此體會呢?
  • 用Spark計算引擎執行FATE聯邦學習任務
    使用分布式計算引擎的意義在 FATE 中一個比較重要的組件是 "FATE Flow",它負責對用戶任務的管理和調度。如官方文檔所示,"FATE Flow" 的工作模式有兩種,分別為單機 (standalone) 和集群(cluster) 模式。單機模式中,數據的存儲以及計算都在 "FATE Flow" 本地執行因此無法有效擴展,所以單機模式主要用於學習以及測試。
  • Python數據類型串講(上)
    在計算機科學中,數據是指所有能輸入到計算機並被電腦程式處理的符號的介質的總稱,是用於輸入電子計算機進行處理,具有一定意義的數字字母、符號和模擬量等的統稱。2、數據類型的作用python的標準數據類型共有六種,為什麼要將數據分為不同的類型呢?
  • 如何快速學會Python處理數據?(5000字走心總結)
    假如你有明確的需求,比如:我要處理很多excel文件,我想寫一個腳本幫我自動處理我每天都在手動審核數據質量,我想寫一個腳本代替我的日常工作當你面對這樣一些需求時,你還無法求助他人幫忙時,這個時候,你就必須學習Python來幫你處理了。
  • 【校園雜工】Python腳本處理檔案圖片之完結篇:Python處理Excel
    在一線有很多不必要或者重複的工作,為了把時間用到更有用的地方,我們可以編寫程序實現任務的自動化。
  • Python視頻教程網課編程零基礎入門數據分析網絡爬蟲全套Python...
    因篇幅有限,以下展示的只是課程裡部分內容如對python課程有更多疑問 請諮詢客服 1零基礎入門全能班 01 –python簡介 02 第一個程序 03-python執行方式和pycharm設置 04-程序的注釋和算術運算符 05 程序執行原理 06變量的使用以及類型 07
  • 職場必學的Python技能:自動處理郵件,工作效率翻倍
    如果能夠輕鬆發送、撰寫並自動處理電子郵件。必然能夠極大的提高工作效率。比如定時收集指定網站的新聞,提高郵件訂單的轉化率,定時將手動處理的報告發送給領導等等。Python由於存在大量「for human」的第三方庫,不光成為了AI時代的代表語言,也成為了極低入門門檻的語言。
  • python數據分析專題 (7):python數據分析模塊
    也就是這些python的擴展包讓python可以做數據分析,主要包括numpy,scipy,pandas,matplotlib,scikit-learn等等諸多強大的模塊,在結合上ipython交互工具 ,以及python強大的爬蟲數據獲取能力,字符串處理能力,讓python成為完整的數據分析工具。