• 数据可视化之PowerQuery篇(八)利用PowerQuery,进行更加灵活的数据分列


    https://zhuanlan.zhihu.com/p/66540160

    常规分列

     

    我们最常见的就是有固定分隔符的规范数据,这种直接就按照分隔符拆分就可以了,

     

     

    如果没有分割符怎么办?依然是上面的数据,如果连逗号都没有呢,在Powerquery中还可以按从数字到非数字的转换来分列,

     

     

    拆分列的常规功能中还可以按大小写字母的转换来进行分列,比如这样,

     

     

    是不是非常方便呢。

     

    分列到行

     

    有时候数据都挤在一个单元格里,直接分列也可以,会分成一行多列的表,使用起来很不方便。

    在PQ中,还可以直接分列到行中,直接点击按字符分列,弹出的窗口中展开"高级选项",拆分为行就可以了,

     

     

    多种分隔符进行分列

     

    有时候拿到的原始数据很不规范,可能是手工录入的很随意,分割符不只是一种,我们无论选择哪个都没法直接分开,像下图这样,

     

     

    这时候,仅靠界面功能就难以正确分列了,不过PQ里还有丰富的M函数,这里我们就需要用M函数来完成。

    以上图数据为例,碰到这种多中字符分割的情况,就不要再用拆分界面功能了,直接添加步骤,编辑框中输入,

     

    =Table.SplitColumn(
    提升的标题, "区号",
    Splitter.SplitTextByAnyDelimiter(
    {",",";","-","+","。"},
    QuoteStyle.Csv
    )
    )

     

    (其中提升的标题是上一个步骤的名称,使用时要更改为实际的步骤名,字符替换为实际数据的分隔符)

    看起来有点长,其实主要是使用了Splitter.SplitTextByAnyDelimiter函数,并把所有的分隔符做成一个列表,作为该函数的第一个参数就可以了,效果如下,

     

     

    关于分列,主要是找出数据排列的规律,是有固定的分隔符、有固定的字符数,还是有规律的从数字到文本等等,找到规律以后,就按规律进行拆分就可以了。

    通过分列的功能也可以看出,PQ的界面功能已经比较丰富了,可以处理大部分的日常需求,不过对于不符合常规的数据,也是要掌握一些M函数才能更随心所欲哦。

  • 相关阅读:
    Android笔记(六十六) android中的动画——XML文件定义属性动画
    Android笔记(六十五) android中的动画——属性动画(propertyanimation)
    python函数参数默认值及重要警告
    Python 列表
    Python数学运算入门把Python当作计算器
    Python 的非正式介绍
    python中为什么 if/while/def/class语句需要冒号?
    为什么Python在列表和元组的末尾允许使用逗号?
    现实世界中的 Python
    Python常见问题
  • 原文地址:https://www.cnblogs.com/qiu-hua/p/12843109.html
Copyright © 2020-2023  润新知