BI神器Power Query(27)-- 使用PQ实现表格多列转换(3/3)
实例需求:原始表格包含多列属性数据,现在需要将不同属性分列展示在不同的行中,att1、att3、att5为一组,att2、att3、att6为另一组,数据如下所示。
更新表格数据
原始数据表:
| Col1 | Col2 | Att1 | Att2 | Att3 | Att4 | Att5 | Att6 |
|---|---|---|---|---|---|---|---|
| AAA | DDD | X | O | alpha | delta | 100 | 400 |
| BBB | EEE | Y | P | beta | vega | 200 | 500 |
结果数据表:
| Col1 | Col2 | cn1 | cn3 | cn3 |
|---|---|---|---|---|
| AAA | DDD | X | alpha | 100 |
| AAA | DDD | O | delta | 400 |
| BBB | EEE | Y | beta | 200 |
| BBB | EEE | P | vega | 500 |
示例代码:
letSource = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],ChangedType = Table.TransformColumnTypes(Source,{{"Att1", type text}, {"Att2", type text}, {"Att3", type text}, {"Att4", type text}, {"Att5", type text}, {"Att6", type text}}),MergedPart1 = Table.CombineColumns(ChangedType,{"Att1", "Att3", "Att5"},Combiner.CombineTextByDelimiter(",", QuoteStyle.None),"Part1"),MergedPart2 = Table.CombineColumns(MergedPart1,{"Att2", "Att4", "Att6"},Combiner.CombineTextByDelimiter(",", QuoteStyle.None),"Part2"),UnpivotedOtherCol = Table.UnpivotOtherColumns(MergedPart2, {"Col2", "Col1"}, "Attribute", "Value"),RemovedColumns = Table.RemoveColumns(UnpivotedOtherCol,{"Attribute"}),Output = Table.SplitColumn(RemovedColumns, "Value", Splitter.SplitTextByDelimiter(",", QuoteStyle.Csv), {"cn1", "cn2", "cn3"})
inOutput
代码解析:
第2行代码加载源表格,表格名称为Table1。
第3行代码使用Table.TransformColumnTypes函数将属性列的数据类型更改为文本类型。
第4行代码使用Table.CombineColumns函数将"Att1"、“Att3"和"Att5"合并为一个列"Part1”,用逗号分隔。
使用Table.AddColumn函数也可以增加一列"Part1",其值为"Att1"、"Att3"和"Att5"的合并结果,与第4行代码的区别在于,此代码并不能删除被合并的3列。
= Table.AddColumn(ChangedType, "Part1", each [Att1] & "," & [Att3] & "," & [Att5])
第5行代码使用Table.CombineColumns函数将"Att2"、“Att4"和"Att6"合并为一个列"Part2”,同样用逗号分隔。

第6行代码使用Table.UnpivotOtherColumns函数,保留"Col2"和"Col1"列,将其他列转换成"Attribute"和"Value"列。

第7行代码使用Table.RemoveColumns函数移除不再需要的"Attribute"列。
第8行代码使用Table.SplitColumn函数按逗号分隔"Value"列,分为"cn1"、"cn2"和"cn3"三列。
转换结果如下图所示。

