数据分析之“如何准备”系列(经常更新系列)
说明
本系列来自:https://preppindata.blogspot.com/p/how-toprep-index.html ,是少量文章的摘录和翻译。
这个每周一更系列是专为重度使用tableau Prep和desktop用户准备的,通过阅读这些文章,可以深入掌握prep的使用。
建议:初学者先看官方视频,并跟着练习。然后再使用这个网站的每周一挑战,进行实践锻炼即可很快的掌握用Prep进行数据规整。
本博客摘译的文章:
- 如何计划你的prep
- 如何规整你的数据shape your data
- Not need data Prep
如何计划你的prep
阶段1: 了解你的数据
不了解数据,就没法得到想要的分析结果。对于小型的数据集,可以这么做:
- 列,行,交叉表是如何组织结构的
- header标题(列名)和fields字段是否是分析时所需要的。
- 每个field的数据类型type
- 一行数据row代表的意义是什么?比如销售订单表,一行就是一张订单。
- 空值,无意义的值。
可以用笔快速画出目录列和value,来方便理解。
阶段2 希望得到的结果desired state, 我们想要的用于分析的数据表的结构是什么?
大多数分析工具,都要求把数据放到一个单独的表中,所以分析的数据必须集合在一张表内。
同样画图时理解数据的好办法。
阶段3 从键盘到desired State
这个阶段不需要电脑,而是你的大脑
在了解原始数据和明确desired State后,下一步就是对数据的规整。clean, pivot, join and aggregate。
列出你需要做的规整,无需太全面,此时还无需建立工作流,而是思考下吗的问题:
- 太多,过滤掉无用字段/列。
- 太少,可能需要其他的数据集。
- 是否需要变更列/字段的名字。
- 需要计算?如果需要形成新的列,那么就需要计算。使用准备工具来处理,或分析工具来计算。
Rows
- Aggregate the data to be less granular.太多?过滤无用的,聚合不是很颗粒的数据。
- 太少?列转行,转置pivot。或者增加其他数据集(Unioning, 或join)
- Clean records? Clumped data? 多余的标点符号? 需要处理这些情况,当然也可能在其他阶段处理。
- 空白值,它的存在是否必要?过滤掉,或者用其他值替代。
- Join together to add more columns
- Union together to add more rows
其他问题:
- 数据类型变更
- 重命名字段。
阶段4 建立希望的数据集。
With Tableau Prep, you can quickly change the order of the transitions or add forgotten ones to go from the original data to the Desired Stat。
使用Tableau Prep可以把上面的步骤在电脑上实现。从原始数据到输出结果的顺序也可能变化。
如何shape Data
观察
比如拿到这个表:
如何观察?
首先,按照维度和度量来区分列。
- 深蓝色的是维度列名称
- 浅蓝的是维度列的值。
- 深绿色的是度量列名称。
- 浅绿色的是度量值
⚠️度量值一定是数值型数据。维度值可以是字符串,日期时间。
如何使用tableau来分析表
tableau会把第一行数据当作列名。其余行会作为列的值。
tableau会把列划分到维度和度量。 Dimensions (aspect to split the data up by) , Measures (the data fields to analyse).
度量列的数据类型type一定是数值型的。
上图的例子
上图作为原始数据表,显然需要进行规整才能用desktop进行分析。
我们已经知道什么作为维度,什么作为度量。
⚠️tableau希望,行多多的,列少少的。
👆表的第一行日期有6个,作为列的话,显然不合适。因此要转置:
第一步:原表的6个日期列-转->行,组成2个新列Names+value
第二步:原表Measure列下有2个值,N行--转-->2列: Sales和Profit.,值使用Values.
总结
掌握一个数据集的关键是重构结果,这比分析数据要简单。表格不总是越长越好,也不总是越宽越好,根据目标来重构,关键点:
- 每个维度有一个单独的数据字段,它的值是单一的数据类型。
- 日期使用一个单独的列,不要每个周/月/年都分到一个单独的列。(如上面把6个日期列,合并成1个日期列)
- 每个度量都是一个列。( 如上面的Sales, Profit都是单独的列。)
Not need data prep
这篇文章是将,desktop在prep推出前,增加了简单的数据规整,比如Pivot插件,join和union操作。
因此有些情况可以直接使用desktop,下面是各类情况的使用选择:
对于简单的数据集:simple Joins
直接用desktop可以更灵活的改变join条件和类型。
对于复杂数据集,可能有更多的join和聚合计算。所以就可以使用Prep了
Union
2个软件都可以用union
⚠️如果需要数据清洗,比如有Null值,或者有不同的数据结构(列名不一样),这些情况都不能直接union, 必须先清理,所以用Prep。
(想深入了解的可以参考https://preppindata.blogspot.com/2019/10/how-tounion.html, 文末尾有几个关于union的挑战练习,量大管饱😄)
Pivot转置
desktop限制转置次数,只能有1次。
规整和清洗流程的可视化:文档还是图标流
毫无疑问,图标流+简单的文字说明更方便其他同事理解,也方便很长一度时间后的回顾。
文档也可以,但需要更多的文字说明,甚至要截图。