当前位置:文档之家› Power BI 数据分析与可视化-PowerBI数据分析与可视化-M语言数据建模与处理(2)

Power BI 数据分析与可视化-PowerBI数据分析与可视化-M语言数据建模与处理(2)

M语言数据预处理

2021/2/24

1归约数据

目录

转换数据2

1. 规范化

?将字段按比例绽放,使之落入一个特定的区间,如[-1,1]或[0,1]之间。常用的规范化有最小-最大值规范化。假定某字段的最小值为min,最大值为max,最小-最大值规范化区域为[new_min, new_max]。那么最小-最大值规范化下 的规范化值 如(式 3-1)所示。

(式 3-1)

?例如,某字段规范化前取值区间为[-100,100],规范化后取值区间为[0,1],假设该字段某字段值为58,那么规范化后取值为0.79,如(式 3-2)所示。

(式 3-2)

2. 逆透视列

?逆透视列是Excel和Power Query中处理数据行列变换的一种特有操作。它将来自单行(单个记录)中多个列的值扩展为单个列中具有同样值的多个记录,使得数据能够在合适数据存储与合适数据分析的形式之间自由变换。例如为了方便显示数据,可能会出现如下表所示的按销量区域排列的产品销量表,这个表的第1列的列名是抽象概念的产品名称,第2~4列的列名是具体的区域名称,表中第2行第2列的数值型数据3654196指的是在广东省坚果的销量,其它数值型数据如此类推。

产品名称广东省北京市上海市

坚果365419625433233221557

肉干162654012543861123456

鸭脖139324411875541098774

花茶216816919676441899907

?现在使用逆透视列功能,将合适数据分析的数据表变换成如下表5所示的合适数据存储的产品销量表。

2. 逆透视列

产品名称

区域名称销售额坚果广东省3654196坚果北京市2543323坚果上海市3221557肉干广东省1626540肉干北京市1254386肉干上海市1123456鸭脖广东省1393244鸭脖北京市1187554鸭脖上海市1098774花茶广东省2168169花茶

北京市

1967644

?Power Query中,按数据类型进行数据提取可以使用Text.Remove函数,该函数的表达式如下。

Text.Remove(text,removeChars)

?该格式表示:返回在“text”参数中删除了“removeChars”参数的所有字符后的新字符串。

“removeChars”参数可以是独立的字段,也可以指定列表字符集合。Power Query常用字符的参数如下表 所示。

参数概述

{1..10}获取的结果是从1到10的list列表,即{1,2,3,4,5,6,7,8,9,10}

{“0”..“9”}获取0到9的数字文本

{“ ”..“~”}获取空格到“~”等特殊字符列表

{“A”..“Z”}从A到Z的字符列表

{“a”..“z”}从a到z的字符列表

{“A“..“Z”, “a”..“z”}所有大小写英文字母

{“一”..“龢”}所有汉字字符列表

{“一”..“龢”,“0”..“9”}所有汉字字符列表和数字

?参数表中的参数可以自由组合,字母、汉字等字符列表中间用“..”连接,列表与列表之间或列表与某具体参数之间用英文状态下的逗号“,”隔开。

?在如下表所示的数据经过数据变换处理,最终数据表的效果如下图所示,具体实现步骤如下。

产品归属产品信息

坚果炭烧腰果18.5元,盐焗腰果19元,纸皮核桃23元

肉干猪肉干11.5元,牛肉干15元

鸭脖微辣鸭脖9元,香辣鸭脖9元

花茶大麦茶20元,枸杞茶20元

?(1) 获取数据。在“开始”选项卡的“外部数据”组中,依次单击“获取数据”“Excel”命令,导入“商品信息表.xlsx”,弹出“导航器”对话框后,勾选“商品信息表.xlsx”中的“产品信息”,如下图所示,单击“编辑”按钮。

?(2) 设置标题。这时“产品信息表”的标题并没有自动辨认,如左下图所示。在“开始”选项卡的“转换”组中,单击“将第一行用作标题”按钮,得到的效果如右下图所示。

?(3) 拆分“产品信息”字段。右键单击“产品信息”字段,依次选择“拆分列”“按分隔符”

