PowerQuery实战:数据转置的综合应用

(正文开始)
本案例来源于网友提问。
案例描述:如上图,原格式为数据源,目标格式为需通过PowerQuery整理后的数据结构。
大家可以先想一想,或者试一试,看是否可解决,在看了我以下的思路后,欢迎交流。

分析原格式与目标格式,形成以下思路:
1、5行作为一组
2、每组进行转置
无论是写程序,还是通过软件操作,核心的步骤就这2步。
以下是在PowerBI中操作说明与截图
1、载入数据,如下图(步骤略)

2、由于5行作为一组,所以需要新增辅助列,以下2步完成此操作。先新增索引列,如图:

3、索引列的值除以5,然后取余数,就能得到分组的值,如图:

(1、2、3、4、0即5组数据,按此进行分组)
4、按新建字段“辅助分组列”进行分组,如图:

5、第一次转置:实现字段值的转置
将下图结构

转变为下图结构

关键的这一步代码如下图:

主要用到函数
Table.FromList:从List创建表格,主要提取字段值
Table.Transpose:表的转置,实现字段值的转置
6、展开字段,如下图:

7、转置表操作,第二次转置实现整表转置,如下图:

8、提升标题

至此,核心步骤已完成,剩下修改字段名称就可以了!

总结:核心步骤在第5步,实现字段值的转置,目标是将字段值的内容与分组字段值放在同一行上。
以上就是本案例的核心步骤说明,希望能得到大家的反馈,看是否有其他办法可完成,欢迎留言,让我们相互学习,共同成长!
(正文结束)

网友回答非常棒
1、通过List.Split实现分组,Table.FromColumns创建表

这种函数组合非常巧妙,学习了!

2、通过Number.IntegerDivide整除实现分组,与我思路相似性很大

广告:
1、本文所涉及的示例数据,请在知识星球“PowerBI有问必答”同名主题中下载(PS:知识星球最近在更新,不能发表主题,待更新完成后第一时间上传资料)。
2、同步详细视频已更新至网易云课题与51CTO课程中。

原文地址:https://blog.51cto.com/12650297/2380500

时间: 2024-10-19 18:09:00

PowerQuery实战:数据转置的综合应用的相关文章

谈谈Python实战数据可视化之pygal模块(实战篇)

前沿 通过上一节谈谈Python实战数据可视化之pygal模块(基础篇)的学习,我们对pygal模块的使用有了初步的了解,本节将以实战项目来加深pygal模块的使用.从网上可以下载JSON格式的人口数据,并使用json模块来处理它们,pygal模块提供了一个适合初学者使用的地图创建工具,我们将使用它来对人口数据进行可视化,以探索全球人口的分布情况.针对JSON格式的人口数据文件,可以通过谈谈Python实战数据可视化之matplotlib模块(实战篇)章节的配套资源来下载.对于本人在学习和编码过

datatable的数据转置

没有具体测试过,5w条数据在i5机器上大概是1.3~2s左右,但是个人感觉就是在处理数据库的分页或者是写条件的时候会有一些麻烦,不如使用数据库分页! 但是这种方法不失为一种思路 private void Form1_Load(object sender, EventArgs e) { #region  DataTable dt = new DataTable(); dt.Columns.Add("name"); dt.Columns.Add("name2"); dt

谈谈Python实战数据可视化之pyplot模块

前沿 Python提供了很多模块用于数据可视化,其中有matplotlib.pygal.我参考网上热门书籍<Python编程从入门到实战>,在测试与学习过程中遇到的些许问题加以解决,才写下这一项目实战的心得,对于Python基础部分就不细讲,主要是项目核心要点和解决方案的描述.本小节先讲述pyplot模块的基本使用. 新手的建议 针对新手,真心觉得不要直接使用Python下载来的IDLE来开发,因为功能太少了,也不好使用.我的建议是对于Python初学者,先安装Anaconda,这是一个基于P

Oracle 学习之RMAN(十三)恢复实战--数据块修复

在很多情况下,数据库只是某个数据文件的些许数据块发生损坏.这种情况,我们当然可是使用数据库恢复或者数据文件恢复的方式来解决问题.但是有点高射炮打蚊子的感觉.幸好RMAN提供了块级别的恢复.下面我们来演示一下. 1. 创建一个表空间,大小小一点. SQL> conn / as sysdba Connected. SQL> create tablespace tbs_blkerr datafile '/u01/app/oracle/oradata/devdb/blkerr01.dbf' size 

谈谈Python实战数据可视化之pygal模块(基础篇)

前沿 对于需要在尺寸不同的屏幕上显示的图表,请考虑使用Pygal来生成它们,因为它们将自动缩放,以适合观看者的屏幕,这样它们在任何设备上显示时都会很美观.接下来我会谈谈pygal模块生成线.直方图的基本用法,用书本骰子的案例来更深入了解pygal模块的使用,对于pygal其他图形的创建其实方法差不多,实际运用时需要制作哪种图形就去官网查询,官网有很多图形创建的示例代码,pygal画廊官网链接:http://www.pygal.org/如下方图(有图有代码,自己打一遍其实懂得也差不多了): pyg

Jmeter接口测试实战-数据传递

接口与接口之间没有关联的测试是缺乏意义和没有灵魂的,只有数据在不同接口之间传递才能勾画出业务场景重要的链路. 我们用较为通用的http/https协议,接口普遍返回json方式为例. 举例场景: 比如电商平台,用户登录后产生令牌token, 其他接口拿着这个token判断用户是否登录才能进行相关操作, 当用户将商品加入购物车支付完成后,系统按照规则生成订单号, 同时会在该用户的全部订单列表中查到全部订单和相应状态. 要点分析: 1. login接口登录后生成token 2. pay支付接口拿到t

实战一道2级综合编程模拟题

请编写程序,生成随机密码.具体要求如下:???????????????????????????????????????????????????????????????????????????????????????????????? (1)使用 random 库,采用 0x1010 作为随机数种子.???????????????????????????????????????????????????????????????????????????????????????????????? (2)

Redis数据迁移方案

场景 Redis实例A ---> Redis实例B,整库全量迁移 方案一: mac环境 brew install npm npm install redis-dump -g 针对RedisA: redis-dump -h host1 -p 6379 -d 1 --json > mydb.json针对RedisB: cat mydb.json | redis-dump --convert | redis-cli 方案二:参考: http://www.zlovezl.cn/articles/mig

升级版:深入浅出Hadoop实战开发(云存储、MapReduce、HBase实战微博、Hive应用、Storm应用)

      Hadoop是一个分布式系统基础架构,由Apache基金会开发.用户可以在不了解分布式底层细节的情况下,开发分布式程序.充分利用集群的威力高速运算和存储.Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS.HDFS有着高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上.而且它提供高传输率(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序