举个栗子!Tableau 技巧(201):在 Prep 中调用 Python 处理复杂数据

published: 2021-08-27

Tableau Prep 正在被越来越多的数据粉使用,作为专业的数据准备工具,Prep 提供了常用的数据处理功能,例如分组、转置、计算等,还提供了对 R 语言和 Python 脚本的支持。

不过,有一些复杂的场景,比如:需要计算相关系数,Tableau 本身提供的相关系数计算方法 CORR() 只能一次计算两个字段的相关系数,如果遇到需要建立相关系数矩阵的情况,处理起来就比较麻烦。

这种情况,可以通过 Prep 调用 Python 脚本来加速数据清理,实现对多个字段计算皮尔逊相关系数( Pearson correlation coefficient,更多信息可自行了解)。

如何在 Prep 调用 Python 脚本?今天的🌰学起来!

本期《举个栗子》,我们要给大家分享的 Tableau 技巧是:在 Prep 中调用 Python 处理复杂数据。

为方便学习,栗子使用 Tableau 自带的“示例-超市”数据。掌握栗子方法后,数据粉可尝试使用自己的数据源。

具体步骤如下:

1.安装 Python

首先,安装 Python 。因为 TabPy 暂不支持最新版本的 Python,所以安装 Python3.7 即可(安装步骤不赘述,教程可自行上网搜索)。

安装 TabPy(Python 的扩展包),用于 Tableau 与 Python 进行数据交互。另外,由于数据是以 pandas.DataFrame 格式存储的,所以需要同时安装 pandas。

此时,可以使用浏览器访问 http://localhost:9004/,会出现 TabPy 的欢迎页面。

2.编写脚本

接着,需要编写计算相关系数的 Python 脚本,以供 Tableau Prep 调用。

➤ 脚本首先必须引入 pandas ,才能识别 Tableau Prep 传递的数据。

➤ 创建 get_output_schema() 方法,Tableau Prep 需要该访问指明返回的数据对象格式。

prep_string() 和 prep_decimal() 都是 Prep 支持的数据类型的名称,直接写即可。附 Prep 的数据类型如下:

➤ 创建计算相关系数的方法,input 是 prepy 调用该方法时传入的数据对象,即该脚本步骤所传入的数据表。

编写完成后,保存文件名为 tabpy.py。

3.Prep 调用 Python

然后,打开 Tableau Prep,单击顶部菜单栏“帮助”,下拉菜单选择:设置和性能-管理分析扩展程序连接。

键入第二步建立的 TabPy 服务器信息,分析程序类型选择 Tableau Python(TabPy) 服务器,服务器填默认:Localhost, 端口默认:9004,用户名和密码没有设置的可以不用填写。

4.构建数据矩阵

最后,在 Prep 中建立流程。

使用“示例-超市”数据集中的订单数据,取用“销售额”、“数量”、“折扣”、“利润”四个度量字段。

新建一个脚本步骤:单击数据表右侧 图片 按钮,下拉菜单选择:脚本。

连接类型选择:TableuPython(TabPy)服务器,选择第三步保存的 tabpy.py 文件,并填写 get_corr 方法名。

完成后,就可以在右侧窗口看到销售额等四个字段的相关系数矩阵。

今天的 Tableau 技巧,你 Get 到了吗?赶快试试看吧!