Power BI中的文本大写/小写自动更改现象
在处理一些英文姓名时,经常会发现,excel表中的大小写和Power BI中的不一样,这篇文章简单说明一下:
如上图所示,在pq中处理数据时大小写是与excel完全一致的,但是加载到报表中就会发现已经发生了变化。
WHY?
原因很简单:Power BI 的引擎不区分大小写(这一点既有好处,又会带来一些意想不到的问题)。同时,Power BI 的引擎很智能,它尽可能地减少重复计算和无效计算:
因此,我们按照这两个大的原则来拆解一下Power BI 引擎的工作过程(大致应该是如此):
- 加载数据时,引擎开始从上到下逐行读取数据。它看到的第一个名称是第 1 行,ID 1:"San Zhang"。它将该值存储在一个列表中,用于跟踪 Name 的唯一值。然后,它将 ID 和对"San Zhang"的引用存储在 Names 列表中,并继续执行第 2 行。
- 对于第 2 行,它会看到另一个名字:"Sure Liu"。它将它与已经存储在名称列表中的内容("San Zhang")进行比较,忽略大小写,并发现它不一样。它很高兴地将这个新的值存储在单独的列表中,存储ID和引用,并继续3、4行,这时候列表中有"San Zhang"、"Sure Liu"、"Doing Zhang"、"Champion Wang"四个值。
- 对于第5行,它将"SURE LIU"与它已经存储的四个值进行比较,并得出结论"SURE LIU"与"Sure Liu"相同(请记住,它不区分大小写,因此这些确实是相同的)。由于它们是相同的,因此它不会单独存储"SURE LIU",而是将"5"存储为ID,然后将名称引用到之前已经存储的"Sure Liu"。对于第 6 行,完全相同:"SURE Liu"与忽略大写的"Sure Liu"相同。对于第7 行,"doing zhang"与忽略大写的"Doing Zhang"相同,因此同样不变。第5行的"CHAMPION WANG"同样与忽略大小写的"Champion Wang"相同。
经过上面的这些运算步骤,Power BI 引擎只需要记录第一列ID的全部行和Name列的4个数据即可(再额外加一点索引关系),无需将8个数据全都存储起来。
对于以上的数据,总共24个数据,但是Power BI 引擎只需要记录16个即可,节省大约1/4的算力。
如果数据量大的话,再配合引擎的其他节省算力的方式,这么做还是很能节省空间与算力的。
但是很多时候我们并不认为A和a是同一个字符,比如在计算生物学上的遗传配对时,AA、Aa、aa是完全不同的基因型,比如一道典型的高中生物学的问题,我想用Power BI来做:
例题:基因型和表现型基因型AaBaCcDd和aaBbCcDd的个体杂交(遵循自由组合定律)则后代基因型和表现型的数目分别是:______和______。
在Power BI的引擎处理过程中,AaBaCcDd和aaBbCcDd完全是一回事,根本解决不了问题。
那么问题来了:
如果我们想让a和A分别按照原先的大小写进行显示,该如何做呢?
这篇文章可能会给你思路:
如何在矩阵的行上显示“其他”【4】看得见与看不见,看上去看不见但还是能看得见,看上去看不见也真的看不见
题外话:还是中文名较比好,不存在以上的些这问题,甚至变改了字文序顺,你都可能没有察觉?
相关文章
- 5、Redis慢日志和key有效期
- (数据库系统概论|王珊)第十章数据库恢复技术:习题
- 朴素贝叶斯与Laplace平滑
- 一篇文章带你了解折线图
- 告别数据开发中的人工审核!火山引擎 DataLeap 落地“自动校验开发规范”能力
- (数据库系统概论|王珊)第十章数据库恢复技术-第四、五、六、七节:数据库恢复技术和数据库镜像
- (数据库系统概论|王珊)第十章数据库恢复技术-第三节:故障种类
- 如何使用JDBC将Cordova应用程序连接到MySQL数据库?
- 用线性二次模型建模大型数据中心,基于 MPC 进行冷却控制
- 接口安全性问题02——jwt身份验证与授权
- 安装Redis6.2.7主从哨兵集群教程
- 《数据万象带你玩转视图场景》第一期:avif图片压缩详解
- 计算两个字符串的相似度
- MySQL安装入门第一篇
- (数据库系统概论|王珊)第十章数据库恢复技术-第一、二节:事务的基本概念和数据库恢复概述
- (数据库系统概论|王珊)第九章关系查询处理和关系优化-第四节:查询优化之物理优化
- 第五章 运输层
- 网络三张表:ARP表, MAC表, 路由表,实现你的网络自由!!
- 3.3 数据结构 时间复杂度 和空间复杂度 计算
- (数据库系统概论|王珊)第七章数据库设计:习题