热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

PowerQuery中处理空值(null)运算的有效方法

在数据处理过程中,空值(null)的处理是一个常见的问题。本文将探讨在PowerQuery中如何有效地处理空值运算,确保数据的准确性和完整性。

在数据处理和分析中,空值(null)的处理是一个常见的挑战。特别是在PowerQuery中,源数据中经常会出现空值,例如Excel中的空白单元格。这些空值在运算时可能会导致意外的结果。本文将介绍几种有效的方法来处理空值运算,确保数据的准确性和完整性。

首先,我们来看一个简单的例子。假设有一个数据表,其中包含一些空值:

在PowerQuery中,直接对空值进行运算通常会导致结果仍然是空值。例如,两列相加时,如果其中一列为空值,结果也会是空值:

结果如下:

这是因为PowerQuery中的运算规则规定:null + 数字 = null。为了得到预期的结果,我们需要采取一些特殊的方法。

一种常见的方法是将空值替换为0。虽然这种方法在某些情况下有效,但在其他情况下可能会产生错误的结果。例如,如果需要进行乘法运算,将空值替换为0会导致结果始终为0。

因此,这里推荐使用List类函数来处理空值运算。以两列相加为例,可以使用List.Sum函数:

结果如下:

可以看到,null + 数字 = 数字。在List.Sum运算中,null默认被视为0。

同样地,对于乘法运算,可以使用List.Product函数:

结果如下:

null * 数字 = 数字。在List.Product运算中,null默认被视为1。

我们还可以测试最大值和最小值:

List.Max(null, 数字) = 数字

List.Min(null, 数字) = 数字

无论null和数字进行何种运算,其结果都是数字,null就像不存在一样,不参与数字运算。

总结:

1. 如果你希望结果是null + 数字 = null,直接使用运算符号“+”。

2. 如果你希望结果是null + 数字 = 数字,使用List.Sum函数。

最后,需要注意的是,List运算的结果在上传到数据模型后默认为文本型,因此在上传前请先在PowerQuery中将其更改为数值型。


推荐阅读
  • 本文深入探讨了 Python 中的循环结构(包括 for 循环和 while 循环)、函数定义与调用,以及面向对象编程的基础概念。通过详细解释和代码示例,帮助读者更好地理解和应用这些核心编程元素。 ... [详细]
  • 尽管使用TensorFlow和PyTorch等成熟框架可以显著降低实现递归神经网络(RNN)的门槛,但对于初学者来说,理解其底层原理至关重要。本文将引导您使用NumPy从头构建一个用于自然语言处理(NLP)的RNN模型。 ... [详细]
  • 构建基于BERT的中文NL2SQL模型:一个简明的基准
    本文探讨了将自然语言转换为SQL语句(NL2SQL)的任务,这是人工智能领域中一项非常实用的研究方向。文章介绍了笔者在公司举办的首届中文NL2SQL挑战赛中的实践,该比赛提供了金融和通用领域的表格数据,并标注了对应的自然语言与SQL语句对,旨在训练准确的NL2SQL模型。 ... [详细]
  • 本文深入探讨 MyBatis 中动态 SQL 的使用方法,包括 if/where、trim 自定义字符串截取规则、choose 分支选择、封装查询和修改条件的 where/set 标签、批量处理的 foreach 标签以及内置参数和 bind 的用法。 ... [详细]
  • 使用 Azure Service Principal 和 Microsoft Graph API 获取 AAD 用户列表
    本文介绍了一段通用代码示例,该代码不仅能够操作 Azure Active Directory (AAD),还可以通过 Azure Service Principal 的授权访问和管理 Azure 订阅资源。Azure 的架构可以分为两个层级:AAD 和 Subscription。 ... [详细]
  • 本文介绍如何使用 Python 编写程序,检查给定列表中的元素是否形成交替峰值模式。我们将探讨两种不同的方法来实现这一目标,并提供详细的代码示例。 ... [详细]
  • 本文深入探讨了 Java 中的 Serializable 接口,解释了其实现机制、用途及注意事项,帮助开发者更好地理解和使用序列化功能。 ... [详细]
  • 本文详细介绍了Akka中的BackoffSupervisor机制,探讨其在处理持久化失败和Actor重启时的应用。通过具体示例,展示了如何配置和使用BackoffSupervisor以实现更细粒度的异常处理。 ... [详细]
  • 本文详细介绍了如何构建一个高效的UI管理系统,集中处理UI页面的打开、关闭、层级管理和页面跳转等问题。通过UIManager统一管理外部切换逻辑,实现功能逻辑分散化和代码复用,支持多人协作开发。 ... [详细]
  • 本文探讨了如何在给定整数N的情况下,找到两个不同的整数a和b,使得它们的和最大,并且满足特定的数学条件。 ... [详细]
  • 本文探讨了如何在编程中正确处理包含空数组的 JSON 对象,提供了详细的代码示例和解决方案。 ... [详细]
  • 本文详细介绍了Python中列表的创建、访问、修改、排序及遍历等基本操作,帮助初学者快速掌握列表这一重要数据结构。 ... [详细]
  • 简化报表生成:EasyReport工具的全面解析
    本文详细介绍了EasyReport,一个易于使用的开源Web报表工具。该工具支持Hadoop、HBase及多种关系型数据库,能够将SQL查询结果转换为HTML表格,并提供Excel导出、图表显示和表头冻结等功能。 ... [详细]
  • ABBYY FineReader:高效PDF转换、精准OCR识别与文档对比工具
    在处理PDF转换和OCR识别时,您是否遇到过格式混乱、识别率低或图表无法正常识别的问题?ABBYY FineReader以其强大的功能和高精度的识别技术,完美解决这些问题,帮助您轻松找到最终版文档。 ... [详细]
  • 本文介绍了解决在Windows操作系统或SQL Server Management Studio (SSMS) 中遇到的“microsoft.ACE.oledb.12.0”提供程序未注册问题的方法,特别针对Access Database Engine组件的安装。 ... [详细]
author-avatar
何俊雨_127
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有