Pythonで家計簿!Excel家計簿からの移行

※この記事は2022年1月26日にリライトしました.

どうも,Econです.

Python, 最近特に人気のプログラミング言語で,聞いたことがある人もいると思います.Pythonはライブラリと呼ばれる,特定の目的のために機能をまとめたパッケージが充実していて,例えばPandasというライブラリを使えば効率的にデータフレームの管理ができますし,Matplotlibというライブラリではきれいなグラフが描けます.

私は職業プログラマーではないですが,Pythonの勉強を始めてから,Pythonをうまく使えば効率的に家計管理ができそうと思ってPython家計簿を考えたのがきっかけでした.

まずは他の人がどんなPython家計簿を作っているか参考にしてみよう…と色々なブログを見て回ったのですが,Pythonで家計簿を作ってる人は少ないようであまりヒットしませんでした.

それならゼロから自作してみようと軽い気持ちで始めてみたのですが,やってみるとExcelとPythonのシナジー効果にはまりました.今ではデータ入力用にExcelを使い,Pythonを使ってデータを加工したり,きれいなグラフを作って楽しみながら家計管理をしています.

この記事のポイント
  • 想定読者:Pythonを使って家計簿を作りたいと考えている人
  • ExcelとPythonは家計簿を作るのに最高のマリアージュ
  • Excelにデータ入力,Pythonでデータ加工やグラフ作成というシンプルなシステム
  • シンプルだから好きなようにカスタマイズが可能
  • スポンサーリンク

    Python家計簿のメリット

    Python家計簿の一番のメリットはシンプルなことです.

    Excel家計簿はデータ検索やカスタマイズのしやすさという点で手書きの家計簿や家計簿アプリより優れていますが,カスタマイズをすると

    • 新しいシート,行や列の挿入
    • 追加したエリアの罫線や色の見栄えを整え直す
    • VBAのコードや関数を書き直す
    • 既存グラフの見栄え修正

    など色々面倒な作業が発生します.自分で書いた関数なのに,複雑な式を読み解くの一苦労なんてのはExcelあるあるの鉄板です.

    一方Python家計簿では,下のイメージのようにExcelに入力した元データは維持しつつ,ある目的のために加工したデータフレームを変数として持ち,そこから必要なグラフを作ることができます.

    Excelに入力された元データは不変

    元データは不変,加工データを変数で持つというのがかなり強力で,元データが残っているといくらでも加工データを作れる上に,Excelのように派生したテーブルがいくつも出来上がる…なんてこともなく,とてもシンプルです.

    スポンサーリンク

    Python家計簿の全体

    1. Excelに入力用テーブルを用意し,そこに収支のデータを入力
    2. 1のデータをPythonでコードを書き,必要なグラフを作る

    これだけです.どうですか,シンプルですね.

    ExcelはあくまでPythonでアウトプットするためのデータ入力ファイルなので,複雑な関数やリンクはほとんど使っていません.

    そのため関数の読み解きに苦労することもないですし,データは12,000行を超えていますが,容量は1.5MBくらいなのでサクサク動きます.

    スポンサーリンク

    ステップ1:Excelで入力データベースを準備

    入力用Excel(一部加工しています)

    データベースは

    • 日付
    • 費目のカテゴリー
    • 費目名
    • 金額
    • メモ
    • タグ(浪費やいい使い方などをタグ付けするため)
    • カード払いタグ(カードの請求と突合するため,確認できたらタグは削除)

    を準備しています.カテゴリー名や費目名はPythonで集計したりグラフを描く時にも使うのですが,日本語だとPythonでエラーが起きやすいので,英語を使っています.

    Excelのテーブルが準備できたらどんな細かい収支もここに全て入力します.

    ステップ2:Pythonでコーディングしてグラフ作成

    Pythonコード(抜粋)

    Excelの入力テーブルをPandasでデータフレームとして読み込み,これを元にして,作りたいグラフ用のデータフレームを変数として作り,グラフを作成します.

    Excelの元データは不変なので,新しいグラフが必要になった時は元データから好きなだけ拡張ができます.

    グラフ 予実算比較

    予実算比較のグラフ

    家計簿の目的の一つが予算に対して支出をうまくマネージできたかどうかを確認し,お金のPDCAを回すことなので,予実算グラフは毎月確認しています.

    私は,ボーナスや配当などの臨時収入に頼らず,毎月の給料だけで黒字達成できる家計を築くのが大切だと思っているので,給料だけで貯蓄できるように予算設定しています.

    グラフ 貯蓄率

    左:手取り給与内での貯蓄率 右:総収入内での貯蓄率

    上に書いたように,給料の中で支出をマネージすることが大事ですが,実際どれだけ貯蓄できたのか,つまり総収入に対する貯蓄率も把握する必要があるので,グラフを2つ作っています.

    左が,手取り給与の中での支出カテゴリーの割合で,右が総収入の中での支出カテゴリーの割合です.

    Excelでも,このようなドーナツグラフを描くことはできますが,Pythonなら自分の好きな配色を自動で設定できます.

    グラフを描画するためのMatplotlibは扱いが難しいですが,慣れてしまえばもうExcelでのグラフ作成には戻れません.

    最後に

    家計簿を作るのに,ExcelとPythonは最高のマリアージュです.Excelに入力,Pythonで出力させるシンプルなシステムですが,シンプルだからこそ,どんなカスタマイズもできます.

    それでは,また.

    スポンサーリンク

    コメントを残す

    メールアドレスが公開されることはありません。

    このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください