Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

記帳分析程式

這是一個 Python 程式,用於分析 Excel 記帳檔案,計算各類別的總花費並找出花費最多的類別。

功能說明

📊 資料分析(analyze_expenses.py)

  1. 讀取 Excel 記帳檔案 - 從 data/project_1_with_fake_data.xlsx 讀取資料
  2. 計算每個類別的總花費 - 統計各類別的總金額、筆數和平均花費
  3. 找出花最多錢的類別 - 識別花費最高的類別
  4. 輸出分析結果 - 將結果儲存至新的 Excel 檔案 data/expense_analysis_result.xlsx

📈 資料視覺化(visualize_expenses.py)

  1. 圓餅圖 - 顯示各類別花費佔比,使用美觀的配色
  2. 長條圖 - 顯示每月花費趨勢,清楚呈現金額變化
  3. 堆疊圖 - 顯示各類別每月花費分布(額外圖表)
  4. 中文標籤 - 所有圖表都有清晰的中文標題和標籤

🎯 互動式儀表板(dashboard.py)

  1. 檔案上傳 - 支援拖放或點擊上傳 Excel 檔案
  2. 即時統計 - 自動計算總花費、平均花費、筆數等指標
  3. 互動式圖表 - 使用 Plotly 建立可縮放、可懸停的圖表
  4. 資料篩選 - 可選擇特定類別或月份進行分析
  5. 資料下載 - 可下載篩選後的資料為 Excel 檔案
  6. 美觀介面 - 簡潔現代的網頁設計,響應式佈局

資料格式

輸入的 Excel 檔案應包含以下欄位:

  • 日期 - 記帳日期
  • 項目 - 消費項目名稱
  • 金額 - 花費金額
  • 類別 - 消費類別(如:飲食、交通、娛樂等)

執行步驟

1. 建立虛擬環境(使用 uv)

# 進入 src 目錄
cd d:\Project_plan\src

# 使用 uv 建立虛擬環境(指定 Python 3.12)
uv venv --python 3.12

2. 啟動虛擬環境

# Windows PowerShell
.\.venv\Scripts\Activate.ps1

# 或使用 CMD
.\.venv\Scripts\activate.bat

3. 安裝相關依賴

# 使用 uv 安裝依賴套件
uv pip install -r requirements.txt

4. 執行程式

執行資料分析

# 確保在 src 目錄下
python analyze_expenses.py

執行視覺化(產生圖表)

# 產生圓餅圖、長條圖和堆疊圖
python visualize_expenses.py

啟動互動式儀表板 ⭐

# 啟動 Streamlit 網頁應用程式
streamlit run dashboard.py

啟動後會自動開啟瀏覽器,顯示互動式儀表板。

5. 查看結果

分析結果

程式執行完成後,會在 data 目錄下產生 expense_analysis_result.xlsx 檔案,包含三個工作表:

  • 原始資料 - 完整的記帳資料
  • 類別統計 - 各類別的總花費、筆數、平均花費
  • 最高花費 - 花費最多的類別詳細資訊

視覺化圖表

圖表會儲存在 data/charts 目錄下:

  • category_pie_chart.png - 各類別花費佔比圓餅圖
  • monthly_trend_chart.png - 每月花費趨勢長條圖
  • category_monthly_stacked_chart.png - 各類別每月堆疊圖

快速執行(一鍵執行所有步驟)

# 在 src 目錄下執行
uv venv --python 3.12
.\.venv\Scripts\Activate.ps1
uv pip install -r requirements.txt
python analyze_expenses.py
python visualize_expenses.py

依賴套件

  • pandas>=2.0.0 - 資料處理與分析
  • openpyxl>=3.0.0 - Excel 檔案讀寫
  • matplotlib>=3.7.0 - 圖表繪製與視覺化
  • streamlit>=1.28.0 - 互動式網頁應用程式框架
  • plotly>=5.17.0 - 互動式圖表庫

輸出範例

程式執行時會顯示:

正在讀取檔案: d:\Project_plan\data\project_1_with_fake_data.xlsx

原始資料預覽:
         日期    項目   金額  類別
0  2024-01-01  早餐   80  飲食
1  2024-01-02  捷運   30  交通
...

總共有 XX 筆記帳資料

計算每個類別的總花費...

各類別花費統計:
        總花費  筆數  平均花費
類別                      
飲食    XXXX   XX   XXX
交通    XXXX   XX   XXX
...

花費最多的類別: 飲食
總金額: $XXXX.XX

✓ 分析完成!結果已儲存至: d:\Project_plan\data\expense_analysis_result.xlsx

疑難排解

問題:找不到 uv 指令

解決方法:請先安裝 uv

pip install uv

問題:找不到輸入檔案

解決方法:確認 data/project_1_with_fake_data.xlsx 檔案存在

問題:權限錯誤

解決方法:以系統管理員身分執行 PowerShell,或執行以下指令允許腳本執行

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

專案結構

Project_plan/
├── data/
│   ├── project_1_with_fake_data.xlsx    # 輸入檔案
│   ├── expense_analysis_result.xlsx     # 輸出檔案(執行後產生)
│   └── charts/                          # 圖表目錄(執行視覺化後產生)
│       ├── category_pie_chart.png       # 類別佔比圓餅圖
│       ├── monthly_trend_chart.png      # 每月趨勢長條圖
│       └── category_monthly_stacked_chart.png  # 類別月度堆疊圖
└── src/
    ├── analyze_expenses.py              # 資料分析程式
    ├── visualize_expenses.py            # 資料視覺化程式
    ├── dashboard.py                     # 互動式儀表板(Streamlit)
    ├── requirements.txt                 # 依賴套件清單
    └── README.md                        # 說明文件(本檔案)

作者

建立日期:2025-12-10

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages