3

Python 練習:CSV 繪製樞鈕分析圖表

 1 month ago
source link: https://blog.darkthread.net/blog/python-pivot-table/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Python 練習:CSV 繪製樞鈕分析圖表

calendar.svg 2024-04-20 10:44 AM comment.svg 0 eye.svg 503

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

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

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

Fig1_638491779775466370.png

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

Fig2_638491779777130661.png

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

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

Fig3_638491779780451887.png

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

Fig4_638491779782177668.png

程式如下:

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') 產生長條圖,完成。

Fig5_638491779783794129.png

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

and has 0 comments

Comments

Be the first to post a comment

Post a comment

Comment
Name Captcha

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK