了解最常用的字符串、数字、日期、逻辑和聚合的Tableau函数。
扫码关注《Python学研大本营》,加入读者群,分享更多精彩
Tableau函数为商业智能开发人员提供了额外的能力,以推动复杂的分析和执行数学计算。它被用来增强字符串、数字、日期和地理数据字段。
我们将了解到商业智能测试和开发中最常用的10个Tableau函数。这些函数将帮助你了解Tableau如何不仅仅是一个拖放的花哨工具。
MIN和MAX
MAX函数将返回两个参数中的最高值。它也可以应用于数据字段,如下图所示。
MAX([Sales],[Profit])
例子:
MAX(10,17) = 17
对于MIN,情况正好相反。该函数将返回两个参数中的最低值。参数可以是数据字段或整数。
MIN([Sales],[Profit])
例子:
MIN(14,17) = 14
REPLACE
REPLACE函数可以应用于字符串数据域和字符串。它需要三个参数:
-
string:可以是一个字符串数据字段或字符串。
-
substring:是你想改变的单词或字母。
-
replacement:是一个将替换子串的字符串。
REPLACE(string, substring, replacement)
例子:
REPLACE("Abid Ali", "Ali", "Awan") = "Abid Awan"
DATEDIFF
它用于查找两个日期字段之间的差异。你可以提取周、日、月和年的差异。
该函数需要4个参数。
-
date_part:是一个日期单位,用于返回两个日期之间的差异。
-
date1和date2:是日期字段。
-
start_of_week:可以是星期一、星期日或星期二。这完全取决于你的要求。
DATEDIFF(date_part, date1, date2, [start_of_week])
例子:
DATEDIFF('week', #2019-10-22#, #2019-10-24#, 'monday')= 1
DATENAME和DATEPART
DATENAME用于返回日期数据字段字符串中的date_part。我们可以提取一个日期的日、年、周、月。
-
date_part: 是应用在日期上的一个日期单位。
-
date:是一个日期字段或字符串。
-
start_of_week:一天被认为是一周的第一天。
DATENAME(date_part, date, [start_of_week])
例子:
DATENAME('month', #2020-03-25#) = "March"
DATEPART不是以字符串形式返回月份的名称,而是以整数的形式从日期中提取日期部分。我们可以用它来进行复杂的计算。
DATEPART(date_part, date, [start_of_week])
例子:
DATEPART('month', #2020-03-25#) = 3
类型转换(Type Conversion)
这是Tableau中最常用的函数,我用它来转换字符串到日期,整数到字符串,字符串到浮点数,以及日期解析。
下面是类型转换函数的列表。
-
DATE(expression)
-
DATETIME(expression)
-
DATEPARSE(format, string)
-
FLOAT(expression)
-
INT(expression)
-
STR(expression)
IF 和 ELSE
Tableau 有简单的条件函数。你可以像Python一样执行一个If else语句。只要确保在语句的结尾处加上 **"END"**就可以了。
我使用 IF & ELSE 语句来创建类别和绘制时间序列图。
IF <expr> THEN <then> ELSE <else> END
例子:
If [Profit] > 0 THEN 'Profitable' ELSE 'Loss' END
AND和OR
对于高级逻辑函数,你也可以添加AND和OR命令来扩展表达式。
IF <expr1> AND <expr2> THEN <then> END
例子:
IF (ATTR([Market]) = "South Asia" AND SUM([Sales]) > [Emerging Threshold] )THEN "Well Performing"
CASE
与IF & ELSE语句类似,你可以使用CASE来创建逻辑函数。你可以把它应用于一个数据字段,并根据表达式创建多个类别。
CASE <expression> WHEN <value1> THEN <return1> WHEN <value2> THEN <return2> ... ELSE <default return> END
例子: 下面的脚本用于将 "Language"字符串字段转换成整数。如果值是English,它将返回1,Urdu返回2,其他都返回3。
CASE [Language] WHEN 'English' THEN 1 WHEN 'Urdu' THEN 2 ELSE 3 END
LOOKUP
LOOKUP用于在数据集中创建偏移量。我主要使用这个函数来创建时间序列预测和分析。
它需要一个数据字段和整数形式的偏移参数。
LOOKUP(expression, [offset])
例子: 通过使用下面的命令,我们将Profit抵消了2,现在,我们可以看到未来两个季度的销售价值。
LOOKUP(SUM([Profit]), 2)
TabPy
TabPy允许用户在Tableau中运行Python脚本。你可以使用pip install tabpy
来安装它,并通过在终端输入tabpy
来运行服务器。通过跟随TabyPy教程了解更多关于Tabpy的安装。(https://www.datacamp.com/tutorial/getting-started-with-tabpy)
你可以使用:
-
SCRIPT_BOOL
-
SCRIPT_INT
-
SCRIPT_REAL
-
SCRIPT_STR 而每个命令都需要Python脚本的参数和参数列表的占位符。
SCRIPT_REAL(Python Script, argument 1, argument 2, ...)
例子:
我们要创建一个相关函数,它接收Sales和Profit字段并返回相关系数。正如你所看到的, _arg1 和 _arg2是Sales和Profit的占位符。
SCRIPT_REAL("import numpy as np
return np.corrcoef(_arg1,_arg2)[0,1]",
SUM([Sales]),SUM([Profit]))
同样地,你可以将Python函数部署到TabPy服务器上,并使用相同的脚本来访问它。阅读TabPy教程。部署Python函数和Prophet预测模型来了解更多关于部署Python函数的信息。(https://www.datacamp.com/tutorial/tabpy-tutorial-deploying-python-functions-and-prophet-forecasting-model)
TabPy查询脚本以 **"return tabpy.query(, lists or arguments)['response']"**开头。
SCRIPT_REAL(TabPy Query Script, argument 1, argument 2, ...)
例子:
我们通过添加函数名(pcc)、参数占位符和参数来访问Pearson Correlation Coefficient函数。
SCRIPT_REAL("return tabpy.query('pcc',_arg1, _arg2)['response']",
SUM([Sales]),SUM([Profit]))
最后,可以通过阅读官方文档了解更多关于Tableau函数的信息。(https://help.tableau.com/current/pro/desktop/en-us/functions.htm)
参考文章:https://www.kdnuggets.com/2022/08/10-used-tableau-functions.html
推荐书单
《精通Tableau 2019》
购买链接:https://item.jd.com/12604811.html
《精通Tableau 2019》详细阐述了与Tableau2019.x相关的基本解决方案,主要包括Tableau数据操控、Tableau数据提取、TableauDesktop高级计算、Tableau桌面高级过滤机制、创建仪表板、利用Tableau讲述故事、Tableau可视化、Tableau高级可视化、Tableau大数据应用、Tableau预测分析、Tableau高级预测分析、部署TableauServer、Tableau故障诊断、利用TableauPrep分析数据、基于Tableau的ETL好的实践方案等内容。
此外,《精通Tableau 2019》还提供了相应的示例、代码,以帮助读者进一步理解相关方案的实现过程。
《精通Tableau 2019》适合作为高等院校计算机及相关专业的教材和教学参考书,也可作为相关开发人员的自学教材和参考手册。
京东或当当二维码图片
精彩回顾
扫码关注《Python学研大本营》,加入读者群,分享更多精彩