企业在进行运营活动时,会收集大量的数据,包括销售数据、客户数据、市场数据等。这些数据可能来自不同的渠道和系统,格式和质量也各不相同。因此,为了能够准确分析和利用这些数据,需要对其进行清洗和整理。本章将通过一个实际案例介绍如何对运营数据进行清洗。
12.1 案例背景
某知名零售连锁餐厅在全国已有1000家直营店,通过不断迭代升级,从餐厅环境、饭菜口味到餐厅服务等顾客所有用餐体验的每一个细节都不断更新。小李是一名数据分析师,在这家大型零售连锁餐厅的总部工作。
今天部门经理想要分析过去3年公司的产品销售额和利润。推荐他使用Tableau来完成该工作,并且希望他立即着手进行。小李在开始收集需要的所有数据时,注意到,有人已经通过其他方式为每个区域收集和跟踪过数据。
最近3年的订单数据已经初步进行整理,分别位于“东北地区订单明细.csv”、“华北地区订单明细.xlsx”、“华东地区订单明细.xlsx”、“中南地区订单明细.xlsx”4个文件中,西南地区的订单明细位于“西南地区订单明细”文件夹中,西北地区的订单明细存储在MySQL数据库中,此外,产品的退单数据在“产品退单原因.xlsx”文件中。但是最近3年的订单数据中还存在少量的垃圾数据,需要先执行数据清理工作,然后才能开始在Tableau中分析数据。
在与同事交流后,发现Tableau有一款名为Tableau Prep数据处理的新产品,该产品可帮助我们完成纷繁复杂的数据清理工作。
12.2 连接订单数据
12.2.1 连接Excel格式数据
由于“华北地区订单明细.xlsx”、“华东地区订单明细.xlsx”、“中南地区订单明细.xlsx”、“产品退单原因.xlsx”4个文件都是单一的Excel格式的表文件,因此可以一次性选择文件并将它们添加到流程。
点击添加按钮下的“到文件”选项下的“Microsoft Excel”连接,导航到文件的存储目录,选择上述4个Excel文件,然后点击“打开”按钮,就可以将它们导入到“流程”窗格,如图12-1所示。
图12-1 添加Excel格式数据
12.2.2 连接文件夹数据
由于最近3年西南地区的订单明细都是Excel格式的数据文件,而且都存储在同一个文件夹下,因此可以批量导入。
在“连接”窗格上,单击“添加连接”按钮,选择“到文件”选项下的“Microsoft Excel”连接。导航到文件的目录,选择任意一个文件,例如“西南地区订单明细_2020.xlsx”文件,并单击“打开”按钮以将其添加到流程。
西南地区的订单有3个文件,虽然可以单独添加每个文件,但是不能将3个文件合并到一个输入步骤中,因此在“输入”窗格中单击“合并多个表”选项,会看到一个文件的“搜索范围”选项,以及“文件筛选器”和“工作表筛选器”选项,如图12-2所示。
我们可以根据需要设置“文件筛选器”和“工作表筛选器”,这里我们只要设置“文件筛选器”即可,在“文件名”选项下选择“匹配”,匹配模式为“西南地区订单明细*”,然后单击“应用”添加相关订单文件,从而将这些文件中的数据添加到输入步骤。
图12-2 添加文件夹数据
12.2.3 连接CSV文件数据
由于“东北地区订单明细.csv”文件是文本文件,点击添加按钮下的“到文件”选项下的“文本文件”连接,导航到文件的存储目录,选择上述文件,然后点击“打开”按钮,就可以将它们导入到“流程”窗格,如图12-3所示。
图12-3 添加CSV格式数据
12.2.4 连接数据库数据
由于西北地区的订单明细存储在MySQL数据库中,点击添加按钮下的“到服务器”选项下的“MySQL”连接,输入数据库的相关登录信息,导航到订单数据的存储位置,选择上述文件,然后拖放“西北地区订单明细”表到“流程”窗格,如图12-4所示。
图12-4 添加MySQL数据
12.3 清洗异常数据
12.3.1 查看订单数据
在执行数据清洗操作之前,需要先检查一下这些文件,看看是否能找出数据中存在的问题。在“流程”窗格中,单击“华东地区订单明细”输入步骤将其选定,在“输入”窗格中,发现订单的发货日期在字段中已针对年、月、日拆分开,如图12-5所示。
图12-5 浏览“华东地区订单明细”
选择“华北地区订单明细”输入步骤,此文件中的字段看起来与其他文件完全一致,但是“利润额”全部都包括了货币代码,也需要修复该问题,如图12-6所示。
图12-6 浏览“华北地区订单明细”
选择“中南地区订单明细”输入步骤,此文件中“省份”字段使用的是各个省份的简称,其他文件则使用完整拼写,因此需要稍后修复该问题,如图12-7所示。
图12-7 浏览“中南地区订单明细”
在Tableau Prep中,检查和清理数据是一个反复的过程,确定了要处理的数据集之后,下一步是检查数据,并通过对数据应用各种清理、调整和合并操作来对其进行操作。具体是通过向流程中添加步骤来应用这些操作。
12.3.2 合并年月日字段
首先向“华东地区订单明细”输入步骤中添加一个清理步骤。在“流程”窗格中,选择“华东地区”,单击加号图标,向流程中添加“清理步骤”。
在工具栏中,单击“创建计算字段”,将“发货年”、“发货月”和“发货日”3个字段合并为一个格式为“YYYY/MM/DD”的字段,新的计算字段命名为“发货日期”。然后在计算编辑器中输入计算公式,并单击“保存”按钮,具体公式为:MAKEDATE([发货年],[发货月],[发货日]),如图12-8所示。
图12-8 日期字段处理
既然有了新的发货日期字段,那么需要移除原有字段,在“配置”窗格右上角的搜索框中,输入“发货”,Tableau Prep将在视图中快速查找名称中含有“发货”关键字的所有字段。选择“发货年”、“发货月”和“发货日”3个字段,在“更多选项”的下拉框中选择“移除”选项来删除它们,如图12-9所示。
图12-9 移除不需要字段
12.3.3 清理数据货币单位
在查看“华北地区订单明细”文件的字段时,发现随利润额数字一起包括了¥货币代码,并且Tableau Prep已将这些字段值解读为字符串,在“流程”窗格中,选择“华北地区”,单击加号图标,并选择添加“清理步骤”。
选择“利润额”字段,单击“更多选项” 菜单,有一个名为“清理”的菜单选项,以及该选项下有一个用于移除字母的选项,如图12-10所示。
图12-10 字段中移除字母
清理字母选项立即从每个字段中移除货币代码,现在只需要将数据类型从字符串更改为数值,单击数据类型,并从下拉列表中选择“数字(小数)”,如图12-11所示。
图12-11 更改字段类型
12.3.4 补全字段内容简写
在查看“中南地区订单明细”文件时,“省份”字段使用了缩写,而不是完整拼写,为了将此文件与其他文件合并,需要纠正此问题。
在“流程”窗格中,选择“中南地区”,单击加号图标,并选择添加“清理步骤”。由于“省份”字段只有6个唯一的值,可以手动更改每个值。单击字段的“更多选项”菜单,并看到一个名为“将值分组”的选项。选择该选项时,将看到若干选项:手动选择、发音、常用字符、拼写。
需要使用“手动选择”选项。选择“省份”字段,单击下拉箭头,并选择“将值分组”>“手动选择”,如图12-12所示。
图12-12 手动修改字段
“按手动选择对值进行分组”编辑器将打开,左侧的列显示当前字段值,右侧的列显示可映射到左侧字段的字段。例如,在左侧窗格编辑器中,双击“粤”以突出显示,并修改为“广东”,然后按Enter以添加更改,这样为新值“广东”创建了一个映射值,并自动将原值“粤”映射到该值,重复上述步骤,将每个省份都映射到其名称的完整拼写,然后单击“完成”按钮,如图12-13所示。
图12-13 分组和替换
12.4 合并清洗后数据
12.4.1 创建数据并集
既然清理了所有文件,那么就已最终准备好将它们合并在一起。由于所有文件都有类似的字段,因此想要将文件合并在一起,并将每个文件中的行添加到单个表中,如图12-14所示。
图12-14 添加并集数据
12.4.2 显示不匹配字段
Tableau Prep自动匹配了具有相同名称和类型的字段。流程中步骤的颜色用在并集配置中,指明字段来自于何处,同时出现在每个字段顶部的色带中,显示该字段是否存在于该表。
此外,新增了2个名为“Table Names”(表名称)和“File Paths”(文件路径)的新字段,列出了并集中所有行的来源表和路径,不匹配字段的列表也显示在摘要窗格中,可以在“并集结果”窗格中选中“仅显示不匹配字段”复选框,如图12-15所示。
图12-15 仅显示不匹配字段
12.5 产品退货分析
12.5.1 联接退货数据
... ...
12.5.2 清理联接结果
... ...
12.6 输出清洗结果
... ...