要製作視覺化報表除了LookerStudio外,還可以怎麼做? 今天要分享透過PY來做資料視覺化報表的應用,PY本身有許多套件都是用來處理資料分析,例如Matplotlib, Plotly, Steamlit ,而我今天使用的範例是Pygwalker是一款,急速產生視覺化報表,而且修改不需要程式碼,他會直接使用UI介面讓你做拉選,但缺點是當資料量體過大,他會有LAG的現象,不過如果有先做好資料篩選;透過BigQuery把資料精簡化,後續再用這款套件,速度就很流暢,做表也很彈性。
本篇實務內容持續更新,依據不同分析目的製作不同分析報表。歡迎定期關注本篇文章!
章節內容
PYTHON視覺化結果
每月Purchse來源媒介長條圖
with _cte as (
SELECT event_date,
ecommerce.purchase_revenue,
user_pseudo_id,
traffic_source.source,
traffic_source.medium,
event_name,
device.mobile_model_name
FROM `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`
WHERE _table_suffix between '20201001' and '20201231'
)
select event_date,source,medium,purchase_revenue FROM _cte
WHERE event_name = 'purchase'
ORDER BY event_date
UPT – 每筆交易購買的商品數量
每筆交易購買的商品數量是GA4裡面沒有的指標,透過BigQuey的撈取原始資料,並且先在BigQuery計算完報表,再輸出至PYTHON產生「每日銷售額 + 每日每筆交易購買的商品數量」的視覺化報表。
WITH cte AS(
SELECT
event_date,
ecommerce.purchase_revenue AS REV,
ecommerce.unique_items AS Items,
items.item_name AS Item_Name,
ecommerce
FROM
--改為你自己的資料表
`bigquery.analytics.events_*` ,
UNNEST(items) AS items
WHERE _table_suffix > '20240101'
AND event_name = 'purchase'
LIMIT 1000
)
SELECT
event_date,
SUM(REV) AS Revenue,
ROUND(SUM(Items) / COUNT(ecommerce.transaction_id),2) AS UPT ,
SUM(Items) AS sells_item,
COUNT(ecommerce.transaction_id) as Transasion_times,
FROM cte
GROUP BY 1
ORDER BY 1
BigQuery 報表製作流程
生成報表的依序過程
透過BIGQUERY 與 GA4串連 => 透過SQL從BigQuery撈取資料 => 使用Looker Studio進行視覺化報表生成,或Python 引入相關套件進行視覺化報表生成。
本篇文章需要對Bigquery有一定的認知,以及SQL查詢語言的熟悉,如果你還不知道甚麼是Bigquery,可以快速翻閱這篇文章,再回來看這篇的實際應用。
匯入資料
匯入GA4資料來源,如果你目前的BigQuery還沒有資料來源,你可以透過匯入公開資料集,來進行BigQuery的查詢、SQL的練習。這邊匯入資料前面就有講述,因此快速帶過,如果不知道怎麼匯入資料集的,可以返回上一篇BigQuery資料匯入查看。
選取要查閱的報表
因為我使用的是範例資料,所以要先找到接下來要分析的GA4報表,並且打開這張表,看一下目前擁有的資料內容。
確定日期範圍
由於這個資料來自外部,因此我無法確定資料擁有的時間範圍,所以我需要多出這一個步驟。如果你是使用自家的資料,並且知道自己要使用哪些時間範圍的資料,你可以忽略這一個步驟。
--找尋在資料表中不重複日期,以確定日期範圍
SELECT DISTINCT event_date FROM `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`
WHERE _table_suffix between '20201001' and '20231231'
order by event_date
指定資料欄位
SELECT event_date,
ecommerce.purchase_revenue,
user_pseudo_id,
traffic_source.source,
traffic_source.medium,
event_name,
device.mobile_model_name
FROM `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`
WHERE _table_suffix between '20201001' and '20201231'
依照這次的篩選目標,我需要得知來源媒介,但我多拉了一些裝置、ID以備不時之需,如果你不想要,你也可以把這些不要分析的欄位刪除。
CTE
with _cte as (
SELECT event_date,
ecommerce.purchase_revenue,
user_pseudo_id,
traffic_source.source,
traffic_source.medium,
event_name,
device.mobile_model_name
FROM `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`
WHERE _table_suffix between '20201001' and '20201231'
)
select event_date,source,medium,purchase_revenue FROM _cte
WHERE event_name = 'purchase'
ORDER BY event_date
如果不知道CTE是甚麼,可以查看一下這篇文章,另外如果想要知道其他CTE使用的也可以查看這篇。這一個步驟是篩選明確我要的分析資料,讓我後續可以快速進行報表的製作;方便我查看欄位,同樣也能節省SQL的資料用量,如果你好奇使用BigQuery的查詢價格,可以參考官方文件。
資料都調閱出來後,後續就可以進行視覺化報表的操作,你可以透過Looker Studio 或是Python套件,進行視覺化報表的製作。
開啟Google Colab
一開始打開Colab會有預設幫你寫好的引入套件、套件Function、專案ID;就是讓Colab能讀取你Bigquery裡面的資料。而這邊的程式碼都不需要更改,這是對應你的BigQuery的專案設定,你要先把每一行的程式碼點一下播放按鈕,讓colab進行運行。
點到第三行,也會有看到來自BigQuery的資料DataFrame。不過這還不是我們要的結果。
其他的文字你覺得不方便都可以先移除。
安裝套件
!pip install pygwalker
此語法讓我們先安裝對應要製作視覺化報表的套件,PYTHON有很多種不同套件,都可以進行數據的視覺化製作,這個Pygwalker是相對讓不懂程式語言的人,可以快速製作視覺化報表。
引入套件
#輸入語法
import pygwalker as pyg
pyg.walk(results)
引入上一步驟安裝的套件,並且透過pygwalker 套件中的方法,讀取我們Bigquery的資料。如上圖。
沒問題後他就會開啟一個UI讓我們製作視覺化報表。而資料則引用剛剛在BigQuery查詢好的資料。
依照XY拉動資料
拉動X與Y軸,還有利用source來區分來源的多寡,就能清楚看到完整的每月收益,以及站大多數的來源。到這邊即完成!
滑鼠指標移動過去圖片上,圖片也會顯示對應的資料詳細。
總結
不管後續查詢Biqquery是透過Looker Studio, PYTHON。皆能達到同樣的視覺化目的。使用前者就是專注在做資料的分析,但如果你使用PYTHON,可以再引入其他模組,例如OPENAI,Requests,前者將資料餵給AI請他去分析解讀,後者可以將資料混和進行其他比較,可行的方式有無限多種,而且使用Colab查詢,相較Looker Studio比較不容易卡頓,我個人是比較多推薦PYTHON作分析。