見出し画像

銀行やカードの取引明細から、pythonで家計簿を作る

ほぼ全ての支払いはクレジットカードか口座引き落としで行っているため、取引明細をcsvファイルで取得できます。取引明細から家計簿を作ります。

動作環境

  • windows10

  • pythonインストール済

仕様

  • フォルダ内の取引明細(.csv)の解析

  • 取引明細のワードを解析してカテゴリ分け

  • 家計簿(.csv)の作成または既存ファイルに行追加

  • 解析済ファイルはoldフォルダに移動

  • 取引明細の解析用パラメータとカテゴリ分けルールはyaml管理

使い方

pythonスクリプト、yamlファイル、取引明細を格納したフォルダを作成します。MakeBooks.pyを実行するとBooks.csvが作成されます。

└─wsBooks.yamlMakeBooks.py
    │
    ├─楽天カード
    │      enavi202105(xxxx).csvenavi202106(xxxx).csv
    │      .....
    │
    └─楽天銀行
           RB-torihikimeisai.csv

取引明細のフォーマットと取引明細のカテゴリ分けはyamlファイルで設定します。サンプルは楽天カードと楽天銀行ですが、他の取引明細フォーマットでも対応可能です。

入出力サンプル

楽天カード取引明細

利用日,利用店名・商品名,利用者,支払方法,利用金額,支払手数料,支払総額,5月支払金額,6月繰越残高,新規サイン
2021/04/01,セブンイレブン,本人,1回払い,1000,0,1000,1000,0,*
....

楽天銀行取引明細

取引日,入出金(円),取引後残高(円),入出金内容
20220402,-10000,90000,カンリヒトウ
....

作成される家計簿

,日付,口座,明細,補足,収支,残高,カテゴリ
0,2021-04-01,楽天カード,セブンイレブン ,本人,-1000,,食費雑費
1,2021-04-02,楽天銀行普通,カンリヒトウ,,-10000,90000,家賃
....

コードサンプル

import pandas as pd
import glob
import os
import yaml
import shutil
import datetime
from fileinput import filename

# ベースパス、oldパス、出力ファイルパスの登録
base_path = os.path.dirname(__file__)
old_path = os.path.join(base_path,"old")
os.makedirs(old_path, exist_ok=True)
bk_path = os.path.join(base_path,"Books.csv")

# yamlファイルのload
with open(os.path.join(base_path,"Books.yaml"), encoding='utf-8') as yfile:
....

ここから先は

3,754字

¥ 300

興味があること #育児 #料理 #ものづくり 楽しんで学んでいきたいです。 皆さんの【楽しんでいること】も是非、教えてください。