当前位置: 首页 > article >正文

第14篇:Power Query 高级数据处理

第14篇Power Query 高级数据处理1. Power Query 核心概念1.1 M 语言基础Power Query 使用 M 语言进行数据转换// 基本语法结构 let 步骤1 操作1, 步骤2 操作2, 结果 最终输出 in 结果1.2 查询步骤链源数据 ↓ 引用类型转换 ↓ 删除列 ↓ 筛选行 ↓ 分组聚合 ↓ 合并查询 ↓ 输出结果2. 高级数据获取2.1 多文件合并场景合并文件夹中的多个 Excel 文件let 源 Folder.Files(C:\Data\Sales), 筛选Excel Table.SelectRows(源, each [Extension] .xlsx), 添加内容 Table.AddColumn(筛选Excel, Content, each Excel.Workbook([Content])), 展开内容 Table.ExpandTableColumn(添加内容, Content, {Data, Item}), 展开数据 Table.ExpandTableColumn(展开内容, Data, {日期, 产品, 金额}) in 展开数据2.2 动态数据源使用参数化数据源let 服务器名 Parameter 服务器名称, 数据库名 Parameter 数据库名称, 连接字 ProviderSQLNCLI11;Server 服务器名 ;Database 数据库名, 数据 Sql.Database(服务器名, 数据库名) in 数据2.3 Web API 调用let URL https://api.example.com/data, 请求头 [#Authorization Bearer your-token], 响应 Json.Document(Web.Contents(URL, [Headers 请求头])), 转表 Table.FromRecords(响应[data]) in 转表3. 复杂数据清洗3.1 文本处理// 提取数字 提取金额 Table.AddColumn(源, 金额, each Number.From(Text.Select([描述], {0..9, .}))) // 分割列 分割姓名 Table.SplitColumn(源, 姓名, Splitter.SplitTextByDelimiter( ), {姓, 名}) // 正则替换需调用 Python // 建议在 Power Query 中用基础函数替代 清理文本 Table.TransformColumns(源, {字段, each Text.Clean(Text.Trim(_))})3.2 日期处理// 从文本解析日期 解析日期 Table.TransformColumns(源, {日期列, each Date.FromText(_, zh-CN)) // 提取日期部分 添加年月 Table.AddColumn(源, 年月, each Date.ToText([日期], yyyy-MM)) // 计算工作日 工作日判断 Table.AddColumn(源, 是否工作日, each List.Contains({1..5}, Date.DayOfWeek([日期], Day.Monday) 1))3.3 数据类型推断// 批量类型转换 类型转换 Table.TransformColumnTypes( 源, { {日期, type date}, {金额, type number}, {数量, Int64.Type} }, zh-CN )4. 高级合并与连接4.1 多表合并let 表1 Excel.Workbook(File.Contents(销售.xlsx)){[Item销售]}[Data], 表2 Excel.Workbook(File.Contents(订单.xlsx)){[Item订单]}[Data], 合并表 Table.Combine({表1, 表2}) in 合并表4.2 条件合并// 左反连接仅左表独有 左反 Table.NestedJoin( 表1, {ID}, 表2, {ID}, 合并, JoinKind.LeftAnti ) // 完全外连接 全外 Table.NestedJoin( 表1, {ID}, 表2, {ID}, 合并, JoinKind.FullOuter )4.3 模糊匹配模糊匹配 Table.FuzzyNestedJoin( 表1, {姓名}, 表2, {姓名}, 匹配结果, JoinKind.LeftJoin, [IgnoreCasetrue, IgnoreSpacetrue] )5. 数据透视与逆透视5.1 透视列将行值转为列透视结果 Table.Pivot( 源, List.Distinct(源[月份]), 月份, 销售额, List.Sum )转换前产品月份销售额A1月100A2月150B1月200转换后产品1月2月A100150B200null5.2 逆透视列将列转为行值逆透视 Table.Unpivot( 源, {1月, 2月, 3月}, 月份, 销售额 )6. 自定义函数6.1 创建函数// 函数计算税后价格 税后价格 (价格 as number, 税率 as number) as number let 结果 价格 * (1 税率) in 结果 // 使用函数 添加税后 Table.AddColumn(源, 税后价, each 税后价格([单价], 0.13))6.2 递归函数// 计算阶乘 阶乘 (n as number) as number if n 1 then 1 else n * 阶乘(n - 1)6.3 参数化函数// 动态数据获取 获取数据 (服务器 as text, 数据库 as text, 表名 as text) let 结果 Sql.Database(服务器, 数据库){[Schemadbo, Item表名]}[Data] in 结果7. 高级分组聚合7.1 多级分组多级分组 Table.Group( 源, {地区, 产品类别}, { {销售总额, each List.Sum([销售额])}, {订单数量, each Table.RowCount(_)}, {平均单价, each List.Average([单价])} } )7.2 条件分组条件分组 Table.Group( 源, {客户}, { {大订单数, each Table.RowCount(Table.SelectRows(_, (r) r[金额] 10000))}, {小额订单总额, each List.Sum(List.Select([金额], (x) x 1000))} } )8. 错误处理8.1 Try-Catch安全转换 Table.TransformColumns( 源, {金额, each try Number.From(_) otherwise null} )8.2 错误替换替换错误 Table.ReplaceErrorValues( 源, {{金额, 0}, {日期, null}} )8.3 验证逻辑验证数据 Table.AddColumn( 源, 验证状态, each let 金额检查 if [金额] 0 then ✓ else ✗, 日期检查 if [日期] Date.From(DateTime.LocalNow()) then ✓ else ✗ in if 金额检查 ✓ and 日期检查 ✓ then 有效 else 无效 )9. 性能优化9.1 查询折叠确保操作可推送至数据源支持折叠的操作 ✅ 筛选行 ✅ 选择列 ✅ 排序 ✅ 分组聚合 ✅ 合并同源 不支持折叠 ❌ 条件列复杂逻辑 ❌ 自定义函数 ❌ 多数据源合并9.2 禁用加载查询设置 → 禁用 ✅ 仅作为数据源不加载到模型9.3 增量刷新配置步骤 1. 设置日期参数 2. 筛选最近数据 3. 发布到服务 4. 配置增量刷新策略10. 最佳实践总结✅ 使用参数化数据源 ✅ 批量处理而非逐行 ✅ 尽早筛选减少数据量 ✅ 保持查询折叠 ✅ 使用函数复用逻辑 ✅ 添加描述性步骤名 ✅ 处理错误和空值 ❌ 避免过度转换 ❌ 避免复杂计算列 ❌ 避免禁用折叠的操作 ❌ 避免引用完整表格 ❌ 避免硬编码值11. 小结本篇介绍了 Power Query 高级技术主题要点数据获取多文件合并、动态源、API数据清洗文本处理、日期解析、类型转换合并连接多表合并、模糊匹配透视逆透视列转行、行转列自定义函数参数化、递归、复用错误处理Try-Catch、验证逻辑性能优化查询折叠、增量刷新下一篇我们将探讨企业级报表开发与最佳实践。

相关文章:

第14篇:Power Query 高级数据处理

第14篇:Power Query 高级数据处理 1. Power Query 核心概念 1.1 M 语言基础 Power Query 使用 M 语言进行数据转换: // 基本语法结构 let步骤1 操作1,步骤2 操作2,结果 最终输出 in结果1.2 查询步骤链 源数据↓ 引用类型转换↓ 删除列↓ 筛选行↓ 分组…...

深度学习图像描述数据集构建全流程解析

1. 项目概述:构建深度学习图像描述数据集的核心逻辑在计算机视觉与自然语言处理的交叉领域,图像描述生成(Image Captioning)一直是极具挑战性的任务。这个项目的本质,是通过系统化的数据工程方法,将原始图像…...

基于安卓的社区邻里互助服务平台毕业设计源码

博主介绍:✌ 专注于Java,python,✌关注✌私信我✌具体的问题,我会尽力帮助你。一、研究目的本研究旨在设计并实现一个基于安卓操作系统的社区邻里互助服务平台,以解决现代城市社区中居民间信息沟通不畅、资源共享效率低下以及应急互助机制缺失…...

【ACM】2026年人工智能与算力国际学术会议(ICAICP 2026)

2026年人工智能与算力国际学术会议(ICAICP 2026) 2026 International Conference on Artificial Intelligence and Computing Power 主讲嘉宾已确定,科学家、Fellow报告、权威专家齐聚,学术交流更深入! 多征稿主题&…...

算法二刷复盘|LeetCode 3474 二分查找双杀(区间边界 + 二维矩阵)

目录 一、LeetCode 34:在排序数组中查找元素的第一个和最后一个位置 题目描述 核心思路:两次二分,分别锁定左右边界 Java 完整实现 复杂度分析 二、LeetCode 74:搜索二维矩阵 题目描述 核心思路:二维降维&…...

NLP 机器翻译:从RNN到Transformer

NLP 机器翻译:从RNN到Transformer 1. 机器翻译简介 机器翻译(Machine Translation, MT)是自然语言处理(NLP)的重要任务,旨在将一种语言的文本自动翻译成另一种语言。从早期的基于规则的方法到现代的深度学习…...

C++ MCP网关架构设计图(含L1/L2缓存穿透防护+零拷贝协议栈)——全网首份通过PCI-DSS认证的生产级拓扑图解密

更多请点击: https://intelliparadigm.com 第一章:C MCP网关架构设计图总览 C MCP(Model-Controller-Protocol)网关是一种面向高并发、低延迟工业通信场景的中间件组件,其核心目标是在异构设备协议(如 Mod…...

LFM2-2.6B-GGUF快速部署:Ubuntu系统依赖(libglib2.0-0等)安装

LFM2-2.6B-GGUF快速部署:Ubuntu系统依赖(libglib2.0-0等)安装 1. 项目介绍 LFM2-2.6B-GGUF是由Liquid AI公司开发的大语言模型,经过GGUF量化处理后特别适合在资源有限的设备上运行。这个2.6B参数的模型经过量化后体积大幅缩小&a…...

Phi-3-mini-4k-instruct-gguf代码实例:curl调用/health接口与自动化集成示例

Phi-3-mini-4k-instruct-gguf代码实例:curl调用/health接口与自动化集成示例 1. 模型简介 Phi-3-mini-4k-instruct-gguf是微软Phi-3系列中的轻量级文本生成模型GGUF版本。这个模型特别适合以下应用场景: 智能问答系统文本改写与润色内容摘要生成短篇创…...

VSCode远程连接卡顿到崩溃?3个被90%开发者忽略的SSH配置致命细节

更多请点击: https://intelliparadigm.com 第一章:VSCode远程连接卡顿到崩溃的真相揭秘 VSCode 的 Remote-SSH 扩展在中大型项目或低带宽/高延迟网络环境下,常出现编辑器响应迟缓、终端假死、甚至整个窗口崩溃的现象。这并非单纯由网络质量导…...

XGBoost实战:从原理到部署的完整指南

1. XGBoost:为什么它成为机器学习竞赛的常胜将军?第一次接触XGBoost是在2016年的Kaggle竞赛中,当时超过半数的获胜方案都使用了这个算法。作为传统梯度提升树(GBDT)的进化版本,XGBoost通过一系列工程优化和…...

交通枢纽对讲广播降噪难?A-59 模块一站式解决回音、啸叫、远场拾音|嵌入式实战方案

针对高铁站、机场、地铁、客运站等交通枢纽高噪、大混响、多终端并发对讲场景,本文基于 A-59 工业级双通道语音处理模块,给出可直接量产的回音消除 双波束拾音 全双工通话解决方案,含硬件接口、典型模式、场景配置与实测效果,适…...

Arm架构UMLSLL指令解析:高效矩阵运算优化

1. UMLSLL指令深度解析:多向量无符号整数乘减操作在Arm架构的SIMD指令集中,UMLSLL(Unsigned integer Multiply-Subtract Long Long)指令是一个专门为高效矩阵运算设计的复杂操作。我第一次在Armv9的SME2扩展中见到这个指令时&…...

斑马文书AI PPT功能使用测评:AI一键生成PPT

作为常年被PPT支配的职场人,谁没熬过“找思路、扒内容、调格式”的深夜,试过不少AI PPT工具,不是生成内容跑偏,就是Word转PPT格式混乱,直到使用斑马文书AI-PPT功能,才知道什么叫做真正高效好用。接下来我从…...

00华夏之光永存:华为黄大年茶思屋难题揭榜第15期(无线领域难题第一期)·题目篇

华夏之光永存:华为黄大年茶思屋难题揭榜第15期(无线领域难题第一期)题目篇 一、引言:无线领域难题,关乎华为全球竞争力与6G话语权 在全球通信技术从5.5G向6G演进的关键期,无线通信作为华为核心主业&#xf…...

给FGUI编辑器加点料:手把手教你用Lua写一个自定义Inspector面板

给FGUI编辑器加点料:手把手教你用Lua写一个自定义Inspector面板 在UI开发领域,效率工具的价值往往被严重低估。当你第20次重复点击相同的属性面板,或是需要在不同组件间来回切换检查参数时,一个量身定制的Inspector面板能节省的时…...

从经纬度到网格码:北斗位置编码在物流轨迹压缩中的实战应用

北斗网格码在物流轨迹管理中的革命性应用 每天,全球物流系统产生数以亿计的轨迹数据点。一辆普通货运车辆每30秒记录一次位置,单日就能生成近3000条经纬度记录。传统存储方式让数据库不堪重负,而北斗网格码技术正悄然改变这一局面。 1. 物流轨…...

【算法复习】滑动窗口(同向区间指针)

滑动窗口(同向区间指针)滑动窗口是数组 / 字符串类题目里出镜率极高的套路。掌握它,能让一大批看似 O(n) 的暴力解法瞬间降到 O(n)。本文从"定长"和"变长"两个视角,配合可直接套用的模板代码,帮你…...

2024机器学习初学者必备工具与学习路线

