Excel家計簿を卒業 家計簿もPythonでいけると実感

2020年2月14日家計Python

家計簿をつけて約15年が経ちますが,そのほとんどの期間,Excelで作った家計簿・資産管理ファイルを使ってきました.

自分の分析目的に合わせてグラフを作ったり,独自の指標を作るなどのカスタマイズが簡単にできるからという理由でExcelで家計簿と資産管理をやってきましたが,今回,それをPythonに切り替えました.

  • Excel家計簿を卒業した理由
  • 代替としてなぜPythonを選んだか

についてかいてみましたので,参考になれば幸いです.

Excel家計簿を卒業した理由

  • グラフやチャートをオフラインで確認できない
  • データが増えるにつれて動きがもっさりしてきた
  • 細かいところに手が届かないグラフ
  • PC環境が変わった時にExcelを買うか

グラフやチャートをオフラインで確認できない

Excel家計簿はデスクトップに置いているので,例えば「3ヶ月前からどれくらい資産が増えているんだっけ?」を調べたくなった時もわざわPCを起動せねばならず,面倒でした.

最近は家計簿アプリがポピュラーになって来ましたが,カスタマイズができない家計簿アプリを使おうと思ったことはないですが,スマホやタブレットでチェックしたい時にすぐにチェックできるのはいいなと思ったので,オンラインでグラフやチャートをオンラインで確認できる環境を構築したいなと思っていました.

データが増えるにつれて動きがもっさり

私の家計簿ファイルには2013年からの支出データ,約15,000行の入出金が記録されています(家計簿をつけて約15年と言いましたが,最初の2年ほどのデータは残念ながら消えました).

家計や資産状況を多方面から捉えるには関数やグラフをたくさん必要になりますが,15,000行のデータに対してそれらを実装するとExcelの動きがもっさりしてきてちょっとストレスでした.

細かいところに手の届かないグラフ

好みの問題ですが,Excelのデフォルト設定のフォントや配色のセンスは絶望的で,あれで作ったグラフやチャートは見る気になりませんし,あれでお金を管理していたら貯まるものも貯まりません.

そのために,毎回グラフの設定を修正していたのですが,それに付加価値を感じずに面倒になってきたので,代替案を考えたいと思っていました.

PC環境が変わった時にExcelを買うか

Excel家計簿のためにExcelを買いましたが,次のPCを買い替える時はExcelを買おうとは思いませんし,Office360のサブスクもしないと思います.

そうなると,将来的にExcel環境がなくなっても家計簿を続けていける環境の構築が必要でした.

Python家計簿に行き着いた理由

Python家計簿は以前にも一度作ったことがあり,学習コストが低かったのが一番の理由です.

PHPとMySQLを使ってWeb化も考えたものの,セキュリティ対策が面倒だったり,グラフ作成のためにJavaScriptもコーディングも必要になり,個人の家計簿・資産管理ツールにしてはコストがペイしないと思ってやめました.

Python家計簿のメリット

だいたいがExcel家計簿を卒業した理由の裏返しですが

  • 作成した画像ファイルをオンラインで確認できる
  • 動作が機敏
  • グラフのカスタマイズが可能
  • PC環境が変わっても維持可能

作成した画像ファイルをオンラインで確認できる

Pythonで作成したJPEGやPNGをNotionに置くことでスマホやタブレットで確認できるようになったので,一番のネックを楽々乗り越えられました.

やろうと思えばExcelのチャートもNotionに置けますが,サイズが思うようにならなかったり,配置が崩れたりとここでもかゆいところに手が届かず,一方のPythonはPEGやPNGを置くだけなので簡単です.

動作が機敏

描きたいグラフやチャート毎に1つのPythonファイルで管理しているので,アップデートしたいPythonファイルだけを起動するだけで数秒で新しい画像ファイルが作成され,それをNotionに置くだけなので運用も簡単です.

詳しいファイル管理方法は『Divide and Conquer 処理を分割してPython家計簿を改善』で詳しく書きましたので,参考になれば幸いです.

グラフのカスタマイズ

MatplotlibやSeabornなどのライブラリを使えばきれいなグラフが作れます.

Pythonで作成した家計簿グラフの一例

グラフの見栄えなんて大事なことではないのでは?と思えるかもしれませんが,頻繁に目にするグラフがビジュアル的にきれいだとモチベーションも上がります.

最初のコーディングは手間がかかる一方,一度コーディングをすれば大きなメンテナンスは不要なので,イニシャルコストは高いがランニングコストは低くてコスパがいいですし,しかも必要なグラフはだいたい棒グラフ,折れ線グラフ,円グラフなのでコーディングの流用が可能なのもコスパがいいです.

余談:家計簿や資産管理データには日付データが必須ですが,MatplotlibやSeabornではDatetime型の扱いがとっつきにくく,ちょっと慣れが必要です.

PC環境が変わっても維持可能

今は元データをExcelに入れてそれをPythonで出力していますが,将来的にこれをCSVやgoogleスプレッドシートにすればPC環境が変わってもPythonファイルさえ残っていればこれまでのアウトプットは維持可能です.

細かいことを言うとCSVだと入力のリスト機能が使えなかったり,googleスプレッドシートだとPythonでの扱いがExcelよりも複雑なので,そこは今後対応を考えていきます.


以上,Excel家計簿からPython家計簿に変えましたが,家計簿の環境が改善すると資産管理のモチベーションも湧いてきます.

あとはこれが結果に繋がれば最高なんですが,それにはもう少し時間がかかりそうです.


では,また.

Posted by Econ