首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Power Query中的结构化数据

言慢者贵,行柔者富

结构化数据

在Power Query中,数据可以分成原生(Primitive)数据与结构化(Structured)数据两大类。原生数据很容易理解,就是平时我们填写在Excel单元格中的数据。它们可以是文本、数字、百分比、日期等。

在Power Query的数据区域中,我们经常会见到绿色字体的数据,包括列表、记录、表格、二进制文件等,这些就是结构化数据

Power Query中各式各样的数据类型

结构化数据与Python的DataFrame相同,在Pandas中DataFrame是二维数据结构,一般是指包含行和列的二维表结构,行和列通过索引获取。Power Query中的结构化数据也可以通过位置定位获取。

List:列表

列表(List)的作用是简单地枚举一组对象,就好比是我们日常生活中的购物清单。

列表可以理解为表的一列数据,不含标题。在M语言中列表使用大括号「{}」表示,列表成员以逗号「,」分隔。

以下两句代码生成同一个列表:

“..”是M中的语法糖,它的意思是:生成从前面的值开始到后面的值结束的一个连续递增序列。使用“..”可以构造一个连续递增的列表,它可以用于数字序列,字母序列、中文序列等。

在Power Query中新建空白查询,然后在公式编辑栏中输入以上代码,在数据区域中可以看到,该列表包含4个数字,2个文本和2个列表。

列表中的列表(List of Lists)

列表中的成员可以是文本、数字、日期、时间、日期时间等,也可以是列表、记录、表、二进制文件等结构化数据。正是因为列表的灵活和强大,它经常会出现在高级M函数的使用场景中。

Record:记录

记录(Record)的作用是记录一组值及其属性(标题),它比列表多了一个维度的信息。记录可以理解为表的一行数据,包含标题。

在Power Query中,列表是一组垂直方向的数据,而记录是一组水平方向的数据。记录在M语言中用中括号「[]」表示,值与属性用「=」连接。

值如果是文本需要双引号,属性(标题)一定是文本,但不需要双引号。不同组合之间用逗号「,」分隔。

如何生成多条记录?方法是使用列表。不同的记录用逗号分隔。

记录列表

Table:表

表(Table),顾名思义,由行和列组成的数据表。表是我们最常接触的结构化数据,也是最直观、最容易掌握的一种结构化数据。

数据区域蓝色字体的“Table”就是代表了该部分数据是一个结构化的表格。

单击“Table”旁边的空白处(鼠标指针是箭头形状),在预览区域就可以看到具体数据明细,如果直接单击“Table”字样(鼠标指针变成手指形状),则会直接将表格展开。

Power Query结构化数据中的表

#table()是M语言中用于生成表的关键字。

它的参数有两个:第一个参数是列表,列表的成员是表标题,第二个参数是由列表组成的列表,里层列表的成员是行的内容。每一行内容由「{}」包围,以逗号分隔,这些由行组成的列表再次组合成外层的列表。

以上介绍的就是M语言中最常用也最实用的三大数据结构,掌握了它们就解锁了在M中自由转换数据结构,解决大部分数据清洗难题的能力。

微软 Microsoft 365 Copilot 功能已经可以在 Word 中抢先体验,启用方法已经整理在星球,有兴趣的星友可以前往查看。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230403A019H700?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券