• [Power Query] 数据的拆分、提取与合并


    在数据整理阶段,经常需要对数据进行拆分、提取与合并

    【转换】和【添加列】选项卡都有拆分列、合并列以及提取功能

    两者的区别在于执行【转换】选项卡中的提取和合并列操作后,原列不保留;执行【添加列】选项卡中的提取和合并列操作后,原列保留,生成新的列

    1.数据拆分

    数据的拆分是指将一列的内容拆分到多列中

    注意:不是所有的数据都可以拆分,拆分的依据是按照特定分隔符或字符数,适用于拆分具有一定排列规律的字符串,方便用户对数据进行二次分类,便于后续的数据分析使用

    【转换】|【拆分列】选项下各项操作如下所示

    当点击【按分隔符】拆分时,会弹出"按分隔符拆分列"命令窗口

    1.选择或输入分隔符

    指定按什么标准对数据进行拆分,默认提供了5种分隔符:冒号、逗号、等号、分号和空格。如果数据列中没有上述分隔符,我们可以自定义分隔符,如输入竖线、星号、破折号、斜线等不同类型的符号

    2.拆分位置

    用来指定数据提取方式

    ①最左侧的分隔符

    从当前列最左侧字符开始,当指定的分隔符第一次出现时,就对当前文本以分隔符为界定拆分成两个数据列

    ②最右侧的分隔符

    从当前列最右侧字符开始,当指定的分隔符第一次出现时,就对当前文本以分隔符为界定拆分成两个数据列

    ③每次出现分隔符时

    可以将当前文本列拆分成多列,即每出现一次分隔符,其左右两边的文本就会被拆分,然后独立存储在相对应的数据列中

    3.高级选项

    ①拆分为列

    拆分出来的文本数据将以列的方式进行存储(默认)

    ②拆分为行

    拆分出来的数据会作为新的行插入当前文本列中

    4.引号字符

    仅仅对CSV类型文件起作用

    CSV文件是一种字符分隔符文件,对于列中数据的存储有一个规定,如果某一行数据包括空格、双引号、逗号等特殊字符,就需要在该字符串外围使用一对双引号进行包裹,CSV文件中的引号字符会被作为字符分隔符舍弃掉,不做保留

    5.使用特殊字符进行拆分

    如果需要按照键、回车符、换行和不间断空格对数据进行拆分,可以选择此项

    练习案例

    数据源

    问题:将"店铺"字段拆分成城市和店铺名称两个字段

    具体操作步骤如下所示

    步骤1:在Power Query中,选中"店铺"列,选择【添加列】|【重复列】选项,复制店铺列

    步骤2:选中"店铺-复制"列,选择【转换】|【拆分列】|【按字符数】选项,输入字符数2,选择拆分模式"一次,尽可能靠左",单击【确定】按钮

    步骤3:拆分后的字段将城市和店铺名称分为两列,双击列名称可以分别自定义修改列名为"城市"和"店铺名"

    2.数据提取

    数据的提取是指从文本数据中提取某些需要的字符,可按照长度、首字符、结尾字符、范围等方式来提取字符

    注意:提取字符操作之前,要检查数据类型是否是文本型,日期型数据是无法提取的

    选择方式具体含义
    长度提取字符串长度
    首字符从左开始提取
    结尾字符从右开始提取
    范围从中间开始提取
    分隔符(之前/之后/之间)的文本提取分隔符控制的文本位置

    练习案例

    数据源

    问题:对"销售单编号"列提取年月日信息 

    具体操作步骤如下所示

    步骤1:在Power Query查询编辑器中,选中"销售单编号"列,检查数据类型是否为文本

    步骤2:选择【添加列】|【提取】|【范围】选项,输入起始索引值9(起始索引为要提取的字符前面的字符数),字符数为10(年月日中间的反斜线/也包含在内),单击【确定】按钮

    步骤3:将提取的年月日字段名修改为"日期",将数据类型修改为日期型,最终呈现结果如下所示

    3.数据合并

    数据的合并是将多列数据合并到一列中

    在Power Query中选择需要合并的列,然后在选项卡中单击【合并列】,弹出"合并列"对话框,可以设置合并列之间的分隔符

    注意:如果选择【转换】选项卡中的【合并列】,原列将被删除;如果选择【添加列】选项卡中的【合并列】,原列将被保留

    练习案例

    数据源

    问题:将"城市"列和"店铺名"列合并,横线作为分隔符

    选择【添加列】|【合并列】选项,弹出"合并列"命令窗口,分隔符下选择"自定义",下一行填写"-",点击【确定】按钮

    合并结果如下图所示

  • 相关阅读:
    Easily Import and Export Annotations from PDFs
    剑指Offer 35.复杂链表的复制
    Spring AOP面向切面编程
    【论文阅读】社交网络传播最大化问题-03
    NNDL 实验六 卷积神经网络
    Spring Boot(六十六):集成Alibaba Druid 连接池
    [附源码]SSM计算机毕业设计基于实时定位的超市配送业务管理JAVA
    目标检测算法是什么?一文读懂!
    HashMap很美好,但线程不安全怎么办?ConcurrentHashMap告诉你答案!
    python基础-enumerate
  • 原文地址:https://blog.csdn.net/Hudas/article/details/126554149