基於Streamlit及Pandas的記帳本製作進度跟murmur
💭 吐槽專區
我這幾天走在路上都在想,
我用Pandas做SQL來做更方便的事情,我是個自虐狂T_T
寫起來就沒一般後端那麼有意願(...DX不佳?🤔)
但我的理想是希望數據異常時,
使用者可以直接用雲端硬碟打開Google Sheet修改CSV的資料
(不想另外運行DB服務也是一個考量)
但在進一步想想好像也可以用SQLite做轉接,
這麼不好寫可能是我真的少做了一層吧Orz|||
謎之音:正式封你為CSV的守護者!! 守護這些CSV的是誰呢
剩餘功能工作項目&筆記
- ✅收支類型提示改為I跟E:
100%
- Pyplot太靜態效果不佳,改用官方提及的其他動態圖表套件:
20%
- 資產加總:
50% 尚未測試且不確定有無問題
代碼草稿:
# 熊熊部落格編輯器沒有tab縮排功能,暫時用空格代替
def totalAsset(df): # 這個方法只會回傳字串0.0
df['金額'] = pd.to_numeric(df['金額']) # 字串轉貨幣
total_asset = df[df['狀態'] == 'E']['金額'].sum()
return total_asset
# 使用處(自行縮排)
st.subheader("資產加總")
# 讀取雲端硬碟的account.csv
file_path = '/content/drive/MyDrive/streamlit_acc/account.csv'
df = pd.read_csv(file_path)
st.text(totalAsset(df))
- 財務BI頁面調用資產加總:
0%
記得先讀取account.csv
傳入 - 財務BI頁面圖表-支出分布圓餅圖:
50% 測試中
- 財務BI頁面圖表-開銷前10名:
40% 尚未測試且不確定有無問題
def expenseTopTen(df):
# 使用處
st.subheader("開銷前10名")
# 情境:使用處已接到rec_df
# 已過濾買股票跟轉帳花的錢
filtered_rec_df = rec_df[(rec_df['分類標籤'] != '股票購入') and (rec_df['分類標籤'] != '轉帳')]
df_sorted = filtered_rec_df.sort_values(by='金額', ascending=True)
top_ten_rows = df_sorted.head(10)
st.write(top_ten_rows)
- 財務BI頁面圖表-多重收入折線圖:
0%
這感覺就比上面有點難度,因為圖形X軸是時間、 Y是金額,但我又要標出每條線的意涵..
def incomeGraphGroupByTag(rec_df):
# 使用處
# rec_file_path = '/content/drive/MyDrive/streamlit_acc/record.csv'
# rec_df = pd.read_csv(file_path)
st.subheader("多重收入折線圖")
- 預算設定功能頁面+CSV表乙張:
0%
- 記帳管理頁面顯示預算警告:
0%
剩餘優化工作項目&筆記
- 舊代碼儘量拆出def:
0%
- 輸入檢查(序列化器...?):
0%
- 使用
README.md
:0%
- 雲端硬碟直接編輯CSV不會覆寫,只會產生新的
*.gsheet
的事情
- 雲端硬碟直接編輯CSV不會覆寫,只會產生新的
- 單獨發表:
0%
謎之音:為什麼看下來我覺得用Django搭配Streamlit可能更香呢🤔...