数据专业人员经常做的工作之一是将多个数据集追加到一起。无论这些数据集是包含在一个 Excel 工作簿中,还是分布在多个文件中,问题是它们需要被纵向【追加】到一个表中。
作为一名数据专家,日常工作很可能都是在使用数据之前对其进行导入、操作和转换。可悲的是,许多人都没有机会接触到拥有精心策划过的数据的大数据库。相反,被不断地喂食 “TXT” 或 “CSV” 文件,并且在开始分析之前,必须经历将它们导入到 Excel 或 Power BI 解决方案的过程。对用户来说,重要的商业信息往往是以以下格式存储或发送给用户的。
本章专门讨论 Power Query 新手会面临的两个常见问题:理解 Power Query 是基于数据类型(而不是数据格式)的工具,以及如何理解和处理 Power Query 查询中的错误。
在Power Query及Power Pivot系列课程中,对大家日常学习和使用过程中的较多问题和可能遇到的坑有诸多讲解,比如,PQ系列课一开始就有新手经常遇到问题提示,让大家有一定的印象(也可能很多朋友直接跳过去了):
在Excel中,我们可以通过先在单元格中编写公式,然后向下拖动列来创建计算列。在PowerQuery中,还可以添加“自定义列”并输入公式。在Python中,我们创建计算列的方式与PQ中非常相似,创建一列,计算将应用于这整个列,而不是像Excel中的“下拉”方法那样逐行进行。要创建计算列,步骤一般是:先创建列,然后为其指定计算。
导语:Power Query 是可证明的,在这个星球上性价比最高的数据处理工具,如果你的工作中需要处理数据,注意,是处理,不是分析,那么此工具必须掌握。对此,90%的鼠标点击,5%的猜测以及5%的公式能力足以。本文来自《Master Your Data》的第十章,非常重要,必须掌握。
很多时候,数据里面会带一些空的内容,这时候,在做数据筛选的时候就要小心,因为空的内容在不同的情况下,它的处理(或计算)逻辑可能不太一样。
那么,该怎么替换掉呢?除了复制来替换之外,其实用函数也非常简单,在Excel里直接加一列,公式如下:
回想起自己对Power Query里(x)的体悟过程,可能针对一个知识点“反复”地进行一些类似的练习,会非常有利于增加对这个知识点的理解。
小勤:这个数据明明是个数值啊,为什么用函数ISTEXT判断的时候,结果还是TRUE?也就是说这个还是文本?
Power Query 的设计目的就是在业务分析师使用数据之前将数据加载到目标区域的表中。收集数据并将其重塑为所需的格式,Power Query 处理数据的基本流程,如图 1-1 所示。
大海:如果只要干一次,那很简单,直接在Excel里先将左括号“(”替换为逗号“,”,将右括号替换为空,然后直接按逗号拆分即可。操作如下动画所示:
其实我们仔细看一下场景1和场景2,它们之间是个逆过程,场景1是从Python获取数据传递到Power BI,而场景2是Power BI或者Power Query获取了数据,用python来处理。
把源数据汇总后,为了满足质量要求的数据,需要做数据清洗。PQ就好像变形金刚(英文版PowerBI的转换选项卡恰好也叫“Transform”),在转换选项卡中,集成了各类变形功能。使用频率最高的一般有12个小招: 首行作标题、修改数据类型、删除(重复、错误、空项目)、拆分、提取、合并、替换、填充、移动、排序、格式、逆透视。
前面我们介绍了Power BI 是什么,今天介绍如何用Power BI 获取数据。
Power Query 可以在 Power BI 或 Excel 中使用,很多人一开始就在想到底用哪个平台来使用 Power Query,其实不必为此纠结,总有一天会意识到需要把查询复制到一个另一个中的。这有可能是将查询从一个 Excel 工作簿中复制到另一个 Excel 工作簿中,从 Excel 复制到 Power BI,或者从 Power BI 复制到 Excel。在本章中,将探讨将查询从一个工具快速移植到另一个工具的方法。请记住,虽然本书的重点是 Excel 和 Power BI,但这些步骤对于任何承载 Power Query 的工具来说几乎是相同的,即使它包含在其他微软产品或服务中。
毫无疑问,对于开始就以表格形式处理数据的人来说,最简单的方法之一是打开 Excel 并开始在工作表中记录数据。虽然 Excel 并不是真正打算充当数据库的角色,但这正是实际发生的事情,因此 Power Query 将 Excel 文件和数据视为有效数据源。
分析师面临的普遍问题是,无论从哪里获得数据,大部分情况都是一种不能立即使用的状态。因此,不仅需要时间把数据加载到文件中,还得花更多的时间来清洗它,改变它的结构,以便后续做分析的时候能更好的使用这个数据。
👆点击“博文视点Broadview”,获取更多书讯 传统的Excel单表虽然可以有100万行数据的承载量,但是在实际分析时,20万行的数据就已经让传统的Excel非常吃力了。 但是,如果使用Excel中的Power Query和Power Pivot商务智能组件,即使是上百万行数据,也可以在短时间内快速完成处理和分析。 Power Query在Excel和Power BI Desktop中都是内置组件,并且管理界面和知识体系保持了高度一致。 其实,Power BI中的Power Query和Power P
小勤:这个我知道啊。但是这个表的列是动态的,下次多了一列这个方法就不行了,又得重新搞一遍。
使用 Power Query 的一个非常有趣的场景是,可以利用它从 Web 上抓取与业务相关的数据,并用它来丰富自己的公司数据。数据通常以两种不同的方式之一存储在 Web 上。
这个问题本身很简单,熟练合并查询操作的朋友一定都知道,直接合并查询,选择“左反(仅限第一个中的行”即可:
合并来自多个文件数据的传统方法是极其繁琐和容易出错的。每个文件都需要经历导入、转换、复制和粘贴的过程。根据转换数据量的大小和复杂程度、文件的数量以及解决方案运行的时长,这些问题可能形成可怕的积累效应。
Power BI 模型的真正强大之处在于通过使用 DAX 语言进行计算。虽然许多 Power BI 用户专注于模型并试着完全避开使用 DAX,但是除了最简单的基础聚合运算以外,其他所有的计算都需要通过 DAX 来实现。而且,你迟早会在 Power BI 中遇到更复杂的计算需求。根据我们的经验,典型的情况会是:你精心制作的一个 Power BI 报告初稿,会引出有关这些数据的越来越多、越来越复杂的问题。
导语:数据对比是日常工作中经常要做的事情,有时只是简单的1列,有时则是很多列,但无论要对比的数据有多少列,逆透视下来后,不就是都是一列了吗?当然,因为列多了,要处理的细节和步骤也自然会多一些。
前文说到可以用LEFT和RIGHT函数来将姓名中间字给换成“*”,步骤其实还比较复杂。
相比Power BI,Power Query和Power Pivot在行列层级运行计算,Excel一直以来主要还是在单元格层面上的。Excel里,每行每列所有单元格进行相同逻辑的计算时,常规的做法是在第一个单元格填写公式,然后向下向右填充每一个单元格。如下图所示,计算各洲折后价的表格,蓝色区域所有单元格都要填入一个公式。
所有要进行操作的文件下载链接: https://pan.baidu.com/s/10VtUZw8G-Ly-r4VypntjiA 密码: y5qu 下载成功后,整个文件夹如下图所示。
👆点击“博文视点Broadview”,获取更多书讯 数据格式不规范的可能性有多种多样,但高频发生的错误主要有日期格式和数字格式错误,或者是单元格中存在多余空格,导致无法精确统计和计算(见图1)。 图1 不管是财务人员还是领导,看到如图1所示的表格时一定处在崩溃的边缘。想要计算总额,输入函数后一看,怎么数据对不上?想直接定位查看某位员工的详细数据,结果 Excel 提示“查无此人”(见图2)。 图2 领导看了直摇头叹息:好好的一个 Excel 表格,【运算】和【查找】功能统统用不上,那这份表格的意义是什
1.可视化对象导出CSV格式限制3万行数据,这对于数据量动辄上百万甚至上亿的表来说是不可接受的;
小勤:前面讲到一个多列数据乘上一个系数的问题,《将多列的数据都乘上一个系数,Power Query里怎么操作比较简单?》,里面采用了逆透视成一列数据然后再透视回去的方法,操作比较简单,但是……
10、将步骤5生成的文件的ROUTEID列内容复制到notepad++,不要表头,文件后缀修改为mid
也就是说,“得益于”pq强大的引擎,Text.NewGuid()只运行了一次,的确非常节省算力。
我们在使用图片识别文字时常常会出现识别出来的文字是这样的,如果识别出来是这样的东西,它们的数据图片中是4列的,识别变成文字后是一列的:
大海:你这个当然会出错了。首先说啊,像这个表里,最好将这种附加的信息和日期分开,单独成一列。
假如说,这个文本里就只有空格(1个或多个),添加到Power Pivot数据模型时,空格会被删掉,问题是,删掉空格后的内容,到底是一个空值(blank)呢?还是一个空的文本("")?
编写 DAX 公式时要掌握的核心概念是上下文。DAX 作为一门动态数据分析语言,与 Excel 函数、SQL 查询 和 Power Query 脚本有着根本不同的原因就在于上下文的概念。以上所述的所有其他语言的公式只会在数据发生变化时才会返回不同的结果(除了一些例外情况,例如使用参数时),但是单个 DAX 公式就可以同时提供多个不同的结果,具体取决于您使用它的位置和方式,也就是:上下文。
在Power Query里,如果遇到空值(null),就要注意对其进行操作(对比判断、筛选、计算等)时可能出现的特殊情形。
忽略指定过滤器后进行计算。 之前这个使用All函数生成忽略学科教师平均分的度量值,如果用AllExpect函数则可以写成
在数据库的各种优化中,加索引是一种特别常见而立竿见影的优化方法。当然,在做某些事情时,也需要增加索引。
进入PowBI,弹出的如下页面也可以直接关闭,在Power BI中想要导入数据需要通过Power Query 编辑器,Power Query 主要用来清洗和整理数据。
小勤:大海,在PowerQuery里面能不能对一列数求和、算个数、求最大、最小值之类的啊?
前面的文章里,讲了each _ 的背后即为(x)=>x的变量调用的简单写法,除此之外,在Power Query里,还有一种针对(x)=>f(x)的写法大家要先了解,情况虽然比较简单,但是,这是后面深入了解复杂函数调用机制的一个重要基础。
在深入到 Power Query 数据转换的广阔世界之前,最好先确保为将来的成功做好准备。从实际来说,往往一开始的项目或案例都很小,但随着时间的推移,最终会变得越来越复杂。本章描述的方法将有助于确保随着问题的规模变大和复杂性增加,也可以应对。
前几天有星友分享过一个重点城市GDP排行榜图表,图表中体现了GDP排名、排名升降状况、GDP绝对值以及增长率。这个图表对同一数据进行了多角度比较,我认为比较实用,在Power BI中进行了两种形式的模拟。
与 Excel 和 DAX 语言具有IFERROR函数的方式类似,Power Query具有自己的语法来测试和捕获错误。
需要注意的是,通过控制台进行查询的返回结果集被限制为默认 100 条记录,这是在 Smart query limit 特性中进行配置的。
上篇推文《从【中国式复杂报表】谈设计逻辑》中我们提到,中国式复杂报表作为高度复杂化的产物,不适合进一步用作数据源。但实际工作中,难免遇到以类似复杂表格作为数据源的情况。比如从国家统计局下载数据的表单,就是一个初级版的复杂报表。我们可以看到,表头分了两个层级,且子层级含有合计数。列方向上也有合计(全国)。本文将来一步一步介绍,如何清洗复杂报表数据源。
从事采购及生产运营管理的同学对物料表应该都不陌生。物料表英文为Bill Of Material, 简称BOM。简单说,物料表就是产品原材料清单。这个清单可以是单层的或多层的,因为每个“原”材料也会有它相应的下级物料,以及下下级物料…直到最终分解到最基本的元素,如阳光,空气,铁矿石等等……
领取专属 10元无门槛券
手把手带您无忧上云