[Day26] Tableau 轻松学 - TabPy 开发流程

前言

熟悉 TabPy 的运作与使用方法之後,下一步便是开发属於自己的 Model。若直接使用 TabPy 与 Tableau Desktop 来开发,很快会发现这样的开发流程将会是一个问题,因为资料是直接从 Tableau Desktop 来的,导致我们无法像平常开发 Python 一样,修改程序後马上运行查看结果,造成诸多不便。因此这里要分享个人平时开发 TabPy Model 的流程,提供给读者参考。

汇出 csv 资料集

首先,需要解决资料源的问题,因为我们开发的时候不太可能一边写 Python 一边操作 Tableau Desktop 来查看运算结果,除非程序逻辑很简单,否则将会耗费大量时间在来回操作上。这里提供一个替代方案,先从 Tableau Desktop 先将资料汇出成 csv 档,再使用 Python 读档案做为资料源。

Data Menu 中选择资料集 (此例为 Sample - Superstore) 并点选 View Data...,先切换至要汇出的资料表页签 (此例为 Orders),再点击 Export All 按钮汇出 csv 格式的资料集档案

资料汇出 csv

使用 csv 资料集

在 Python 中我们可以使用 pandas 套件来读取 csv 文字档,为了迎合 TabPy 的资料型态,需将会使用到的资料栏位转换为 List 型态。再建立我们要布署的函式,并将资料输入测试运算结果

import pandas as pd

# read csv file
df = pd.read_csv(r'C:\Users\wrxue\Downloads\Sample - Superstore_Orders.csv')

# convert Sales and State Series to list
sales = df['Sales'].tolist()
state = df['State'].tolist()

# create your own function
def testStr(data1, data2):
    return [f'{x[1]} 的销售额为 {int(x[0])}' for x in zip(data1, data2)]

# test testStr function
print('\n'.join(testStr(sales, state)))

{% note info %}
再次提醒,所有输入函式的参数都应为 List 型态,最符合 TabPy 的使用情境
{% endnote %}

执行并观察输出,若为预期中的结果,即可参考 [Day25] Tableau 轻松学 - TabPy 使用方法 2 进行布署函式流程

District of Columbia 的销售额为 40
Massachusetts 的销售额为 40
Rhode Island 的销售额为 592
...
...
...
California 的销售额为 3023
Arizona 的销售额为 599
Colorado 的销售额为 2549

结语

这样的开发流程是依照个人的开发经验分享给各位读者的,但不代表说一定要这样做,若有更简便的方法欢迎至下方讨论区留言分享,让我们能一起学习与进步。


<<:  【踩坑】animation 选单按钮动起来(实作篇)

>>:  [Tableau Public] day 27:台湾姓氏分布分析-5

[Day 26] BDD - 组合技

组合技 Drone + godog + Mattermost 当有需求要在k8s上透过drone定期...

Day 16 建立资料库

我们现在有了基本的日志,但是每次输入完重整页面都会刷新,因为这些资料都只存在於浏览器,没有真正储存到...

SuiteScript - Entry Point

Schedule Script execute Map/Reduce Script getInput...

作业系统L1-概说

作业系统L1-概说 电脑系统结构 硬体(Hardware)–提供基本运算资源 CPU, 记忆体, I...

Day11 TailwindCSS 介绍,在 Next.js 专案安装 TailwindCSS

上一篇我们成功安装完 GraphQL client,并在首页显示出文章列表了。功能做完,接下来要来切...