#Powerquery 数据结构基础 一维数据与二维数据
本文参考了采悟老师的文章,推荐大家看原文,本文为笔记随笔
https://mp.weixin.qq.com/s?__biz=MzA4MzQwMjY4MA==&mid=2484068871&idx=1&sn=4ab596602ed0a4c851755673d8fcf37a&chksm=8e0c48d0b97bc1c6e8edc0d31110b669c87740e55601fce30e498c9801af972ca1f366eb7ab9&scene=21#wechat_redirect
在数据分析中,一维数据更适合用来做数据分析,一维数据的数据源,更有利于直接使用或者加入筛选。一维数据可以直接参与数据建模,构建表格模型关系。
一维数据是数据整理的一种思维
那么什么是一维数据呢?这里引用采大文章的截图。

1:一维数据和二维数据的区别:
一维数据优势在于,一维表的每一列都是一个独立的维度,列名或者字段名就是数据分析的基础,比如利用列名与其他表建立关系;POWERBI中编写DAX时直接使用列名;数据可视化时直接把字段拖入到某个属性框中等。
在powerbi中,用表格函数例如values函数,直接来构建维度表。
= values('销售表'[品名])
就可以直接提取销售表中的不重复的品名,这个返回表就可以直接作为维度表,加入数据模型。所以一维数据用于构建数据源更多一些。
二维数据优势在于,可以更为高效的展示数据,用更少的空间去展示尽可能更多的数据,所以二维数据用于数据展示更多一些。
1.1 错误的表展示(非一维数据),多个sheet页,这种数据源未在同一表格,后期需要分析时,往往需要耗费大量时间,去进行数据合并操作,浪费时间

1.2 错误的表展示(非一维数据),合并单元格,合并单元格同一破坏了数据一列是一个维度的原则,对列式的数据分析不友好,所以同样不建议数据源表有任何格式的合并单元格。

1.3 按某个类别新增列,下表中,办公用品、电费、水费应该合并分列至支出,这三列具有同一的“支出”属性。所以应该转化为同一列。

2:一维数据和二维数据如何转化
2.1:一维数据转化二维数据
这个在平时工作中,我们用到的地方很多,例如excel中的数据透视表,powerquery中的透视,sql中的gruopby,均是分组汇总数据用以展示,本质就是一维数据转为二维数据,展示数据
2.2:二维数据转化一维数据
举例:原表二维表

转化为一维表,这里用powerquery做演示
第一步:选择数据源区域,选择数据选项卡,选择来自表格区域

第二步:进入pq界面

第三步:找到转化选项卡,找到逆透视列,这一步我们在前面已经知道了,日期、经办人、款类别均为一维的标准数据,而后面的办公用品、电费、水费均为支出是需要合并为一列的。
所以,选择日期、经办人、款类别这三列,再选择逆透视其他列,来进行合并


第四步:办公用品、电费、水费,这三列已经合并为一列了,而他们的值也对应展开了,现在这个表已经转化为了一个标准的一维表了。

以上就是利用powerquery进行二维数据转化一维数据的一个案例,当然数据源规范从一开始做起,除了部分我们无法控制的数据源,我们自己生产或者加工的数据源,从一开始
就保证一维的数据结构,对我们后期的数据建模、数据分析项目都有很大的帮助。
总结:上面我们讲了一维数据、二维数据、两者的相互转化以及各自的优劣,最后用pq跟大家做了一个案例演示。有实际不同的业务可以灵活选择合适的转化方式。
我是simone,期待下次的分享。
#Powerquery 数据结构基础 一维数据与二维数据的更多相关文章
- 从txt文件中读取数据放在二维数组中
1.我D盘中的test.txt文件内的内容是这样的,也是随机产生的二维数组 /test.txt/ 5.440000 3.4500006.610000 6.0400008.900000 3.030000 ...
- 深度学习原理与框架-神经网络-线性回归与神经网络的效果对比 1.np.c_[将数据进行合并] 2.np.linspace(将数据拆成n等分) 3.np.meshgrid(将一维数据表示为二维的维度) 4.plt.contourf(画出等高线图,画算法边界)
1. np.c[a, b] 将列表或者数据进行合并,我们也可以使用np.concatenate 参数说明:a和b表示输入的列表数据 2.np.linspace(0, 1, N) # 将0和1之间的数 ...
- 妙用Excel数据透视表和透视图向导,将二维数据转换为一维数据
项目中,每年都会有各种经销商的各种产品目标数据导入,经销商和产品过多,手工操作过于单调和复杂.那有没有一种方式可以将复杂的二维数据转换为一维数据呢? 有,强大的Excel就支持此功能. 常用Excel ...
- C# 数组、一维数组、二维数组、多维数组、锯齿数组
C# 数组.一维数组.二维数组.多维数组.锯齿数组 一.数组: 如果需要使用同一类型的对象,就可以使用数组,数组是一种数据结构,它可以包含同一类型的多个元素.它的长度是固定的,如长度未知的情况下,请 ...
- ZXing拍摄代码扫描之后以区分一维码、二维码、其他代码
我怎么有二维码没有联系,最近遇到一个问题,,如何推断条码扫描到一维代码或者二维代码,辛苦了一个下午下班后自己,加上网上跟踪信息. 总结出两种方式能够解决该问题(推荐採用另外一种方式): 1.改动源代码 ...
- TensorflowTutorial_二维数据构造简单CNN
使用二维数据构造简单卷积神经网络 觉得有用的话,欢迎一起讨论相互学习~Follow Me 图像和一些时序数据集都可以用二维数据的形式表现,我们此次使用随机分布的二位数据构造一个简单的CNN-网络卷积- ...
- 卷积神经网络(CNN)之一维卷积、二维卷积、三维卷积详解
作者:szx_spark 由于计算机视觉的大红大紫,二维卷积的用处范围最广.因此本文首先介绍二维卷积,之后再介绍一维卷积与三维卷积的具体流程,并描述其各自的具体应用. 1. 二维卷积 图中的输入的数据 ...
- Excel:一维表和二维表 互转
一.一维表转二维表 数据源: 一份流水账式的值班表,为了便于打印张贴,现在需要使其变成这样的样式: 也就是从一维表变成传说中的二维表. 1.新建查询 依次单击[数据]→[新建查询] →[从文件]→[从 ...
- java基础-引用数据类型之二维数组(Array)
java基础-引用数据类型之二维数组(Array) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 之前我们学习过了Java的一维数组,所谓的二维数组就是元素是一堆一维数组的数组,换 ...
- 二维数组,锯齿数组和集合 C# 一维数组、二维数组(矩形数组)、交错数组(锯齿数组)的使用 C# 数组、多维数组(矩形数组)、锯齿数组(交叉数组)
二维数组,锯齿数组和集合 一.二维数组 二维数组:一维数组----豆角二维数组----表格 定义:1.一维数组:数据类型[] 数组变量名 = new 数据类型[数组长度];数据类型[] 数组变量名 = ...
随机推荐
- Strimzi-Kafka-Operator外围小记
Strimzi-Kafka-Operator 从不同的角度看下Operator解决的问题 Kafka管理Operator-https://github.com/strimzi/strimzi-kafk ...
- Windows11右键改Win10
Win11改Win10右键模式 1.以管理员身份运行CMD控制台 2.在控制台中输入下列代码后回车执行 reg add "HKCU\Software\Classes\CLSID\{86ca1 ...
- 共享USB打印机设置方法
打印机共享 一.准备 所有计算机在同一个网段. 所有计算机在同一个工作组,组名可以自定义,默认WORKGROUP. 使用超级管理员用户,目的是为了激活guest用户.验证之后可以不需要此前提. 二.主 ...
- 认证全家桶(Cookie、Session、Token、JWT)
什么是认证(Authentication) 通俗地讲就是验证当前用户的身份,证明"你是你自己"(比如:你每天上下班打卡,都需要通过指纹打卡,当你的指纹和系统里录入的指纹相匹配时,就 ...
- 什么是Markdown
什么是markdown? Markdown是一种轻量级标记语言,它允许人们使用已读一些的纯文本格式编写文档,然后转换成有效的XHTML(或者HTML)文档.这种语言吸收了很多在电子邮件中已有的纯文本标 ...
- 每次新建项目都要重新配置Maven项目很麻烦,这里出一个小技巧,配置一次就直接搞定所有的
Maven一次配置永久使用教程 首先,打开IDEA,将你目前放出来的项目关掉:(File->Close Project) 其次,在左侧栏里面选择这个: 然后,选择中间的这里: 接着,在弹出的页面 ...
- Mybatisplus----DML编程---多记录操作
批量处理数据: @Test void testDelete(){ //批量按id删除 List<Long> list = new ArrayList<>(); list.add ...
- Spark Catalyst 查询优化器原理
这里我们讲解一下SparkSQL的优化器系统Catalyst,Catalyst本质就是一个SQL查询的优化器,而且和 大多数当前的大数据SQL处理引擎设计基本相同(Impala.Presto.Hive ...
- Nacos 服务发现
更多内容,前往 IT-BLOG 一.Nacos 简介 Nacos 是阿里的一个开源产品,它是针对微服务架构中的服务发现.配置管理.服务治理的综合型解决方案.Nacos 使服务更容易注册,并通过 DNS ...
- Golang数据结构
数据类型 不同类型的内存样式图 append,切片添加元素 清空切片的3种方法 清空切片的2种方法 查看变量类型 使用 fmt.Printf package main import "fmt ...