主要根据Coursera课程Introduction to Tableau总结。该课程提供的是Tableau Public(免费网页版)的教程,但以下的笔记中的截图均为Tableau Desktop(付费桌面版)2024年3月版本的界面。本人精简了课程的内容,仅选取和Tableau操作相关的内容,适合已经有一定数据分析基础的同学。

Tableau Desktop虽然一般是付费软件,但对于edu后缀的学生邮箱有可能有学生优惠,可以在毕业之前免费使用,是学习的好机会。如果没有Tableau Desktop,用Tableau Public也可以实现很多基本的功能。

注意:Tableau主要用于数据可视化(data visualization),不适合处理原始数据(raw data)。你需要在Excel或其他工具中先清理好数据,确保格式统一、数据尽可能精确,再导入Tableau中进行处理。

1. 导入Excel数据

登入软件后,开始界面应当如下。点击左侧的“Microsoft Excel”按钮,上传想要分析的Excel文件。

本文中使用的数据来自于Tableau官网的Sample dataset,可以通过以下链接下载:https://public.tableau.com/app/learn/sample-data

我在这里使用的是下列中的第一个,Superstore Sales的数据集

上传后,会出现以下界面。左侧的Sheets下面的“orders”、“people”和“returns”对应的是Excel文件中不同的页面。

我们可以选中其中一个页面,比如orders,将其拖拽到右侧的空白处。拖拽完毕后,会出现以下界面,左侧展示各列数据的类型,右侧展示全部的原始数据。

你可以根据自己的需求和喜好隐藏左侧栏或者整个下侧栏,或者拖拽调整其大小。

如果想取消展示“orders”的数据的话,把红框处的“orders”拖拽回左侧原来的位置即可。右侧的页面会重新变空白,这时你可以拖拽其他的数据到右侧空白处,比如“people”或者“returns”进行展示和分析。

2. 重命名数据标题

在分析数据之前,我们需要确保数据的标题可以精确反映数据的内容,不要模棱两可。

以刚才的Superstore Sales的数据集为例,将“people”拖拽到右侧界面后,你会看到有一类数据被命名为“person”。这相当不明确,单独拿出来看很难知道这里的“person”指的到底是员工、顾客还是其他的人。如果分析的数据多了,这很可能会造成混淆和混乱。

根据旁边的“region”栏,我们可以推测出这四个人分别是不同销售区域的区域经理(regional manager)。

我们点击Person栏右上方的灰色小方块,在下拉菜单中选择“Rename”进行重命名,将这一栏命名为“Regional Manager”,按回车确认。

你也可以双击标题进行重命名,效果是一样的。

重命名完后,你还可以拖拽这一栏的右侧调整栏的尺寸,方便展示完整的标题。

更改后的标题会反映在所有用到这组数据的地方。

注意:如果将People页面从右侧去除,我们进行的重命名就会消失,再拖拽回来之后这一栏仍然会是“Person”而不是“Regional Manager”。只要将数据从右侧界面挪走,所有的更改就会全部归零。

3. 隐藏数据栏

我们可以选择隐藏一些跟当前分析无关的数据。如果之后发现需要,也可以取消隐藏。

比如在Order界面,Row ID仅代表行数,跟其他内容无关,因此我们可以隐藏这组数据,在分析的时候暂且无视它。

点击Row ID栏右上角的灰色小方块,在下拉菜单中选择“Hide”。

选中之后,这一栏就同时从左右两侧都消失了。

取消隐藏数据栏

如果想取消隐藏这一栏,可以点击右侧的小齿轮,在下拉菜单中选择“Show hidden fields”。

Row ID会重新在左右两侧出现,但右侧的颜色会是浅灰色。

如果想完全取消隐藏,需要点击Row ID栏右上角的小方块,选择“Unhide”,这一栏就会恢复正常。

4. 新建工作簿

目前我们已经通过导入数据创建了一个工作簿(workbook)。如果想要导入其他数据,可以创建一个新的工作簿。

首先,我们需要关闭当前的工作簿。点击左上角的“File”,在下拉菜单中选择“Close”。

根据你的需要,选择是否需要保存目前工作簿的进度,以及文件保存的位置。

保存或放弃保存后,新的工作簿应该会是这样。点击Connect to Data导入新的数据。在这里我们导入的是Coursera课程提供的“Employee travel”数据集。你可以选择免费旁听Coursera课程,并在
“Reading: Pivot Fields”页面获取这个数据集。

在文件格式中选择“Microsoft Excel”。

你应该会来到以下界面,这也就代表数据导入成功了。

5. 合并多列数据(Pivot fields)

在有些情况,表格中不同的列数统计的是同类的内容,整合到一起记录会更加方便。

比如我们刚才导入的employee travel的数据集中,拖拽第一个sheet到右侧空白处,会得到以下数据,显示不同员工最想去的国家。

其中,这三列内容都代表的是他们最想去的国家,排名不分先后,只是单纯记录写下的顺序。如果我们想知道员工最想去的前几个国家,需要把三列整合在一起,同时考虑三列中所有的内容。

