全文共 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学习与发展的干货
欢迎关注全平台AI垂类自媒体 “读芯术”
(添加小编微信:dxsxbb,加入读者圈,一起讨论最新鲜的人工智能科技哦~)