0%

[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

使用 csv 資料集

在 Python 中我們可以使用 pandas 套件來讀取 csv 文字檔,為了迎合 TabPy 的資料型態,需將會使用到的資料欄位轉換為 List 型態。再建立我們要佈署的函式,並將資料輸入測試運算結果

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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)))

再次提醒,所有輸入函式的參數都應為 List 型態,最符合 TabPy 的使用情境

執行並觀察輸出,若為預期中的結果,即可參考 [Day25] Tableau 輕鬆學 - TabPy 使用方法 2 進行佈署函式流程

1
2
3
4
5
6
7
8
9
District of Columbia 的銷售額為 40
Massachusetts 的銷售額為 40
Rhode Island 的銷售額為 592
...
...
...
California 的銷售額為 3023
Arizona 的銷售額為 599
Colorado 的銷售額為 2549

結語

這樣的開發流程是依照個人的開發經驗分享給各位讀者的,但不代表說一定要這樣做,若有更簡便的方法歡迎至下方討論區留言分享,讓我們能一起學習與進步。

很高興能在這裡幫助到您,歡迎登入 Liker 為我鼓掌 5 次,或者成為我的讚賞公民,鼓勵我繼續創造優質文章。
以最優質的內容回應您的鼓勵