想合并三列,我们需要选中这三列,点击右上角的小灰块,在下拉菜单中选择“Pivot”。

整合后,原本的三列会消失,取而代之的是以下多出来的两列:pivot field names和pivot field values,分别是这些国家原本所在的列的名字和国家的值。每个员工的名字在这时会占三列,而不是之前的一列,每列列出一个他想去的国家。

Pivot field names在这里属于无用信息,因此我们可以选择将其隐藏。

我们也可以将Pivot field values栏进行重命名,改为Country。

6. 更改数据类型

Tableau会自动将所有的数据归类为离散数据(discrete)和连续数据(continuous)两类。

有一定统计学基础的朋友应该记得,统计学里的离散数据指的是一个个单独的数值,中间不存在连续,比如人数,不可能存在半个人的情况,在图像上可以当做一个个单独的点连成的虚线。而连续数据则指的是可以存在连续的数值,比如时间,可以被分割成无限个小单位,在图像上可以当做一条连续的线处理。

和统计学不同,在Tableau中文字类的数据也会被当做离散数据,比如城市名。离散数据会被以蓝色标识,而连续数据则以绿色。

Tableau中比较基本的数据类型如下:

  • Text (string values):文字、字符
  • Integer/Float Value:数字、数值
  • Date values:日期
  • Date & time values:日期&时间
  • Boolean Values:true or false
  • Geographic values:地址

以我们使用的第一个数据集Superstore Sales为例,点击代表数据类型的小图标,即可更改数据的类型。假如Tableau未能成功识别这列邮编的数据应该属于Geographic value,而将其列为普通的数字,我们可以在下拉菜单中选择“Geographic role”,并在弹出的菜单中选择对应的“ZIP code/Postcode”。

注意:一定要确保数据的类型正确。属于数值的数据应被当做数值而不是字符处理,否则无法进行一些计算处理,而电话号码、邮编、账号等由数字组成的数据应该被当做字符而不是数值处理。

如果数据的类型明显不对,例如quantity被列为“true or false”,会显示为“null”。

7. 分割数据为多列

如想要将一列中的数据分割为多列,可以使用“calculated field”功能,采用公式生成新的列。使用这种方法的时候,原本的那列并不会消失,只是会多添加新的列。

可在Tableau官网查到所有的Tableau公式:https://help.tableau.com/current/pro/desktop/en-us/functions_all_categories.htm

LEFT公式

采用以下的公式:LEFT([Order ID], 2),代表的是生成的新的列中只保留Order ID这一栏从左起的前两个字符。

以Superstore Sales的数据为例,我们可以将订单号的前两位代表国家的字母拆分出来,增加更多有意义的数据。点击右上角小灰块,在下拉菜单中选择“create calculated field”。

在弹出的窗口中输入以下的公式,并点击OK。

原本的Order ID栏右侧就会出现出计算后的结果,且系统自动识别这类数据是文字。你可以根据自己的需求更改数据的类型。

SPLIT公式

采用以下的公式:SPLIT([Customer ID], " ", 2),可以将客户的账号中的第二部分分割出来。其中," "代表原数据中的分隔符是空格,2代表的是这组数据中的第二部分。

以Superstore Sales的数据为例,如果我们想把订单号中的年份单独拆成一列,可以利用SPLIT公式,分割符在此选择为横杠,年份是订单号的第二部分,因此写2。

选择OK后,即可看到年份被单独拆成了一列。

YEAR, MONTH & DAY公式

SPLIT公式适用于文字、字符类数据,用于拆分其他类型的数据(如日期)会导致报错null。

如果我们想拆分出一个完整日期中的年份、月份或者日子,可以分别使用YEAR、MONTH或DAY公式进行计算。这三个公式都非常直接,格式如下:

点击OK后,年份就会被单独拆成一栏,且被默认视为数值。

Split功能

比较新版的Tableau内置了分割数据的功能。点击订单号栏右上角的小灰块,在下拉菜单中选择“split”。

系统就会自动根据原数据中的分隔符在表格的末端插入分割后的新数据,无需使用公式、操作多次,非常便捷。但并不是每栏都适用于这个功能,系统会自动为某些适合分割的栏展示此功能,对于数值、日期之类的数据就不会开放此功能。

8. 合并多个表格

横向合并(Join)

合并两个表格以增加更多的表头列数。需要保证两个表格中至少有一列共享的内容,如以下例子中 的ID。

合并前:

合并后:

横向合并有四种形式:

  • Inner Join:只合并两个表格中都存在的行,只有一个表中存在的行会被自动过滤掉。
  • Left Join:以左边的表格为基准进行合并,只展示左边的表格中有的行。如果右边的表格中没有对应的内容,该格会显示null。
  • Right Join:以右边的表格为基准进行合并,只展示右边表格中有的行。如果左边的表格中没有对应的内容,该格会显示null。
  • Full Outer Join:合并两个表格中所有的行,并将空缺的内容列为null。