1. 为什么初学者需要掌握这些机器学习工具?2024年对于机器学习初学者来说是个绝佳的入门时机。三年前我刚接触这个领域时,光是搭建开发环境就折腾了一周。现在这些开源工具不仅安装简单,还提供了完整的教程和社区支持。掌握它们就像获得了一套…...

别再只做展示页了!用微信小程序+Canvas给你的霍兰德职业测试加个酷炫可视化报告

用Canvas打造微信小程序的职业测试可视化报告 在移动互联网时代,用户体验已经成为产品成败的关键因素。职业性格测试类小程序如雨后春笋般涌现,但大多数测试结果展示方式千篇一律——简单的文字描述和枯燥的数据列表。这种呈现方式不仅缺乏视觉冲击力&am…...

深入STM32以太网DMA与MAC内核:如何用标准库和LWIP实现高效零拷贝网络通信

深入STM32以太网DMA与MAC内核:零拷贝网络通信实战指南 1. 底层架构解析:从硬件加速到协议栈优化 在嵌入式网络通信领域,STM32的以太网外设提供了一套完整的硬件加速方案。MAC内核与专用DMA控制器的协同工作机制,为资源受限环境下的…...

【VSCode工业级调试适配指南】:20年嵌入式老兵亲授5大硬核配置技巧,让JTAG/SWD调试效率提升300%

更多请点击: https://intelliparadigm.com 第一章:VSCode工业级调试适配的底层逻辑与演进路径 VSCode 的调试能力并非基于独立运行的调试器,而是通过标准化协议与外部调试后端协同工作。其核心是 Debug Adapter Protocol(DAP&…...

告别单一RGMII:在ZYNQ裸机下玩转PS+PL双网口设计的三种灵活架构

ZYNQ裸机双网口架构设计:从RGMII局限到三模以太网的工程实践 在工业控制、网络设备和嵌入式系统中,双网口设计已成为提升系统可靠性和功能灵活性的标配方案。ZYNQ系列SoC凭借其独特的PSPL架构,为工程师提供了多种实现双网口的可能路径&#x…...

Flux2-Klein-9B-True-V2效果展示:星空银河系天体结构科学级渲染

Flux2-Klein-9B-True-V2效果展示:星空银河系天体结构科学级渲染 1. 模型能力概览 Flux2-Klein-9B-True-V2是基于官方FLUX.2 [klein] 9B改进的文生图/图生图模型,在科学可视化领域展现出惊人潜力。这个模型特别擅长生成高精度的天体物理图像&#xff0c…...

Python调试工具全解析:从基础到高级实战

1. Python调试工具全景解析作为使用Python近十年的开发者,我深刻体会到调试环节占用了日常开发60%以上的时间。工欲善其事必先利其器,今天系统梳理Python生态中那些真正能提升排错效率的调试工具链。不同于官方文档的平铺直叙,这里会结合真实…...

UHMWPE板源头厂家哪家好

在寻找优质 UHMWPE 板源头厂家时,很多人都会感到困惑。今天,山东龙翔新材料有限公司就为大家带来一份 UHMWPE 板源头厂家排行榜,让你轻松找到靠谱的厂家。第一名:山东龙翔新材料有限公司山东龙翔新材料有限公司坐落于鲁西北历史文…...

AI试衣系统源码-一键换衣换装-支持姿态识别+纹理融合-批量生成-SAAS模式-电商创业利器

温馨提示:文末有资源获取方式在电商竞争日益激烈的今天,商品展示效果直接决定着转化率的高低。尤其是服装类目,传统的模特拍摄不仅成本高昂,而且周期长、效率低。针对这一市场难题,我们团队倾力打造了一款革命性的AI试…...

AMD Ryzen 处理器终极调校指南:RyzenAdj 完整教程

AMD Ryzen 处理器终极调校指南:RyzenAdj 完整教程 【免费下载链接】RyzenAdj Adjust power management settings for Ryzen APUs 项目地址: https://gitcode.com/gh_mirrors/ry/RyzenAdj 你是否曾经觉得自己的 AMD Ryzen 笔记本电脑性能被限制了?…...

AI换装软件源码-自研CGSY算法-一键生成模特上身效果-PHP+MySQL-开源可二开无限开账号

温馨提示:文末有资源获取方式在电商商品展示环节,服装拍摄一直是个让人头疼的问题。请模特、租影棚、后期修图,一套流程下来成本不低,上新周期还容易被拖长。最近在逛开源社区时,发现一套有意思的源码,核心…...

DLSS Swapper:5分钟掌握游戏画质与性能双重提升秘籍

DLSS Swapper:5分钟掌握游戏画质与性能双重提升秘籍 【免费下载链接】dlss-swapper 项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper 还在为游戏画质模糊而烦恼?是否遇到过游戏帧率不稳定的困扰?DLSS Swapper正是为你…...