四时宝库

程序员的知识宝库

Power Query中从JSON中提取多列数据,按时间顺序做折线图

昨天我们做了一个复杂JSON结构数据的单列数据提取,今天我们来做一个简单JSON数据结构的多列数据提取,这是这份数据的概况:

这是我国GDP增长率数据,包括三产的增长数据:

数据源复制到Power Query中:

结构非常简单,我们要做的就是把X作为标题行,Y作为数据,整理成表格就可以了。

首先是X处理

我们的目标是把X变成一个列表:

然后是Y

同样要把Y变成列表的列表:

因为Y原本是只有4行数据,但是每行数据都是一长串的数字构成的字符串,我们用Text.Split函数以逗号为分隔符,把它拆分成列表:

= List.Transform( JS[Y],each Text.Split(_,","))

生成表格:

用X做标题,Y做数据,生成表格:

= Table.FromRows(Y,X)

以上的步骤是为了大家了解这个过程,其实是可以一步完成的:

把X、Y的处理过程的公式带入到最后的查询中就可以了:

= Table.FromRows(

List.Transform(

JS[Y],each Text.Split(_,",")),

Text.Split(JS[X],","))

当然这种多列的数据在Power BI中不好用,我们要变成纵向排列的数据,转置之前,要把标题降级为数据:

然后转置,添加索引:

为什么要添加索引?这是为了保留文本时间的顺序,如果用过Power BI的同学,就会了解,Power BI中的排序功能很强大,但也很弱智,像数据中这种带有汉字的文本时间很难排好顺序,但是DAX中有列排序的功能:

我们把时间列的顺序用索引来排序,就能保证时间序列的从早到晚,这样的顺序。

数据加载之后,做折线图表的时候,排序选择升序就好了:

(此处已添加圈子卡片,请到今日头条客户端查看)

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接