大数据应用人才培养系列教材 数据清洗 刘 鹏 张 燕 总主编 李法平 主编 陈潇潇 副主编
第四章 常用数据清洗工具及基本操作 4.1 Microsoft Excel数据清洗基本操作 4.2 Kettle简介及基本操作 大数据应用人才培养系列教材 第四章 常用数据清洗工具及基本操作 4.1 Microsoft Excel数据清洗基本操作 4.2 Kettle简介及基本操作 4.3 OpenRefine简介及基本操作 4.4 DataWrangler简介及基本操作 4.5 Hawk简介及基本操作 4.6 上机练习与实训 习题
4.1 Microsoft Excel数据清洗基本操作 第四章 常用数据清洗工具及基本操作 4.1.1Excel数据清洗概述 Microsoft Excel是微软公司Microsoft Office系列办公软件的重要组件之一,是一个功能强大的电子表格程序,能将整齐而美观的表格呈现给用户,还可以将表格中的数据通过多种形式的图形、图表表现出来,增强表格的表达力和感染力。Microsoft Excel也是一个复杂的数据管理和分析软件,能完成许多复杂的数据运算,帮助使用者做出最优的决策。利用Excel内嵌的各种函数可以方便地实现数据清洗的功能,并且可以借助过滤、排序、作图等工具看出数据的规律。另外,Excel还支持VBA编程,可以实现各种更加复杂的数据运算和清理。 作为一款桌面型数据处理软件,Excel主要面向日常办公和中小型数据集的处理,但在面对海量数据的清洗任务时却是难以胜任的,即使是小型数据集在使用前也存在需要规范化的问题,因此,通过在Excel中进行数据清洗的实践操作,有助于帮助读者理解数据清洗的概念和知识,并掌握一定的操作技巧,为后面进行大数据集的清洗打好基础。
主要针对与数据清洗密切相关的操作和注意事项做简要介绍 4.1 Microsoft Excel数据清洗基本操作 第四章 常用数据清洗工具及基本操作 1.Excel数据清洗相关操作 主要针对与数据清洗密切相关的操作和注意事项做简要介绍 1 数据分列 2 快速定位和快速填充 3 Excel中的数据类型和数据格式
4.1 Microsoft Excel数据清洗基本操作 第四章 常用数据清洗工具及基本操作 1数据分列 在利用Excel进行数据处理过程中,常会遇到1列单元格中的数据是组合型的情况,即粒度过大,如“2017-03-25 Saturday 18:22”,包含日期、星期和时间3个部分,如图4-1所示。需要将之拆分为独立的3列,这时就可以采用分列功能实现,操作步骤为: 步骤1:选定要进行分列的数据,然后单击“数据”工具栏,选择“分列”,如图4-2所示。 存储 存储成本下降 图4-1 组合型数据示例 图4-2 选择“分列”操作
4.1 Microsoft Excel数据清洗基本操作 第四章 常用数据清洗工具及基本操作 步骤2:出现文本分列向导(本向导也可以在选中待分列区域后,按Alt+A+E快捷键快速打开),如图4-3所示,默认选中“分隔符号”,单击“下一步”按钮。 步骤3:选择分隔符号,本例中为空格,所以选中“空格”复选框,选中后,在数据预览的区域里就会显示按照要求分隔后的格式,如图4-4所示,单击“下一步”按钮。 图4-3 文本分列向导第1步 图4-4 文本分列向导第2步
4.1 Microsoft Excel数据清洗基本操作 第四章 常用数据清洗工具及基本操作 步骤4:设置分列后各列的数据格式,根据实际情况而定,这里设为文本格式,选中“文本”单选按钮,如图4-5所示。 步骤5:设置分列后,还可设置数据存放的区域,如图4-6所示,单击“完成”按钮。 图4-5 文本分列向导第3步 图4-6 设置数据存放区域
4.1 Microsoft Excel数据清洗基本操作 第四章 常用数据清洗工具及基本操作 可以看到,数据已被完美地分开,如图4-7所示。 存储 存储成本下降 图4-7 完成数据分列
4.1 Microsoft Excel数据清洗基本操作 第四章 常用数据清洗工具及基本操作 2 快速定位和快速填充 在日常的工作中经常会看到一些重复项合并的Excel表格,如月份、地区等,主要是为了方便查看,如图4-8所示A列的销售区。但这样的工作表,没有办法使用数据透视表功能进行统计、汇总和分析等。 图4-8 重复项合并示例
4.1 Microsoft Excel数据清洗基本操作 第四章 常用数据清洗工具及基本操作 第八章 清洗RDBMS数据实例 对此,可以使用Excel的“定位”功能来实现快速填充,步骤如下: 步骤1:选中A列,单击“合并后居中”按钮,取消单元格合并,结果如图4-9所示。 图4-9 取消单元格合并
4.1 Microsoft Excel数据清洗基本操作 第四章 常用数据清洗工具及基本操作 第八章 清洗RDBMS数据实例 步骤2:选中A列,然后依次单击“查找和选择”→“定位条件”→“空值”按钮(或按Ctrl+G快捷键弹出“定位”对话框后,单击“定位条件”按钮,如图4-10所示)。 步骤3:在随后弹出的“定位条件”对话框中选中“空值”单选按钮,然后单击“确定”按钮,如图4-11所示。 图4-10 “定位”对话框 图4-11 “定位条件”对话框
4.1 Microsoft Excel数据清洗基本操作 第四章 常用数据清洗工具及基本操作 第八章 清洗RDBMS数据实例 步骤4:在定位的空值单元格中输入“=A3”(根据实际情况输入),如图4-12所示。 步骤5:按Ctrl+Enter快捷键完成填充,结果如图4-13所示。 图4-12 输入定位条件 图4-13 完成定位填充
4.1 Microsoft Excel数据清洗基本操作 第四章 常用数据清洗工具及基本操作 3 Excel中的数据类型和数据格式 图4-15 设置单元格格式 在Excel中,数据类型只有3种,分别是文本型、数字型和逻辑型。所有单元格默认的类型为数字型;当输入内容是以单引号为先导符时为文本型,一般当单元格中的数据为文本型时,单元格的左上角会出现绿色的小三角型标记;逻辑型是指运算结果为TRUE或FALSE的二值型数据。3种类型分别可以用函数istext()、isnumber()和islogical()进行判断。3种数据类型的对应关系如图4-14所示。 数据格式是指Excel中各个数据类型的外在表现形式,同一数据类型有多种数据格式,在工具栏上单击“设置单元格格式”按钮(或在单元格中右击,在弹出的快捷菜单中选择选择“设置单元格”命令),出现设置数据格式对话框,如图4-15所示。 图4-14 Excel的数据类型
2 1 4.1 Microsoft Excel数据清洗基本操作 关于数据类型和数据格式的关系主要有以下几点: 第四章 常用数据清洗工具及基本操作 关于数据类型和数据格式的关系主要有以下几点: 1 所有单元格默认的类型为数字型,单元格格式的改变不会改变数据类型本身,但单元格格式会影响新生成数据的类型。 2 以文本形式存储的数字,在参与四则运算时会转变成为数字,结果为数字型;在参与函数运算时会忽略不计,但运算结果仍为数字型。 以上是Excel数据清洗的常用操作介绍,使用数据分列功能是为了使数据的粒度变小;定位填充功能是为了将原始数据中存在的合并居中现象取消,并实现快速的数据填充,实例中仅使用了定位条件中的“空值”,日常工作中可以根据实际需要,选取其他的条件;正确理解Excel中数据类型和数据格式的区别和联系,有利于在实际的数据操作中避免错误。
1 6 2 7 3 8 4 9 5 10 4.1 Microsoft Excel数据清洗基本操作 2.Excel数据清洗常用函数 SUM函数 第四章 常用数据清洗工具及基本操作 2.Excel数据清洗常用函数 Excel的函数功能十分强大,同时也非常复杂,其中很多都可以直接用来进行初步的数据清洗操作,本节按照功能介绍10类函数,根据经验,这些函数在实际的数据清洗工作中使用频率较高,应用面也较广,使用这些函数可以让工作事半功倍。 1 6 SUM函数 NOW函数和TODAY函数 2 7 AVERAGE函数 HLOOKUP函数和VLOOKUP函数 ISNUMBER函数、ISTEXT函数和ISLOGICAL 函数 3 8 COUNT函数 4 9 INT函数和ROUND函数 MAX函数和MIN函数 5 10 IF函数 SUMIF函数和COUNTIF函数
1 2 4.1 Microsoft Excel数据清洗基本操作 第四章 常用数据清洗工具及基本操作 1 SUM函数用来承担数学的加法运算,其参数可以是单个数字或一组数字,因此它的加法运算功能十分强大。 使用一个单元格区域的语法结构: =SUM(A1:A12) 使用多个单元格区域的语法结构: =SUM(A1:A12,B1:B12) 2 AVERAGE函数是频繁使用的一个统计函数,用于计算数据集的平均值。其参数可以是数字,或者是单元格区域。 使用一个单元格区域的语法结构: =AVERAGE(A1:A12) 使用多个单元格区域的语法结构: =AVERAGE(A1:A12,B1:B12)
3 4.1 Microsoft Excel数据清洗基本操作 COUNT函数用于统计含有数字的单元格的个数。 第四章 常用数据清洗工具及基本操作 3 COUNT函数用于统计含有数字的单元格的个数。 注意:COUNT函数不会将数字相加,而只是统计共有多少个数字。COUNT函数的参数可以是单元格、单元格引用或者数字本身。 COUNT函数会忽略非数字单元格的值。例如,如果A1:A10是COUNT函数的参数,但是其中只有两个单元格含有数字,那么COUNT函数返回的值是2。 使用一个单元格区域的语法结构: =COUNT(A1:A12) 使用多个单元格区域的语法结构: =COUNT(A1:A12,B1:B12) 17
4 4.1 Microsoft Excel数据清洗基本操作 INT函数和ROUND函数都是将一个数字的小数部分删除,两者的区别在于: 第四章 常用数据清洗工具及基本操作 4 INT函数和ROUND函数都是将一个数字的小数部分删除,两者的区别在于: INT函数是无条件地将小数部分删除,无须进行四舍五入。该函数只有一个参数,语法结构: =INT(number) 需要注意的是,INT函数总是向下舍去小数部分。例如,INT(-5.1)和INT(-5.9)都是等于-6,而不是-5,因为-6才是-5.1和-5.9向下舍入的数字。 相反,ROUND函数是将一个数字的小数部分四舍五入。该函数有两个参数:需要计算的数字和需要四舍五入的小数位数,语法结构: =ROUND(number,小数位数) 另外还有两个函数ROUNDUP和ROUNDDOWN,可以规定是向上舍入还是向下舍入。 ROUNDUP和ROUNDDOWN的语法结构与ROUND相似: =ROUNDUP(number,小数位数) =ROUNDDOWN(number,小数位数) 18 18
5 4.1 Microsoft Excel数据清洗基本操作 第四章 常用数据清洗工具及基本操作 5 IF函数的主要用途是执行逻辑判断,根据逻辑表达式的真假,返回不同的结果,从而执行数值或公式的条件检测任务。 逻辑判断的结果是返回一个TRUE或FALSE的值,注意这里的TRUE或FALSE不是正确和错误的意思,而是逻辑上的真与假的意思。 IF函数的语法结构: =IF(逻辑判断,为TRUE时的结果,为FALSE时的结果) 例如,给出的条件是B25>C30,如果实际情况是TRUE,那么IF函数就返回第二个参数的值;如果是FALSE,则返回第三个参数的值。 IF函数常常用来检查数据的逻辑错误,如使用二分法的多选题录入时,出现了1和0以外的数字,可以通过如下设置,过程如图4-19所示: 步骤1:选中数值区域→格式→条件格式→公式。 步骤2:输入公式,设置格式。 图4-19 数据逻辑错误检查 19 19
6 7 4.1 Microsoft Excel数据清洗基本操作 第四章 常用数据清洗工具及基本操作 6 NOW函数根据计算机现在的系统时间返回相应的日期和时间。TODAY函数则只返回日期。NOW函数和TODAY函数都没有参数。语法结构如下: =NOW() =TODAY() TODAY函数常用来计算过去到“今天”总共有多少天的计算上。 例如,项目到今天总共进行多少天了? 在一个单元格上输入开始日期,另一个单元格输入公式减去TODAY得到的日期,得出的数字就是项目进行的天数。 请注意可能需要更改单元格的格式,才能正确显示所需要的日期和时间格式。 7 HLOOKUP函数和VLOOKUP函数都可以用来在表格中查找数据。所谓的表格是指用户预先定义的行和列区域。具体来说,HLOOKUP返回的值与需要查找的值在同一列上,而VLOOKUP返回的值与需要查找的值在同一行上。两个函数的语法结构是: =HLOOKUP(查找值,区域,第几行,匹配方式) =VLOOKUP(查找值,区域,第几列,匹配方式) 这两个函数的第一个参数是需要查找的值,如果在表格中查找到这个值,则返回一个不同的值。 20 20 20
8 9 4.1 Microsoft Excel数据清洗基本操作 ISNUMBER函数、ISTEXT函数和ISLOGICAL函数 第四章 常用数据清洗工具及基本操作 8 ISNUMBER函数、ISTEXT函数和ISLOGICAL函数 这3个函数的功能是判断Excel的数据类型,ISNUMBER函数判断单元格中的值是否是数字,ISTEXT函数判断单元格中的值是否是文本,ISLOGICAL函数判断单元格中的值是TRUE或FALSE,这3个函数的返回值均为TRUE或FALSE。 语法结构是: =ISNUMBER(value) =ISTEXT(value) =ISLOGICAL(value) 9 MAX函数和MIN函数是在单元格区域中找到最大和最小的数值。两个函数可以拥有30个参数,参数还可以是单元格区域。两个函数的语法结构是: =MAX(number1,[number2], …) =MIN(number1,[number2], …) 使用一个单元格区域的语法结构: =MAX(A1:A12) 使用多个单元格区域的语法结构: =MAX(A1:A12, B1:B12) 21 21
10 4.1 Microsoft Excel数据清洗基本操作 第四章 常用数据清洗工具及基本操作 图4-20 寻找重复值和非重复值 10 SUMIF函数和COUNTIF函数分别根据条件汇总或计算单元格个数,Excel的计算功能因此大大增强。 ① SUMIF函数有3个参数,其语法结构: =SUMIF(判断范围,判断要求,汇总的区域) 第一个参数可以与第三个参数不同,即实际需要汇总的区域可以不是应用判断要求的区域。第三个参数可以忽略,忽略的情况下,第一个参数应用条件判断的单元格区域就会用来作为需要求和的区域。 B1=COUNTIF(A:A,A1)寻找重复值; C1=COUNTIF(A$1:A1,A1)筛选出所有非重复项(筛选出1即可)。 ② COUNTIF函数用来计算单元格区域内符合条件的单元格个数。COUNTIF函数只有两个参数,其语法结构: =COUNTIF(单元格区域,计算的条件) 如果其中一个单元格的值符合条件,则不管单元格里面的值是多少,返回值是1。利用这一特性可以进行重复数据的处理。 例如:对图4-20中的数据进行处理,分别找出重复值和非重复值。 22 22
1.1 Microsoft Excel数据清洗基本操作 第四章 常用数据清洗工具及基本操作 3.Excel数据清洗操作的注意事项 ① 同一份数据清单中避免出现空行和空列; ② 数据清单中的数据尽可能细化,不要使用数据合并; ③ 构造单行表头结构的数据清单,不要有两行以上的复杂表头结构; ④ 单元格的开头和末尾避免输入空格或其他控制符号; ⑤ 在一个工作表中要避免建立多个数据清单,每个工作表仅使用一个数据清单; ⑥ 当工作表中有多个数据清单时,则数据清单之间应至少留出一个空列和一个空行,以便于检测和选定数据清单; ⑦ 关键数据应置于数据清单的顶部或底部; ⑧ 对原始工作表做好备份,在执行完所有的清洗操作并确认无误后再复制到原始表中。 23 23
4.1 Microsoft Excel数据清洗基本操作 第四章 常用数据清洗工具及基本操作 4.1.2Excel数据清洗 现有一个企业招聘职位信息的数据集,约有5000条数据,客户提出需要了解数据分析师岗位情况,包括岗位分布和特点、能力要求、工资和薪酬等。由于数据集没有经过处理,所以表中的数据还很不规范,含有大量数据重复、缺失、单列数据粒度过大等问题,因此,在进行数据分析前,需要进行数据清洗操作,以使数据规范化。下面介绍执行数据清洗的主要过程。 24 24
4.1 Microsoft Excel数据清洗基本操作 第四章 常用数据清洗工具及基本操作 1.数据预览 拿到数据后,不要急着动手处理,先对数据集做总体的观察。如图4-21所示,可以看到,数据集表头由城市、公司名称、公司编号、公司福利、公司规模、经营区域、经营范围、教育程度、职位编号、职位名称、薪水和工作年限要求等属性组成。 图4-21 招聘信息数据集 25 25
4.1 Microsoft Excel数据清洗基本操作 第四章 常用数据清洗工具及基本操作 数据整体较为规整,但通过初步观察,该数据集主要存在如下问题: (1)数据缺失 (2)数据不一致 (3)存在“脏”数据 (4)数据不规范 26 26
4.1 Microsoft Excel数据清洗基本操作 第四章 常用数据清洗工具及基本操作 2.进行数据清洗 (1)清洗薪水数据 (2)分列操作 (3)搜索替换不一致 27 27
第四章 常用数据清洗工具及基本操作 4.1 Microsoft Excel数据清洗基本操作 4.2 Kettle简介及基本操作 大数据应用人才培养系列教材 第四章 常用数据清洗工具及基本操作 4.1 Microsoft Excel数据清洗基本操作 4.2 Kettle简介及基本操作 4.3 OpenRefine简介及基本操作 4.4 DataWrangler简介及基本操作 4.5 Hawk简介及基本操作 4.6 上机练习与实训 习题
4.2 Kettle简介及基本操作 第四章 常用数据清洗工具及基本操作 大数据技术中,数据清洗的前期过程可简单地认为就是ETL的过程。ETL(Extract-Transform-Load)负责将分散的、异构数据源中的数据如关系数据、平面数据文件等抽取到临时中间层,进行清洗、转换、集成,最后加载到数据仓库或数据集市中,作为联机分析处理、数据挖掘提供决策支持的数据。在整个数据仓库的构建中,ETL工作占整个工作的50%~70%,是构建数据仓库的重要一环,用户从数据源抽取所需的数据,经过数据清洗,最终按照预先定义好的数据仓库模型,将数据加载到数据仓库中。本节介绍一款开源的ETL工具—Kettle。 29 29
4.2 Kettle简介及基本操作 4.2.1 Kettle软件概述 1.Kettle简介 第四章 常用数据清洗工具及基本操作 4.2.1 Kettle软件概述 1.Kettle简介 Kettle软件主要由4个组件组成:Spoon、Pan、Chef和Kitchen。 Spoon是一个图形化界面,用于设计ETL转换过程(Trans formation)。 Pan批量运行由Spoon设计的ETL转换,是一个后台执行的程序,没有图形界面。 Chef用于创建任务(Job)。通过允许每个转换、任务、脚本等,进行自动化更新数据仓库的复杂工作。 Kitchen也是一个后台运行的程序,功能是批量使用由Chef设计的任务。 Kettle是一款国外的开源ETL工具,也是世界上最流行的开源商务智能软件Pentaho的主要组件之一,中文名称叫水壶,主要用于数据库间的数据迁移,商业名称PDI,纯Java编写,可跨平台运行,主要作者为Matt。2005年12月,Kettle成为开源软件。 Kettle使用图形界面进行可视化的ETL过程设置操作,以命令行形式执行,支持非常广泛的数据库类型与文本格式输入和输出,支持定时和循环,实现了把各种数据放到一个壶中,并按用户的要求格式输出,具有可集成、可扩展、可复用、跨平台、高性能等优点,目前在国内外大数据项目上有广泛的应用。 30 30
4.2 Kettle简介及基本操作 2.Kettle软件下载和安装 第四章 常用数据清洗工具及基本操作 2.Kettle软件下载和安装 Kettle软件的下载地址为http://sourceforge.net/projects/pentaho/files,为方便使用,建议下载稳定版本4.4.0,即下载文件Data Integration/ 4.40-syable/pdi-ce-4.4.0-stable.zip,本书主要介绍Kettle在Windows环境下的安装、配置和使用。 由于软件基于Java环境运行,所以安装前先要配置Java运行环境,要注意Kettle版本和Java版本的匹配,这里需要安装的Java版本为1.7.0_79。 解压下载的文件,在解压的文件夹里,可以看到Kettle的启动文件Kettle.exe或Spoon.bat。双击运行,就可以看到Kettle的开始界面,显示软件相关版本信息与GNU相关协议说明,如图4-30所示。 图4-30 Kettle开始界面 31 31
4.2 Kettle简介及基本操作 3.Kettle软件界面 第四章 常用数据清洗工具及基本操作 3.Kettle软件界面 显示开始界面后,Kettle会弹出资源库连接(Repository Connection)对话框,可以输入特定资源库的用户名和密码完成登录,如图4-31所示。 登录时单击Cancel按钮即可进入Kettle,此时所定义的转换和工作是以XML文件方式存储在本地磁盘上,以.ktr和.kjb作为后缀名。若使用资源库登录,则所有定义的转换和工作将会存储到资源库里,资源库即数据库,例如SQL Server数据库,里面存储了Kettle定义的元素的相关元数据库。资源库创建完毕,其相关信息将存储在repositories.xml文件中,它位于默认home目录的隐藏目录.kettle中。如果是Windows系统,该路径为C:\Documents and Settings\<username>\.kettle。 进入Kettle设计界面,弹出“Spoon提示信息”对话框,直接单击“关闭”按钮,如图4-32所示。 图4-32 Spoon提示信息 图4-31 资源库连接对话框 32 32
4.2 Kettle简介及基本操作 Kettle设计界面如图4-33所示,按数字标识顺序,各主要功能为: ① Kettle软件的菜单栏; 第四章 常用数据清洗工具及基本操作 Kettle设计界面如图4-33所示,按数字标识顺序,各主要功能为: ① Kettle软件的菜单栏; ② Kettle软件的快捷工具栏; ③ 透视图功能,包括数据集成、模型和可视化3个组件; ④ 在使用Kettle时所涉及使用到的对象; ⑤ Kettle中所有的组件; ⑥ 根据选择②或者③显示相应的结果; ⑦ Kettle设计界面。 图4-33 Kettle设计界面 33 33
4.2 Kettle简介及基本操作 4.2.2 Kettle基本操作 第四章 常用数据清洗工具及基本操作 4.2.2 Kettle基本操作 Kettle的主要功能是用来转换或者抽取数据,即ETL。Kettle提供了资源库的方式来整合所有的工作,如图4-34所示为Kettle的概念模型。一个数据抽取过程主要包括创建一个作业,每个作业可以包括多个转换操作。转换主要是操作数据库,由编写和执行SQL语句、配置数据库地址等一系列步骤构成。一个完整的作业包括开始、作业、成功3个节点,针对作业进行编辑,选择作业所调用的转换,在转换中可以配置查询操作、更新操作或者插入操作等。上述操作均可使用软件中的工具执行,也可以通过编写程序调用的方式来实现。 图4-34 Kettle概念模型 34 34
4.2 Kettle简介及基本操作 1.转换(transformation) 第四章 常用数据清洗工具及基本操作 1.转换(transformation) 转换主要是针对数据的各种处理,其本质是一组图形化的数据转换配置的逻辑结构,一个转换由若干个步骤(Steps)和连接(Hops)构成,转换文件的扩展名是.ktr。如图4-35所示的转换例子,是一个从文本文件中读取数据、过滤、排序,然后将数据加载到数据库的过程。 图4-35 Kettle转换实例 35 35
4.2 Kettle简介及基本操作 第四章 常用数据清洗工具及基本操作 (1)步骤 转换的构建模块,如一个数据文件的输入或一个表的输出就是一个步骤。按不同的功能分类,Kettle中的步骤主要有输入类、输出类和脚本类等。每种步骤用于完成某种特定的功能,通过配置一系列的步骤就可以完成相关的数据转换任务。 (2)连接 数据的通道,用于连接两个步骤,实现将元数据从一个步骤传递到另一个步骤。构成一个转换的所有步骤,并非按顺序执行,节点的连接只是决定了贯穿在步骤之间的数据流,步骤之间的顺序并不是转换执行的顺序。当执行一个转换时,每个步骤都以其自己的线程启动,并不断地接收和推送数据。 在一个转换中,所有的步骤是同步开启并运行的,所以步骤的初始化顺序是不可知的。因此我们不能在第一个步骤中设置一个变量,并试图在后续的步骤中使用它。一个步骤可以有多个连接,数据流可以从一个步骤流到多个步骤。 36 36
4.2 Kettle简介及基本操作 2.作业(Jobs) 第四章 常用数据清洗工具及基本操作 2.作业(Jobs) 作业是比转换更高一级的处理流程,基于工作流模型协调数据源、执行过程和相关依赖性的ETL活动,实现了功能性和实体过程的聚合,作业由作业节点连接、作业项(Job Entry)和作业设置组成,作业文件的扩展名是.kjb。 一个作业中展示的任务有从FTP获取文件、核查一个数据库表是否存在、执行一个转换、发送邮件通知一个转换中的错误等,最终的结果可能是数据仓库的更新等。 37 37
4.2 Kettle简介及基本操作 4.2.3 Kettle数据清洗实例操作 启动Kettle软件,新建一个转换并保存,如图4-44所示。 第四章 常用数据清洗工具及基本操作 4.2.3 Kettle数据清洗实例操作 现有一个关于银华基金的基金名称和基金代码信息的数据集,如图4-43所示。由于原始数据是通过网络爬虫抓取获得的,所以数据集存在数据错误和重复的问题;另外,抓取的基金名称是字符串型数据,有可能会出现字符编码的乱码或者字符串后有换行符等问题,所以需要对该数据集做清洗操作,本节介绍利用Kettle实现数据清洗的过程。 启动Kettle软件,新建一个转换并保存,如图4-44所示。 图4-44 新建一个转换并保存 38 38
4.2 Kettle简介及基本操作 第四章 常用数据清洗工具及基本操作 从左侧“输入”列表中选择Data Grid(行静态数据网格)并拖放到转换设计区,双击打开设置窗口,引用要读取数据的网址,如图4-45和图4-46所示。 图4-45 设置读取网址1 图4-46 设置读取网址2 39 39
4.2 Kettle简介及基本操作 第四章 常用数据清洗工具及基本操作 再拖入一个Http client,通过HTTP调用Web服务,如图4-47所示。选择Accept URL from field选项,并选择index作为URL的来源字段。注意字符集的设置,避免后面获取的接口数据出现乱码。 图4-47 获取网页源代码 40 40
4.2 Kettle简介及基本操作 第四章 常用数据清洗工具及基本操作 再从“脚本”列表中拖入Modified Java Script Value,用于脚本值的改进,并改善界面和性能。在Java Script里写入正则表达式对通过Http client组件得来的源代码进行解析,如图4-48和图4-49所示。 图4-49 解析代码 图4-48 Java script代码编辑窗口 41 41
4.2 Kettle简介及基本操作 第四章 常用数据清洗工具及基本操作 再从“转换”列表中拖入Split field to rows,用分隔符分隔单个字符串字段,并为每个分割项创建一个新行,如图4-50和图4-51所示。 图4-51 分割字符2 图4-50 分割字符1 42 42
4.2 Kettle简介及基本操作 第四章 常用数据清洗工具及基本操作 继续拖入“查询”列表中的“流查询”,从转换中的其他流里查询值并将其放入“简称”这个字段里,如图4-52所示。 图4-54 数据写入Excel设置 再拖入Flow列表中的“过滤记录”,定制过滤条件,用相等或者不相等的判断表达式来过滤数据,如图4-53所示。 最后拖入“输出”列表中的Microsoft Excel Writer,使用Excel组件中的Microsoft Excel Writer组件将数据写入Excel,如图4-54所示。 图4-53 过滤记录设置 图4-52 流查询设置 43 43
4.2 Kettle简介及基本操作 完成以上步骤之后,在菜单栏中选择Action→“运行”命令即可,运行结果如图4-55所示。 第四章 常用数据清洗工具及基本操作 完成以上步骤之后,在菜单栏中选择Action→“运行”命令即可,运行结果如图4-55所示。 可以看到,在执行结果中显示了执行的步骤名称、读写次数、处理条目、处理时间和处理速度等信息。 最终清洗处理后的数据集如图4-56所示。 图4-55 数据清洗处理设置完成图 图4-56 清洗处理后的数据集 44 44
第四章 常用数据清洗工具及基本操作 4.1 Microsoft Excel数据清洗基本操作 4.2 Kettle简介及基本操作 大数据应用人才培养系列教材 第四章 常用数据清洗工具及基本操作 4.1 Microsoft Excel数据清洗基本操作 4.2 Kettle简介及基本操作 4.3 OpenRefine简介及基本操作 4.4 DataWrangler简介及基本操作 4.5 Hawk简介及基本操作 4.6 上机练习与实训 习题
4.3 OpenRefine简介及基本操作 4.3.1 OpenRefine软件概述 1. OpenRefine简介 第四章 常用数据清洗工具及基本操作 4.3.1 OpenRefine软件概述 1. OpenRefine简介 OpenRefine最初叫作Freebase Gridworks,由一家名为Metaweb的公司开发,主要用于调试各种表格,以避免随着时间的推移出现错误,这对于任何数据库来说都是一个很大的问题。后来,该软件被谷歌收购,更名为Google Refine,并发布了第2版。2012年10月,Google Refine被社区接管,并以OpenRefine为名进行了开源。 OpenRefine是典型的交互数据转换工具(Interactive Data Transformation tools,IDTs),可以观察和操纵数据,使用单个的集成接口,对大数据进行快速、高效的操作。它类似于传统的表格处理软件Excel,但是工作方式更像是数据库,以列和字段的方式工作,而不是以单元格的方式工作。 OpenRefine的主要功能有以下几种: 多种格式的数据源文件支持,如JSON、XML、Excel等,除此之外,还可以通过插件的方式为OpenRefine添加更多格式的数据源的支持。 数据的探索与修正。OpenRefine支持对数据的排序、分类浏览、查重、文本数据过滤等操作。还支持对单个列中的数据进行分割、将多个列的数据通过某种规则合并、对相似的数据进行聚类、基于已有数据生成新的数据列、行列转换等,而且这些操作都非常简单快捷。 关联其他数据源。数据是相互联系的,OpenRefine支持将自己的数据与其他数据源进行关联,如将人员数据与Facebook数据进行关联。通过插件的方式,能够实现各种数据之间的关联。 46 46
4.3 OpenRefine简介及基本操作 2.OpenRefine软件下载和安装 OpenRefine在Windows环境下的安装: 第四章 常用数据清洗工具及基本操作 2.OpenRefine软件下载和安装 OpenRefine基于Java环境运行,因此是跨平台的。OpenRefine 2.6版是它改名以来的第一个发行版本,目前最新版本为2.7。本书将采用Google Refine 2.5版本进行介绍,所有OpenRefine的具体介绍和操作均是指Google Refine 2.5。 最新版OpenRefine的下载地址为http://openrefine.org/。 Google Refine 2.5版的下载地址为https://github.com/OpenRefine/ OpenRefine/releases/download/2.5/google-refine-2.5-r2407.zip。 OpenRefine在Windows环境下的安装: ① 安装和配置好Java运行环境。 ② 从上述Google Refine 2.5版下载地址下载zip包。 ③ 解压到某个目录。 ④ 双击google-refine.exe文件,启动OpenRefine,如图4-57所示。 图4-57 OpenRefine主界面 47 47
4.3 OpenRefine简介及基本操作 4.3.2 OpenRefine基本操作 第四章 常用数据清洗工具及基本操作 4.3.2 OpenRefine基本操作 创建OpenRefine项目十分简单,只需要选择文件、预览数据内容、确认创建3个步骤。通过单击“创建项目”标签页、选择数据集、单击“下一步”按钮来创建新项目。 在OpenRefine中加载数据后,将显示如图4-58所示的界面内容。 图4-58 OpenRefine数据界面 48 48
4.3 OpenRefine简介及基本操作 1.排序(Sort)操作 第四章 常用数据清洗工具及基本操作 在界面中,主要显示了数据集的总行数、显示选项、数据列名称和菜单、数据内容等信息。在开始剖析清理数据前,十分重要的一点是确保OpenRefine较好地载入并显示了数据:查看列名称是否被解析正确(数据显示较宽时请使用水平滑动条)、单元格类型是否正确等。默认情况下,显示的数据数目为10条,可以单击Show选项中的数值改变显示条目数量,最大值为50。下面继续介绍几种OpenRefine数据清洗的常用操作。 1.排序(Sort)操作 排序是观察数据的常用手段,因为排过序的数据更加容易理解和易于分析,在OpenRefine相关列名的下拉菜单中选择Sort,如图4-59所示,将打开排序操作窗口,如图4-60所示。 图4-60 排序对话框 图4-59 选择“排序”操作 49 49
4.3 OpenRefine简介及基本操作 第四章 常用数据清洗工具及基本操作 单元格值可以按照文本(区别大小写或者不区别)、数字、日期、布尔值排序,对每个类别有两种不同的排序方式: q Text(文本):a~z排序或者z~a排序。 q Numbers(数字):升序或者降序。 q Dates(日期):升序或者降序。 q Booleans(布尔值):FALSE值先于TRUE值或TRUE值先于FALSE值。 还可以对错误值和空值指定排序顺序,比如错误值可以排在最前面(这样容易发现问题),空值排在最后(因为空值一般没有意义),而有效值居中。 50 50
4.3 OpenRefine简介及基本操作 2.透视(Facet)操作 第四章 常用数据清洗工具及基本操作 2.透视(Facet)操作 透视操作是OpenRefine的主要工作方式之一,用于多方面查看数据集的变化范围,实现对数据的透视分类操作,包括文字、数字、时间线、散点图等多个选项,并支持用户自定义操作。透视操作并不改变数据,但由此可以获得数据集的有用信息,如图4-61所示。 q 文本透视(Text facet):同电子表格的过滤功能非常相似,将特定文本的值进行分组归类; q 数字透视(Numeric facet):用于查看一列数据值的分布范围; q 时间线透视(Timeline facet):使用时间轴来查看列内容的分布情况; q 散点图透视(Scatterplot facet):用于数据列之间数值的相关性分析。 图4-61 Facet操作选项 51 51
4.3 OpenRefine简介及基本操作 3.聚类(Cluster)操作 第四章 常用数据清洗工具及基本操作 3.聚类(Cluster)操作 在OpenRefine中通过对数据集中相似的值进行聚类分析,便于找出一些如拼写有微小错误的“脏”数据。OpenRefine提供两种不同的聚类模式,即key collision和nearest neighbor,这两种模式的原理不同。对于key collision,使用键函数来影射某个键值,相同的聚类有相同的键值。比如,如果有一个移除空格功能的键函数,那么“A B C和AB C”“ABC”就会有相同的键值:ABC。事实上,键函数在构建上更加复杂和高效。 而nearest neighbor使用的技术是,值与值之间使用distance function来衡量。比如,如果将每一次修改称为一个变化,那么Boot和Bots的变化数是2:一次增加和一次修改。对于OpenRefine来说,其使用的distance function称为levenshtein。 在实际应用中,很难确定究竟哪种模式和方法组合最好。因此,最好的方法是尝试不同的组合,每次都需要小心地确认聚类项是否真的可以合并。OpenRefine能够帮助我们进行有效组合:比如,先尝试key collision,然后尝试nearest neighbor。 可以通过单击待操作列名的下拉菜单,选择Edit cells→Cluster and edit命令,如图4-62所示。 图4-62 选择聚类操作 52 52
4.3 OpenRefine简介及基本操作 4.3.3 OpenRefine数据清洗实例操作 1.更清晰地显示数据 第四章 常用数据清洗工具及基本操作 4.3.3 OpenRefine数据清洗实例操作 1.更清晰地显示数据 Text facet(文本透视)是OpenRefine的核心功能之一,在招聘信息数据集中包含的城市或者国家等名称的列,若想大致了解这个字段都有哪些值和这些值的统计次数有多少,那么就可以使用文本透视功能。在Categories列菜单中选择Facet→Text facet命令,结果会出现在屏幕左侧的Facet/Filter 页中,如图4-66所示。 现在就可以在屏幕左侧的Facet/Filter页面中清楚地看到各个公司福利的归类,在每组的右下角还显示了这些数据的行数,如图4-67所示。 图4-67 Facet/Filter页面 图4-66 文本透视 53 53
4.3 OpenRefine简介及基本操作 1.更清晰地显示数据 2.修改错误的数据 3.根据用户使用习惯改变列表 第四章 常用数据清洗工具及基本操作 1.更清晰地显示数据 2.修改错误的数据 3.根据用户使用习惯改变列表 4.删除数据集中的重复数据 5.撤销错误操作 54 54
第四章 常用数据清洗工具及基本操作 4.1 Microsoft Excel数据清洗基本操作 4.2 Kettle简介及基本操作 大数据应用人才培养系列教材 第四章 常用数据清洗工具及基本操作 4.1 Microsoft Excel数据清洗基本操作 4.2 Kettle简介及基本操作 4.3 OpenRefine简介及基本操作 4.4 DataWrangler简介及基本操作 4.5 Hawk简介及基本操作 4.6 上机练习与实训 习题
4.4 DataWrangler简介及基本操作 4.4.1 DataWrangler软件概述 第四章 常用数据清洗工具及基本操作 4.4.1 DataWrangler软件概述 DataWrangler(中文译名:牧马人)是一款由斯坦福大学开发的在线数据清洗、数据重组软件,如图4-86所示,主要用于去除无效数据,将数据整理成用户需要的格式等。使用DataWrangler能节约用户花在数据整理上的时间,从而使其有更多的精力用于数据分析。 图4-86 DataWrangler网址入口 56 56
图4-87 DataWrangler的数据输入界面 第四章 常用数据清洗工具及基本操作 4.4.2 DataWrangler基本操作 图4-88 数据处理主界面 在浏览器的地址栏中输入DataWrangler的地址:http://vis.stanford. edu/wranglr/,进入DataWrangler的主页面,单击TRY IT NOW按钮进入DataWrangler获取输入数据的界面,如图4-87所示。 界面中提供了Crime、Labor、Migration三个示例数据集,要处理自己的数据,只要将需要清洗的数据集直接粘贴到数据输入区域即可。单击右上方的Wrangle按钮,即进入数据处理界面,开始数据的整理和修复,数据处理主界面如图4-88所示。 图4-87 DataWrangler的数据输入界面 57 57
4.4 DataWrangler简介及基本操作 4.4.3 DataWrangler数据清洗操作 1.去除无效数据 2.提取部分数据 第四章 常用数据清洗工具及基本操作 4.4.3 DataWrangler数据清洗操作 1.去除无效数据 2.提取部分数据 3.自动填充数据 4.删除无用数据 5.数据重构 58 58
第四章 常用数据清洗工具及基本操作 4.1 Microsoft Excel数据清洗基本操作 4.2 Kettle简介及基本操作 大数据应用人才培养系列教材 第四章 常用数据清洗工具及基本操作 4.1 Microsoft Excel数据清洗基本操作 4.2 Kettle简介及基本操作 4.3 OpenRefine简介及基本操作 4.4 DataWrangler简介及基本操作 4.5 Hawk简介及基本操作 4.6 上机练习与实训 习题
4.5 Hawk简介及基本操作 第四章 常用数据清洗工具及基本操作 4.5.1 Hawk软件概述 Hawk是一种数据抓取和清洗工具,依据GPL协议开源,软件基于C# 实现,其前端界面使用WPF开发,支持插件扩展。能够灵活、高效地采集网页、数据库、文件等来源的数据,并通过可视化拖曳操作,快速地进行生成、过滤、转换等数据操作,快速建立解决方案。非常适合作为网页爬虫和数据清洗工具。Hawk含义为“鹰”,喻为能够高效、准确地捕杀猎物。 Hawk的下载地址:https://github.com/ferventdesert/Hawk/releases。 1.界面介绍 Hawk的主界面如图4-97所示。 Hawk采用类似Visual Studio和Eclipse的Dock风格,所有的组件都可以悬停和切换。核心组件主要有以下几部分。 (1)左上角区域:主要工作区,模块列表,初始有网页采集器和数据清洗模块; (2)下方:调试信息和任务管理输出窗口,用于监控任务的完成进度; (3)右上方区域:属性配置器,对不同的模块设置属性; (4)右下方区域:系统状态视图,分算法视图和数据视图,显示当前已经加载的所有数据表和模块。 2.数据管理 主界面中间的数据源区域,能够添加来自不同数据源的连接器,并对数据进行加载和管理,如图4-98所示。 60 60
4.5 Hawk简介及基本操作 图4-98 Hawk数据管理窗口 图4-97 Hawk的启动界面 第四章 常用数据清洗工具及基本操作 图4-98 Hawk数据管理窗口 图4-97 Hawk的启动界面 在数据源区域的空白处右击,可增加新的连接器。在连接器的数据表上双击可查看样例,右击,可以将数据加载到内存中。也可以选择加载虚拟数据集,此时系统会维护一个虚拟集合,当上层请求分页数据时,动态地访问数据库,从而有效提升性能。 61 61
4.5 Hawk简介及基本操作 3.模块管理 系统默认提供两个模块:网页采集器和数据清洗,如图4-99所示,双击即可加载一个新的模块。 第四章 常用数据清洗工具及基本操作 3.模块管理 系统默认提供两个模块:网页采集器和数据清洗,如图4-99所示,双击即可加载一个新的模块。 之前配置好的模块,可以保存为任务,双击可加载一个已有任务,如图4-100所示。 图4-100 加载保存的任务 图4-99 Hawk模块列表 62 62
双击数据集或模块,可查看模块的内容。将数据集拖曳到数据清洗(数据视图的下方第一个图标),可直接对本数据集做数据清洗。 4.5 Hawk简介及基本操作 第四章 常用数据清洗工具及基本操作 4.系统状态管理 在系统状态管理区中,可对加载数据集或模块进行查看和编辑。 右击,可以对数据集进行配置、复制、删除等。也可以将数据集拖曳到下方的图标上,如拖曳到回收站,即可删除该模块,如图4-101所示。 图4-101 数据集状态操作 双击数据集或模块,可查看模块的内容。将数据集拖曳到数据清洗(数据视图的下方第一个图标),可直接对本数据集做数据清洗。 63 63
4.5 Hawk简介及基本操作 4.5.2 Hawk基本操作 1.网页采集器 2.数据清洗 3.保存和导出数据 4.保存任务 第四章 常用数据清洗工具及基本操作 4.5.2 Hawk基本操作 1.网页采集器 2.数据清洗 3.保存和导出数据 4.保存任务 64 64
4.5 Hawk简介及基本操作 4.5.3 Hawk数据清洗实例操作 第四章 常用数据清洗工具及基本操作 4.5.3 Hawk数据清洗实例操作 本节以南京中原地产的二手房信息为例,介绍利用Hawk进行网络爬虫抓取数据和数据清洗的详细步骤。 运行Hawk软件,在模块列表中双击网页采集器图标,加载采集器,然后在最上方的地址栏中输入要采集的目标网址http://nj.centanet. com/ershoufang/?sem=sogou&hmpl=nj6,并单击刷新网页,如图4-112所示。 图4-112 网页采集器 65 65
4.5 Hawk简介及基本操作 此时,下方展示的是获取的HTML文本。原始网站页面如图4-113所示。 第四章 常用数据清洗工具及基本操作 此时,下方展示的是获取的HTML文本。原始网站页面如图4-113所示。 手工设定搜索关键字,以上述页面为例,检索1380万和44172(总价和单价,每次采集时都会有所不同),以此通过DOM树的路径找出整个房源列表的根节点,操作步骤如下: 由于要抓取列表,所以读取模式选择List。输入搜索字符44172,发现能够成功获取XPath,属性名称为“属性0”,单击“添加字段”按钮,即可添加一个属性。类似地,再输入1380,设置属性名称为“属性1”,即可添加另外一个属性,如图4-114所示。 图4-113 原始网页信息 图4-114 设置搜索属性 66 66
4.5 Hawk简介及基本操作 第四章 常用数据清洗工具及基本操作 将所有要抓取的特征字段添加进去,或是“直接单击手气不错”,系统会根据目前的属性推测其他属性,显示初步能抓取到的数据集,如图4-115所示。 图4-115 通过手气不错显示能抓取的数据 此时显示的数据还不完整,只是显示了一页的信息,所以需要做进一步抓取设置,就需要使用数据清洗模块了。 67 67
4.5 Hawk简介及基本操作 第四章 常用数据清洗工具及基本操作 在模块列表中双击数据清洗模块,调出数据清洗设置界面,在数据清洗左侧的搜索栏中搜索“生成区间数”模块,用于设置抓取的网页范围,将该模块拖到右侧上方的栏目中,在右侧栏目中双击“生成区间数”,弹出设置窗口,设置列名为“id”,最大值填写20,生成模式默认为Append,如图4-116所示。 将数字转换为url,搜索“合并多列”模块,拖曳到id列,将原先的数值列变换为一组url,如图4-117所示。 图4-116 生成区间数设置 图4-117 设置合并多列 68 68
4.5 Hawk简介及基本操作 第四章 常用数据清洗工具及基本操作 拖曳“从爬虫转换”模块到当前的url,双击该模块,将刚才的网页采集器的名称,填入爬虫选择栏目中,系统就会转换出爬取的前20条数据,如图4-118所示。 图4-120 提取数字操作 以上就是简单抓取过滤出来的数据,可以看到数据中有出现重复、错误以及列名错误等情形,需要进行清洗操作。 对于那些错误或重复的数据可以通过“删除该列”模块来操作,将“删除该列”模块拖曳到错误或重复的数据列里就可将其删除,如图4-119所示就是经过处理之后的数据。 如果要修改列名,在最上方的列名上直接修改即可。单价列中包含数字和汉字,若想把数字单独提取出来,可以将“提取数字”模块拖曳到该列上,即可提取出所有数字,如图4-120所示。 图4-119 经过删除操作后的数据集 图4-118 显示爬取的前20条数据 69 69
第四章 常用数据清洗工具及基本操作 4.1 Microsoft Excel数据清洗基本操作 4.2 Kettle简介及基本操作 大数据应用人才培养系列教材 第四章 常用数据清洗工具及基本操作 4.1 Microsoft Excel数据清洗基本操作 4.2 Kettle简介及基本操作 4.3 OpenRefine简介及基本操作 4.4 DataWrangler简介及基本操作 4.5 Hawk简介及基本操作 4.6 上机练习与实训 习题
4.6 上机练习与实训 实训题目 使用工具进行数据清洗练习 实训原理 4.6 上机练习与实训 第四章 常用数据清洗工具及基本操作 实训题目 使用工具进行数据清洗练习 实训原理 数据清洗就是利用有关技术如数理统计、数据挖掘或预定义的清理规则将“脏”数据转化为满足数据质量要求的数据。数据清洗的实现方式主要有4种:手工方式、专门工具方式、特定应用域方式和与应用域无关方式。不管哪种方式,大致都由3个阶段组成:数据分析,定义错误类型;搜索,识别错误记录;修正错误。数据清理一般针对具体应用,因而难以归纳统一的方法和步骤,但是根据数据不同可以给出相应的数据清理方法。 一般来说,数据清理是将数据库精简以除去重复记录,并使剩余部分转换成标准可接收格式的过程。数据清理标准模型是将数据输入数据清理处理器,通过一系列步骤“清理”数据,然后以期望的格式输出清理过的数据。数据清理从数据的准确性、完整性、一致性、唯一性、适时性、有效性几个方面,处理数据的丢失值、越界值、不一致代码、重复数据等问题。 71 71
4.6 上机练习与实训 第四章 常用数据清洗工具及基本操作 实训内容 现有一家企业的招聘职位信息,约有5000条数据,如图4-21所示。现有客户提出需要了解数据分析师岗位情况,包括岗位分布和特点、能力要求、工资和薪酬等。由于数据集没有经过处理,所以表中的数据还很不规范,如含有大量数据重复、缺失、单列数据粒度过大等问题,因此,在进行数据分析前,需要进行数据清洗操作,以使数据规范化。本次数据清洗实验将使用DataWrangler工具来进行。 实训指导 按照前述数据清洗的3个阶段,首先预览数据集,通过观察发现数据集主要存在数据缺失、数据不一致、存在“脏”数据和数据不规范等问题,详见4.1.2节。 72 72
第四章 常用数据清洗工具及基本操作 4.1 Microsoft Excel数据清洗基本操作 4.2 Kettle简介及基本操作 大数据应用人才培养系列教材 第四章 常用数据清洗工具及基本操作 4.1 Microsoft Excel数据清洗基本操作 4.2 Kettle简介及基本操作 4.3 OpenRefine简介及基本操作 4.4 DataWrangler简介及基本操作 4.5 Hawk简介及基本操作 4.6 上机练习与实训 习题
习题: 1. 对招聘信息实验数据集,分别用Excel、Kettle、OpenRefine、DataWrangler等工具进行清洗处理练习。 2. 对几种工具进行比较分析,指出各自的优势和不足。 3. 利用Hawk就某一主题从网页中抓取数据,并做数据清洗操作。
AIRack人工智能实验平台 ——一站式的人工智能实验平台 DeepRack深度学习一体机 ——开箱即用的AI科研平台 BDRack大数据实验平台——一站式的大数据实训平台
云创公众号推荐 刘鹏看未来 云计算头条 中国大数据 深度学习世界 云创大数据订阅号 云创大数据服务号 高校大数据与人工智能 微信号:lpoutlook 云计算头条 微信号:chinacloudnj 中国大数据 微信号:cstorbigdata 深度学习世界 微信号:dl-world 云创大数据订阅号 微信号:cStor_cn 云创大数据服务号 微信号:cstorfw 高校大数据与人工智能 微信号:data_AI
手机APP推荐 我的PM2.5 随时随地准确 查看身边的 PM2.5值 同声译 支持26种语言 互译的实时翻 译软件 我的南京 云创大数据为路 况大数据应用提 供技术支持 科技头条 汇聚前沿资讯 的科技情报站
网站推荐 万物云 智能硬件大数据免费托管平台 环境云 环境大数据开放共享平台
感谢聆听