PowerBI--使用PowerQuery清洗数据

2023-10-27 22:59

本文主要是介绍PowerBI--使用PowerQuery清洗数据,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1、使用List.Accumulate批量值的替换:List.Accumulate(List.Zip({{original_list}, {replace_list}}), table, (x,y)=>Table.ReplaceValue(x, y{0}, y{1}, Replacer.ReplaceValue, {columns}))

let源 = MySQL.Database("192.168.9.128", "Stock_10jqka", [ReturnSingleDatabase=true]),Stock_10jqka_Daily_Stock_Info = 源{[Schema="Stock_10jqka",Item="Daily_Stock_Info"]}[Data],排序 = Table.ReorderColumns(Stock_10jqka_Daily_Stock_Info,{"代码", "名称", "主力净量", "散户数量", "主力金额", "涨幅%", "星级", "现价", "涨速", "总手", "换手", "量比", "总金额", "涨跌", "买价", "卖价", "现手", "涨速%", "实体涨幅", "现均差%", "换手%", "委比%", "总市值", "流通市值", "流通比例", "内盘", "外盘", "内外比", "备注", "TTM市盈率", "净利润?", "市净率", "每股盈利", "昨收", "开盘", "开盘涨幅", "最高", "最低", "5日涨幅", "10日涨幅", "20日涨幅", "年初至今", "振幅%", "买量", "卖量", "笔数", "贡献度", "机构动向", "异动类型", "总股本", "流通股本", "利润总额", "净利润增长率", "每股净资产", "金叉个数", "净流入", "大单流入", "大单流出", "大单净额", "大单净额占比", "大单总额", "大单总额占比", "中单流入", "中单流出", "中单净额", "中单净额占比", "中单总额", "中单总额占比", "小单流入", "小单流出", "小单净额", "小单净额占比", "小单总额", "小单总额占比", "今日增仓占比%", "今日排名", "今日涨幅%", "2日增仓占比%", "2日排名", "2日涨幅", "3日增仓占比%", "3日排名", "3日涨幅", "5日增仓占比%", "5日排名", "10日增仓占比%", "10日排名", "细分行业", "所属行业", "利空", "利好", "数据日期", "Id"}),替换异常值 = List.Accumulate(List.Zip({{"--", "有", "无"}, {"", "True", "False"}}),排序,(x,y)=>Table.ReplaceValue(x, y{0}, y{1},Replacer.ReplaceValue,{"主力净量", "散户数量", "主力金额", "涨幅%", "星级", "现价", "涨速", "总手", "换手", "量比", "总金额", "涨跌", "买价", "卖价", "现手", "涨速%", "实体涨幅", "现均差%", "换手%", "委比%", "总市值", "流通市值", "流通比例", "内盘", "外盘", "内外比", "备注", "TTM市盈率", "净利润?", "市净率", "每股盈利", "昨收", "开盘", "开盘涨幅", "最高", "最低", "5日涨幅", "10日涨幅", "20日涨幅", "年初至今", "振幅%", "买量", "卖量", "笔数", "贡献度", "机构动向", "异动类型", "总股本", "流通股本", "利润总额", "净利润增长率", "每股净资产", "金叉个数", "净流入", "大单流入", "大单流出", "大单净额", "大单净额占比", "大单总额", "大单总额占比", "中单流入", "中单流出", "中单净额", "中单净额占比", "中单总额", "中单总额占比", "小单流入", "小单流出", "小单净额", "小单净额占比", "小单总额", "小单总额占比", "今日增仓占比%", "今日排名", "今日涨幅%", "2日增仓占比%", "2日排名", "2日涨幅", "3日增仓占比%", "3日排名", "3日涨幅", "5日增仓占比%", "5日排名", "10日增仓占比%", "10日排名","利空", "利好"})),数据类型转换 = Table.TransformColumnTypes(替换异常值,{{"主力净量", type number}, {"散户数量", type number}, {"主力金额", type number}, {"涨幅%", type number}, {"星级", type number}, {"现价", type number}, {"涨速", type number}, {"总手", type number}, {"换手", type number}, {"量比", type number}, {"总金额", type number}, {"涨跌", type number}, {"买价", type number}, {"卖价", type number}, {"现手", type number}, {"涨速%", type number}, {"实体涨幅", type number}, {"现均差%", type number}, {"换手%", type number}, {"委比%", type number}, {"总市值", type number}, {"流通市值", type number}, {"流通比例", type number}, {"内盘", type number}, {"外盘", type number}, {"内外比", type number}, {"备注", type number}, {"TTM市盈率", type number}, {"净利润?", type number}, {"市净率", type number}, {"每股盈利", type number}, {"昨收", type number}, {"开盘", type number}, {"开盘涨幅", type number}, {"最高", type number}, {"最低", type number}, {"5日涨幅", type number}, {"10日涨幅", type number}, {"20日涨幅", type number}, {"年初至今", type number}, {"振幅%", type number}, {"买量", type number}, {"卖量", type number}, {"笔数", type number}, {"贡献度", type number}, {"机构动向", type number}, {"异动类型", type number}, {"总股本", type number}, {"流通股本", type number}, {"利润总额", type number}, {"净利润增长率", Currency.Type}, {"每股净资产", type number}, {"金叉个数", type number}, {"净流入", type number}, {"大单流入", type number}, {"大单流出", type number}, {"大单净额", type number}, {"大单净额占比", type number}, {"大单总额", type number}, {"大单总额占比", type number}, {"中单流入", type number}, {"中单流出", type number}, {"中单净额", type number}, {"中单净额占比", type number}, {"中单总额", type number}, {"中单总额占比", type number}, {"小单流入", type number}, {"小单流出", type number}, {"小单净额", type number}, {"小单净额占比", type number}, {"小单总额", type number}, {"小单总额占比", type number}, {"今日增仓占比%", type number}, {"今日排名", type number}, {"今日涨幅%", type number}, {"2日增仓占比%", type number}, {"2日排名", type number}, {"2日涨幅", type number}, {"3日增仓占比%", type number}, {"3日排名", type number}, {"3日涨幅", type number}, {"5日增仓占比%", type number}, {"5日排名", type number}, {"10日增仓占比%", type number}, {"10日排名", type number}})
in数据类型转换

2、使用Table.ReplaceValue进行条件替换;

情景如下:

如何找出一列中包含任意数字的行?比如,我们想找出车号列。车号中,肯定是要包含0-9的一个数字的,如果没数字的话,就认为此行作废。

Table.SelectRows( table, each  List.Count(Splitter.SplitterTextbyAnyDelimiter({"0".."9"})(_[车号]))>1)

3、实例 

let文件夹 = "D:\采购对账\安丘尚居\",文件表 = Table.SelectRows( Folder.Files(文件夹), each Text.Contains([Name], "尚居")),// 最近文件 = List.Min(List.MaxN(Table.SelectRows(文件表, each Text.Contains([Name], "鑫汇")),1)),最新时间 = List.Max(文件表[Date modified]),示例文件 = 文件夹& Table.SelectRows(文件表, each [Date modified]=最新时间)[Name]{0},源 = Excel.Workbook(File.Contents(示例文件)),展开 = Table.SelectRows(源,each not Text.Contains([Name],"$"))[Data]{0},提标 = Table.RenameColumns(展开, List.Zip({Table.ColumnNames(展开), List.Transform(Table.ToList( Table.Transpose(Table.FindText(展开, "车"))), each Text.Remove(_, " "))}),MissingField.Ignore),筛选 = Table.SelectRows(提标, each List.Count(Splitter.SplitTextByAnyDelimiter({"0".."9"})([车号]))>1),改类型 = Table.TransformColumnTypes(筛选,{{"毛重时间", type datetime}, {"毛重", type number}, {"皮重", type number}, {"净重", type number}, {"皮重时间", type datetime}}),分组 = Table.ExpandTableColumn(Table.Group(改类型, {"车号"}, {"尚居", each _}), "尚居", {"毛重时间", "净重","流水号"}, {"尚居.毛重时间", "尚居.净重","尚居.流水号"}),排序 = Table.Buffer(Table.Sort(分组, {{"车号", Order.Ascending},{"尚居.毛重时间", Order.Ascending}})),索引 = Table.AddIndexColumn(排序, "索引", 0, 1, Int64.Type),二出 = Table.AddColumn(索引, "尚居.下次出厂时间", each try if [车号] = 索引{[索引]+1}[车号] then 索引{[索引]+1}[尚居.毛重时间] else 月底日期 otherwise 月底日期)in二出

这篇关于PowerBI--使用PowerQuery清洗数据的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/289001

相关文章

大模型研发全揭秘:客服工单数据标注的完整攻略

在人工智能(AI)领域,数据标注是模型训练过程中至关重要的一步。无论你是新手还是有经验的从业者,掌握数据标注的技术细节和常见问题的解决方案都能为你的AI项目增添不少价值。在电信运营商的客服系统中,工单数据是客户问题和解决方案的重要记录。通过对这些工单数据进行有效标注,不仅能够帮助提升客服自动化系统的智能化水平,还能优化客户服务流程,提高客户满意度。本文将详细介绍如何在电信运营商客服工单的背景下进行

基于MySQL Binlog的Elasticsearch数据同步实践

一、为什么要做 随着马蜂窝的逐渐发展,我们的业务数据越来越多,单纯使用 MySQL 已经不能满足我们的数据查询需求,例如对于商品、订单等数据的多维度检索。 使用 Elasticsearch 存储业务数据可以很好的解决我们业务中的搜索需求。而数据进行异构存储后,随之而来的就是数据同步的问题。 二、现有方法及问题 对于数据同步,我们目前的解决方案是建立数据中间表。把需要检索的业务数据,统一放到一张M

关于数据埋点,你需要了解这些基本知识

产品汪每天都在和数据打交道,你知道数据来自哪里吗? 移动app端内的用户行为数据大多来自埋点,了解一些埋点知识,能和数据分析师、技术侃大山,参与到前期的数据采集,更重要是让最终的埋点数据能为我所用,否则可怜巴巴等上几个月是常有的事。   埋点类型 根据埋点方式,可以区分为: 手动埋点半自动埋点全自动埋点 秉承“任何事物都有两面性”的道理:自动程度高的,能解决通用统计,便于统一化管理,但个性化定

中文分词jieba库的使用与实景应用(一)

知识星球:https://articles.zsxq.com/id_fxvgc803qmr2.html 目录 一.定义: 精确模式(默认模式): 全模式: 搜索引擎模式: paddle 模式(基于深度学习的分词模式): 二 自定义词典 三.文本解析   调整词出现的频率 四. 关键词提取 A. 基于TF-IDF算法的关键词提取 B. 基于TextRank算法的关键词提取

使用SecondaryNameNode恢复NameNode的数据

1)需求: NameNode进程挂了并且存储的数据也丢失了,如何恢复NameNode 此种方式恢复的数据可能存在小部分数据的丢失。 2)故障模拟 (1)kill -9 NameNode进程 [lytfly@hadoop102 current]$ kill -9 19886 (2)删除NameNode存储的数据(/opt/module/hadoop-3.1.4/data/tmp/dfs/na

异构存储(冷热数据分离)

异构存储主要解决不同的数据,存储在不同类型的硬盘中,达到最佳性能的问题。 异构存储Shell操作 (1)查看当前有哪些存储策略可以用 [lytfly@hadoop102 hadoop-3.1.4]$ hdfs storagepolicies -listPolicies (2)为指定路径(数据存储目录)设置指定的存储策略 hdfs storagepolicies -setStoragePo

Hadoop集群数据均衡之磁盘间数据均衡

生产环境,由于硬盘空间不足,往往需要增加一块硬盘。刚加载的硬盘没有数据时,可以执行磁盘数据均衡命令。(Hadoop3.x新特性) plan后面带的节点的名字必须是已经存在的,并且是需要均衡的节点。 如果节点不存在,会报如下错误: 如果节点只有一个硬盘的话,不会创建均衡计划: (1)生成均衡计划 hdfs diskbalancer -plan hadoop102 (2)执行均衡计划 hd

Hadoop数据压缩使用介绍

一、压缩原则 (1)运算密集型的Job,少用压缩 (2)IO密集型的Job,多用压缩 二、压缩算法比较 三、压缩位置选择 四、压缩参数配置 1)为了支持多种压缩/解压缩算法,Hadoop引入了编码/解码器 2)要在Hadoop中启用压缩,可以配置如下参数

Makefile简明使用教程

文章目录 规则makefile文件的基本语法:加在命令前的特殊符号:.PHONY伪目标: Makefilev1 直观写法v2 加上中间过程v3 伪目标v4 变量 make 选项-f-n-C Make 是一种流行的构建工具,常用于将源代码转换成可执行文件或者其他形式的输出文件(如库文件、文档等)。Make 可以自动化地执行编译、链接等一系列操作。 规则 makefile文件

使用opencv优化图片(画面变清晰)

文章目录 需求影响照片清晰度的因素 实现降噪测试代码 锐化空间锐化Unsharp Masking频率域锐化对比测试 对比度增强常用算法对比测试 需求 对图像进行优化,使其看起来更清晰,同时保持尺寸不变,通常涉及到图像处理技术如锐化、降噪、对比度增强等 影响照片清晰度的因素 影响照片清晰度的因素有很多,主要可以从以下几个方面来分析 1. 拍摄设备 相机传感器:相机传