总结:
使用Power Query函数和操作步骤来实现了将原始表格列数据按照指定规则转换成分列展示的目标格式,使用Table.CombineColumnsToRecord可将多列数据合并到一个记录中。
相关文章:
BI神器Power Query(27)-- 使用PQ实现表格多列转换(3/3)
实例需求:原始表格包含多列属性数据,现在需要将不同属性分列展示在不同的行中,att1、att3、att5为一组,att2、att3、att6为另一组,数据如下所示。 更新表格数据 原始数据表: Col1Col2Att1Att2Att3Att4Att5Att6AAADD…...
VUE3照本宣科——认识VUE3
VUE3照本宣科——认识VUE3 前言一、命令创建项目1.中文官网2.菜鸟教程 二、VUE3项目目录结构1.public2.src(1)assets(2)components 3. .eslintrc.cjs4. .gitignore5. .prettierrc.json6.index.html7.package.json8.README.md9.vit…...
《计算机视觉中的多视图几何》笔记(12)
12 Structure Computation 本章讲述如何在已知基本矩阵 F F F和两幅图像中若干对对应点 x ↔ x ′ x \leftrightarrow x x↔x′的情况下计算三维空间点 X X X的位置。 文章目录 12 Structure Computation12.1 Problem statement12.2 Linear triangulation methods12.3 Geomet…...
TFT LCD刷新原理及LCD时序参数总结(LCD时序,写的挺好)
cd工作原理目前不了解,日后会在博客中添加这一部分的内容。 1.LCD工作原理[1] 我对LCD的工作原理也仅仅处在了解的地步,下面基于NXP公司对LCD工作原理介绍的ppt来学习一下。 LCD(liquid crystal display,液晶显示屏) 是由液晶段阵列组成,当…...
基于Java的电影院购票系统设计与实现(源码+lw+部署文档+讲解等)
文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序(小蔡coding)有保障的售后福利 代码参考源码获取 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作…...
Linux基础指令(六)
目录 前言1. man 指令2. date 指令3. cal 指令4. bc 指令5. uname 指令结语: 前言 欢迎各位伙伴来到学习 Linux 指令的 第六天!!! 在上一篇文章 Linux基本指令(五) 中,我们通过一段故事线,带大家感性的了…...
Anderson-Darling正态性检验【重要统计工具】
Anderson-Darling正态性检验是一种用于确定数据集是否服从正态分布(也称为高斯分布或钟形曲线分布)的统计方法。它基于Anderson和Darling于1954年提出的检验统计量。该检验的基本原理和用途如下: 基本原理: 零假设(Nu…...
Ubuntu基于Docker快速配置GDAL的Python、C++环境
本文介绍在Linux的Ubuntu操作系统中,基于Docker快速配置Python、C等不同编程语言均可用的地理数据处理库GDAL的方法。 首先,我们访问GDAL库的Docker镜像官方网站(https://github.com/OSGeo/gdal/tree/master/docker)。其中&#x…...
<C++> 哈希表模拟实现STL_unordered_set/map
哈希表模板参数的控制 首先需要明确的是,unordered_set是K模型的容器,而unordered_map是KV模型的容器。 要想只用一份哈希表代码同时封装出K模型和KV模型的容器,我们必定要对哈希表的模板参数进行控制。 为了与原哈希表的模板参数进行区分…...
【数据结构与算法】通过双向链表和HashMap实现LRU缓存 详解
这个双向链表采用的是有伪头节点和伪尾节点的 与上一篇文章中单链表的实现不同,区别于在实例化这个链表时就初始化了的伪头节点和伪尾节点,并相互指向,在第一次添加节点时,不需要再考虑空指针指向问题了。 /*** 通过链表与HashMa…...
MySQL的内置函数
文章目录 1. 聚合函数2. group by子句的使用3. 日期函数4. 字符串函5. 数学函数6. 其它函数 1. 聚合函数 COUNT([DISTINCT] expr) 返回查询到的数据的数量 用SELECT COUNT(*) FROM students或者SELECT COUNT(1) FROM students也能查询总个数。 统计本次考试的数学成绩分数去…...
数据结构与算法-(7)---栈的应用-(3)表达式转换
🌈write in front🌈 🧸大家好,我是Aileen🧸.希望你看完之后,能对你有所帮助,不足请指正!共同学习交流. 🆔本文由Aileen_0v0🧸 原创 CSDN首发🐒 如…...
Lilliefors正态性检验(一种非参数统计方法)
Lilliefors检验(也称为Kolmogorov-Smirnov-Lilliefors检验)是一种用于检验数据是否符合正态分布的统计检验方法,它是Kolmogorov-Smirnov检验的一种变体,专门用于小样本情况。与K-S检验不同,Lilliefors检验不需要假定数…...
【云原生】配置Kubernetes CronJob自动备份MySQL数据库(单机版)
文章目录 每天自动备份数据库MySQL【云原生】配置Kubernetes CronJob自动备份Clickhouse数据库 每天自动备份数据库 MySQL 引用镜像:databack/mysql-backup,使用文档:https://hub.docker.com/r/databack/mysql-backup 测试、开发环境:每天0点40分执行全库备份操作,备份文…...
基于PSO算法的功率角摆动曲线优化研究(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
数论知识点总结(一)
文章目录 目录 文章目录 前言 一、数论有哪些 二、题法混讲 1.素数判断,质数,筛法 2.最大公约数和最小公倍数 3.快速幂 4.约数 前言 现在针对CSP-J/S组的第一题主要都是数论,换句话说,持数论之剑,可行天下矣! 一、数论有哪些 数论 原根,素数判断,质数,筛法最大公约数…...
知识分享 钡铼网关功能介绍:使用SSLTLS 加密,保证MQTT通信安全
背景 为了使不同的设备或系统能够相互通信,让旧有系统和新的系统可以集成,通信更加灵活和可靠。以及将数据从不同的来源收集并传输到不同的目的地,实现数据的集中管理和分发。 通信网关完美克服了这一难题,485或者网口的设备能通过…...
asp.net core mvc区域路由
ASP.NET Core 区域路由(Area Routing)是一种将应用程序中的路由划分为多个区域的方式,类似于 MVC 的控制器和视图的区域划分。区域路由可以帮助开发人员更好地组织应用程序的代码和路由,并使其更易于维护。 要使用区域路由&#…...
KNN(下):数据分析 | 数据挖掘 | 十大算法之一
⭐️⭐️⭐️⭐️⭐️欢迎来到我的博客⭐️⭐️⭐️⭐️⭐️ 🐴作者:秋无之地 🐴简介:CSDN爬虫、后端、大数据领域创作者。目前从事python爬虫、后端和大数据等相关工作,主要擅长领域有:爬虫、后端、大数据…...
Servlet开发-session和cookie理解案例-登录页面
项目展示 进入登录页面,输入正确的用户名和密码以后会自动跳到主页 登录成功以后打印用户名以及上次登录的时间,如果浏览器和客户端都保存有上次登录的信息,则不需要登录就可以进入主页 编码思路 1.首先提供一个登录的前端页面&…...
谷歌浏览器插件
项目中有时候会用到插件 sync-cookie-extension1.0.0:开发环境同步测试 cookie 至 localhost,便于本地请求服务携带 cookie 参考地址:https://juejin.cn/post/7139354571712757767 里面有源码下载下来,加在到扩展即可使用FeHelp…...
黑马Mybatis
Mybatis 表现层:页面展示 业务层:逻辑处理 持久层:持久数据化保存 在这里插入图片描述 Mybatis快速入门  获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...
Python实现prophet 理论及参数优化
文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候,写过一篇简单实现,后期随着对该模型的深入研究,本次记录涉及到prophet 的公式以及参数调优,从公式可以更直观…...
Ascend NPU上适配Step-Audio模型
1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统,支持多语言对话(如 中文,英文,日语),语音情感(如 开心,悲伤)&#x…...
C# 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...
招商蛇口 | 执笔CID,启幕低密生活新境
作为中国城市生长的力量,招商蛇口以“美好生活承载者”为使命,深耕全球111座城市,以央企担当匠造时代理想人居。从深圳湾的开拓基因到西安高新CID的战略落子,招商蛇口始终与城市发展同频共振,以建筑诠释对土地与生活的…...
C/C++ 中附加包含目录、附加库目录与附加依赖项详解
在 C/C 编程的编译和链接过程中,附加包含目录、附加库目录和附加依赖项是三个至关重要的设置,它们相互配合,确保程序能够正确引用外部资源并顺利构建。虽然在学习过程中,这些概念容易让人混淆,但深入理解它们的作用和联…...
免费数学几何作图web平台
光锐软件免费数学工具,maths,数学制图,数学作图,几何作图,几何,AR开发,AR教育,增强现实,软件公司,XR,MR,VR,虚拟仿真,虚拟现实,混合现实,教育科技产品,职业模拟培训,高保真VR场景,结构互动课件,元宇宙http://xaglare.c…...
【LeetCode】算法详解#6 ---除自身以外数组的乘积
1.题目介绍 给定一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O…...