命令,弹出“按分隔符拆分列”对话框后,“选择或输入分隔符”的第一行自动设为“--自定义--”,第二行自动设为“,”。这时勾选“每次出现分隔符时”单选框,如左下图所示,单击“确定”按钮,得到的效果如右下图所示。

?(4) 逆透视操作,转换表格。右键单击“产品归属”字段,选择“逆透视其它列”命令,并删除“属性”字段,得到的效果如下图所示。

?(5) 设置转换后表格的新字段,具体步骤如下。

?①设置“价格”字段。选中“值”字段,在“添加列”选项卡的“常规”组中,单击“自定义列”命令,弹出“自定义列”对话框后,将“新列名”设为“价格”,“自定义列公式”设为“=Text.Re ([值],{”一“..”龢“,” “})”,表示将“值”字段中的文字与空格去掉,如左下图所示,单击“确定”按钮,得到的效果如右下图所示。

?②设置“产品名称”字段。选中“值”字段,在“添加列”选项卡的“常规”组中,单击“自定义列”命令,弹出“自定义列”对话框后,将“新列名”设为“产品名称”,“自定义列公式”设为“=T ([值],{”0“..”9“,”元“})”(注意:0到9在“值”字段中是文本型,所以需要写成

“0”..“9”),表示将“值”字段中的数字文本和“元”字去掉,如左下图所示,单击“确定”

按钮,得到的效果如右下图所示。

?(6) 删除“值”字段,调换“产品名称”和“价格”字段的位置,Power Query编辑器如下图所示。

1归约数据

目录

转换数据2

1. 字段归约

?字段归约又称为维归约、属性归约或属性子集选择,它通过删除不相关的字段(维度)减少数据量。

通常使用字段选择的方法有粗糙集和决策树分类。

2. 记录归约

?记录归约又称为数据取样,是指通过用少量记录代表或替换原有记录来减小数据集的数据预处理方法。记录归约有抽样和数据泛化两种常用的方法。

?抽样(Sampling)是用数据的较小随机样本表示总体数据。对于含有N个记录的数据集D的样本,抽样选择的主要方法如下。

?简单随机选择n(n < N)个样本,样本抽样后不回放。

?简单随机选择n(n < N)个样本,样本抽样后回放,可能再次被抽取。

?聚类抽样:D中元组被分为M个互不相交的聚类中,则可在其中的m(m < M)个聚类上进行简单随机选择。

2. 记录归约

?分层抽样:若D被划分成互不相交的部分(称作“层”),则通过对每一层的简单随机选样就可以得到D的分层选样。例如对客户的年龄进行分层,分为“年轻”“中年”和“老年”这3层,在这3层中分别随机抽出几名顾客代表该层的数据进行分析。

?数据泛化(Data Generalization)是将任务相关的数据集从较低的概念层抽象到较高的概念层的一个过程。

?字段需要数据泛化的原因是有概念分层且取值较多。某些字段的取值较多,不利于数据分析;另一方面,不是取值很多的字段都需要泛化,若某字段没有概念分层,则该字段不需要泛化,如客户ID 字段。

2. 记录归约

?概念分层意味着某个概念可以有不同程度的分类,以 “广东省广州市天河区”地址为例,这个地址的省级层次是“广东省”,市级层次是“广州市”,区级层次是“天河区”,越往概念层次高(这里的概念层次高是指行政级别高)的方向转换,地址的取值范围就越小。但是需要注意,不是泛化到越高的概念层次就越好,因为可能此时的取值范围太小反而不好分析。综上所述,进行数据泛化要符合两个条件:字段取值很多和字段有概念分层。

?数据泛化有两个主要作用:1、将研究对象的细节信息隐藏,保护隐私,用于数据脱敏;2、发现不同概念层次或高层概念上的规则。

2. 记录归约

?对数据集进行泛化前,需要对其中所有的字段进行分析。以下表为例,对客户信息表中的每个字段泛化分析如下。

客户ID性别客户地址出生日期

B0000001男广东省广州市天河区人民西路幸福小区1栋

1单元201房1985/3/13

B0000002男江苏省南京市玄武区中山大道颐景园山庄3

1976/8/19

栋2单元1202房

B0000003女安徽省蚌埠市五河县长安大道紫东花园2栋

4单元305房1981/11/17

相关主题
文本预览
相关文档 最新文档