在Coursera课程中的“Reading: Joins in Tableau”部分,可以下载以下练习用到的“Employees”表格。在这个练习中,我们只需要用到Pay Rates和Positions两页。

通过点击右侧的窗口按钮,你可以预览这些表格中的内容。

通过预览,我们可以看到,Pay Rates中的ID是5、6、7、8,而Positions中的ID是5、6、8、9,并不完全匹配。

将Pay Rates拖拽到右侧的空白处,双击Pay Rate的标题后,应该会展示以下界面。将Positions拖拽到Pay Rates的标题旁边,即可横向合并两个表格。

点击维恩图图标,可以选择合并的方式,默认的方式是Inner Join,只展示两个表格中内容都齐全的行。

当我们更改了合并类型后,信息不全的行就会出现null的格子。

注意,在合并后,ID栏会被展示两次。我们可以选择将其中一个进行隐藏,避免冗余信息。

纵向合并(Union)

合并更多的表格以延长表格的行数。需要确保两个表格表头的名字和数量相同。

在这个练习中,我们会用到Employees文档中的Pay Rates和Pay Rates2两个表格。

点击预览可以看到,这两个表格中列出来的人不同,但是记载的都是相同的内容:员工名字、时薪和ID,只是在表头的命名上有细微差别。

想要纵向合并两个表格,需要先将Pay Rate拖入右侧空白处,然后将Pay Rate 2拖拽到Pay Rate正下方,即可自动合并。

合并后的结果应当如下。由于Tableau并不能识别Pay Rate和Hourly Rate指代的同一个东西,这两列并没有合并成功。在这时,如果想重命名,系统会提示不能重复命名不同的两列。

这时,我们可以通过右上角的小灰块选择“Merge Mismatched Fields”

两列的内容即可合并,然后我们可以将其统一重命名。

分析联系(Relationship)

类似于横向合并,但更加智能。

以下例子使用的是Coursera课程中“Readings: Relationship in Tableau”中的数据集Pets and Fruits,统计人们最喜欢的水果和宠物。

通过预览我们可以看到,1号喜欢的水果有四个,动物有三个,2号喜欢的水果有两个,动物也有两个。

如果单纯横向合并这两个表格的话,会造成很多项的重复,每个水果都会分别对应两个动物。

想使用智能合并,先把Fruits拖拽到右侧空白处,再将Pets拖拽到Fruits标题的旁边。

两个表格即可智能合并,展现出以下的界面。虽然从视觉上看不太出来两个表格已经合并了,但是这两个表格已经可以共同生成数据可视化的图像了。

9. 合并不同文档中的表格

以上介绍了如何合并同一个文档中不同的表格,接下来介绍的是如何合并不同文档中的表格。

以下的练习中使用的是Coursera课程中的“Reading: Cross database joins”中的两个excel文档“Data World Health”和“Pharmaceuticals”。

首先将Data World Health文档导入Tableau,然后点击Connections栏右侧的“Add”按钮,然后选择Microsoft Excel作为上传的文档的格式,极了上传另一个文档Pharmaceuticals。

两个文档都上传成功后的结果应当如下。单击左侧Connections栏下方的数据集名称,就会在Sheets栏展示对应的表格。比如说,点击Data World Health就会展示“Data”和“Definition and Source”两页,而点击Pharmaceuticals就会展示“Sheet1”。

Data World Health中的“Data”页和Pharmaceuticals中的“Sheet1”页中都包括年份和三位的国家代码,适合进行横向合并扩充更多的列数。首先按照一般的横向合并的方法,将Data页拖拽至右侧空白处,然后双击Data标题,应该会展示出以下界面。

然后改选中Pharmaceuticals的数据集,将其下的Sheet1拖拽到Data的右侧。

由于我们未能提前统一两张表格中表头的名字,因此在这里需要手动选择互相匹配的两行。

Data页中代表国家代码的表头是“Country Code”,Sheet1中的则是“Location”,分别在左右两侧选中并匹配后,即可在下方展现出合并后的数据。

但注意,目前的情况中只有国家被作为匹配基准,因此每个国家会对应该国家在所有年份的数据,匹配后的结果会莫名其妙多出很多行。

要想得到精确的匹配结果,需要把国家和年份都选中为匹配项。

合并完成后,可以将重复和冗余内容进行隐藏。

10. 提取数据

为了提高数据分析的效率,使可视化的生成更加迅速,Tableau会自动运用提取数据(Extract)功能。

当我们点击Connect上传Excel文件的时候,我们其实生成了Tableau和文档的实时连接。如果在文档中增减内容,Tableau中的内容也会自动跟着改变。而使用提取数据的功能,其实就是将当前的数据进行锁定,不再实时进行连接和更新,同时提高数据处理的速度。

在Tableau Public中,所有导入的数据都是非实时的,只有在Tableau Desktop中才有实时更新数据的功能。

以上笔记基本覆盖本Coursera课程的内容。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