不時有需要將測試結果轉成樞鈕分析圖表的場合,過去遇上這類需求,我的 SOP 都是輸出 CSV 匯入 Excel,再拖拉操作一番交差。說來不難,但需要一堆點選操作,沒法整成自動化流程。

上回體驗過用 Python 算平均、標準差、95 百分位數畫成圖表的流暢體驗,決定也來練習用 Python 產生樞鈕分析圖表。

這裡借用【Excel 放題】菜鳥都能學會的樞紐分析表應用!文章的範例 Excel:

我打算產生依顧客、銷售員統計銷售額的樞鈕分析結果:

不熟 Python,但我一點都不慌,自從得到 Github Copilot 黑魔法之後,面對陌生程式語言不再害怕,有種深入蠻荒但我帶了嚮導的安心感。尤其是我有大絕 - 先用 C# 寫再請 Copilot 轉換,即便未必是 Best Practice,動起來完全任務肯定沒問題。

點開 CSV 讓 Copilot 知道我們要處理的對象,點左側的 Chat 圖示[2]開啟聊天視窗,

提供的程式直接就能跑,但顯示長條圖時會因欄名有中文字出錯。就再問一下 Github Copilot 怎麼辦:

程式如下:

import pandas as pd
import matplotlib.pyplot as plt

# 讀取CSV文件
df = pd.read_csv('pivot-example.csv')

# 建立樞紐分析表
pivot_table = df.pivot_table(index=['顧客姓名', '銷售人員'], values='銷售總額', aggfunc='sum')

# 顯示樞紐分析表
print(pivot_table)

# 建立長條圖
pivot_table.plot(kind='bar')

# 設置字體為微軟正黑體
plt.rcParams['font.sans-serif'] = ['Microsoft JhengHei'] 
plt.rcParams['axes.unicode_minus'] = False

# 顯示圖形
plt.show()

做法很簡單,pandas pd.read_csv() 將 CSV 轉成 Pandas Dataframe,呼叫 .pivot_table() 輸入分群依據、彙總值及彙總函式得到樞紐分析表。print() 可將結果顯示成表格,接著呼叫 .plot(kind='bar') 產生長條圖,完成。

整理這回用到的 Python 觀念,順便留下麵包屑,方便未來找參考資料:

In the past, I mainly used Excel to create Pivot Tables, but this article attempts to accomplish the same task using Python.


Comments

Be the first to post a comment

Post a comment