前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Excel 数据清洗,使用Power Query原来这么地简单

Excel 数据清洗,使用Power Query原来这么地简单

作者头像
博文视点Broadview
发布2023-04-04 10:43:51
8310
发布2023-04-04 10:43:51
举报
文章被收录于专栏:博文视点Broadview

今天通过一个数据清洗的例子讲解一下Excel Power Query中关于数据清洗的例子。

如下所示,将下面的左侧的数据清洗成右侧的数据。

Excel Power Query

这个例子,科目这一栏中,语文,数学,英语的顺序每个人是一样的,所以就好处理多了。先将数据加载至Power Qeury中。如下图所示:

接下来先筛选掉第2列中的null值。

代码语言:javascript
复制
= Table.SelectRows(源, each [#"语文|数学|英语"] <> null)

然后再对第1列进行填充。

代码语言:javascript
复制
= Table.FillDown(筛选,{"姓名"})

接下来是处理的重要的环节,按姓名进行分组,分组后取第2列,利用List.Zip函数(也叫拉链函数)将自定的{"语文","数学","英语"}连接后,最后再用Table.FromList函数进行转换。

代码语言:javascript
复制
= Table.Group(填充,                      "姓名",                      {                          "n",                          each                               Table.FromRows(                                  List.Zip(                                      {                                          {"语文","数学","英语"}                                          ,_[#"语文|数学|英语"]                                      }                                        )                                       ,{"科目","成绩"}                                       )                                     }                       )

至此已经就完成80%的转换的工作了,接下来只需要将n展开,然后再进行透视一下就OK了。

整体的代码如下图所示:

代码语言:javascript
复制
let    源 = Excel.CurrentWorkbook(){[Name="表1"]}[Content],    筛选 = Table.SelectRows(源, each [#"语文|数学|英语"] <> null),    填充 = Table.FillDown(筛选,{"姓名"}),    分组 = Table.Group(填充,                      "姓名",                      {                          "n",                          each                               Table.FromRows(                                  List.Zip(                                      {                                          {"语文","数学","英语"}                                          ,_[#"语文|数学|英语"]                                      }                                        )                                       ,{"科目","成绩"}                                       )                                     }                       ),    展开 = Table.ExpandTableColumn(分组, "n", {"科目", "成绩"}),    透视 = Table.Pivot(展开, List.Distinct(展开[科目]), "科目", "成绩")in    透视

本节例子属于一般性的常规的解法,还有很多的解法,小伙伴们可以思考一下哦~~

作者新书推荐

扫码了解本书详情

发布:刘恩惠

审核:陈歆懿

代码语言:javascript
复制
如果喜欢本文欢迎 在看丨留言丨分享至朋友圈 三连
 热文推荐  
用过那么多评估开发工作量的指标,还是它最好用!
书单 | 9月新书速递
流程管理软件的四种类型
P5~P9应该具备的核心能力是什么

▼点击阅读原文,了解本书详情~

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-10-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 博文视点Broadview 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Excel Power Query
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档