JSON|Power BI:用Python自动执行数据处理任务

全文共1521字 , 预计学习时长3分钟
JSON|Power BI:用Python自动执行数据处理任务文章插图
图片来源:@yancymin
很多数据分析爱好者都会使用Power BI构建Dashboard、可视化数据 。
然而 , 在对复杂的Dashboard进行建立和改进时 , 总会通过不同的字段和相应表格 , 不断添加或删除Widget 。
经过多次更改后 , 数据结构会看起来很杂乱——原先帮助构建Dashboard的那些表格和列表变得混乱不堪 。 一番数据处理后 , 最终的Dashboard可以包含所有当前使用字段 。
不幸的是 , 在Power BI上实现Dashboard全预览的唯一方法是 , 自行浏览所有Widget的数据 , 并手动写下那些已用字段 。
JSON|Power BI:用Python自动执行数据处理任务文章插图
从Power BI手动搜索Widget的后台数据
但程序员都会努力避免不必要的手动操作 , 所以我们应该好好钻研 , 寻找这方面的解决方案 。 别担心 , 最后的解决方案出奇地简单!
解构PBIX文件
整理Power BI而不直接使用的第一步是研究.PBIX文件 。 WinRAR等免费压缩文件能够解压任何.PBIX文件 。 以上功能给用户提供了一系列不同的文件格式和目录选择 , 为后续的分析和操控创造可能 。
浏览解压文件时 , 可以看到一个内含“layout”的“Report”的文件夹 。 这个文件夹包含了有关Dashboard的视觉结构的所有信息 , 比如:
? 每个Widget的大小和x/y坐标
? 已用字段名称
? 所有的设置和参数
? 标题
? ……以及其他海量信息
layout文件看起来由一串JSON、表单和词库共同构成 。 我们打算使用Python对所有数据字段和已用Widget进行总结 。
JSON|Power BI:用Python自动执行数据处理任务文章插图
从文字编辑器里打开layout
构建语法分析器
原本以为一个普通的JSON分析器可以解决问题 , 但不幸的是JSON内部都是嵌套结构 , 因此代码都比设想的长一些 , 但整体上还是比较简短 。 解码和场景建构之后 , 得到了较为满意的结果:分析器成功返回了每一个Widget对应的表格和字段 。
然后运用Pandas将以上数据概括到一个数据帧中 , 删除了所有重复信息(例如 , 两个Widget共用的信息) 。 这个步骤的结果以简洁的数据帧呈现 , 涵盖了在Dashboard中使用的所有数据:
JSON|Power BI:用Python自动执行数据处理任务文章插图
Jupyter Notebook上的输出数据帧
线上版本
好了 , 目前所有程序都能从layout文件上复制字符串 , 再粘贴到Jupyter Notebook上 , 从而借助方程完美运行 。 尽管运行得相当顺利 , 整个操作的用户友好度不是很好 , 所以下一步就是把该方程转化为一个实用工具 。
继续用Python的话 , 可以选择用Flask构建一个网络应用程序 。
JSON|Power BI:用Python自动执行数据处理任务文章插图
工具的线上版本
总的来说 , 这仅仅是将字符串当作输入 。 运行方程 , 返回数据帧后 , 它将框架转换为HTML表格 , 最终将HTML表格展示给用户 。 该工具完全免费 , 没有任何广告 。 它有时候在Heroku网络服务器上运行速度会稍慢 。
JSON|Power BI:用Python自动执行数据处理任务文章插图
最后得到一个显示了所有Dashboard里使用过的独有数据字段
接下来做什么?
尽管得到了令人满意的结果 , 不过 , 研究才刚刚开始 。 还有足够空间扩展脚本文件 , 探索解压文件夹中的其他文件 。 .PBIX文件能带来许多新的机会 。 比如说 , 可以简单地对文件进行微调 , 重新压缩文件然后用Power BI重新打开——似乎有点成效 。 这说明用户可以使用Python脚本编辑Dashboard 。
下一步需要做什么?你可以考虑以下方面:
? 追踪更改
? 自动生成报告
? 创建更广泛的报告
……
JSON|Power BI:用Python自动执行数据处理任务文章插图
留言 点赞 关注
我们一起分享AI学习与发展的干货
编译组:夏伊凡、杨月
相关链接:
-to- automate- tasks-9f53e3e9ab47
【JSON|Power BI:用Python自动执行数据处理任务】如需转载 , 请后台留言 , 遵守转载规范