All Projects → robintw → BankClassify

robintw / BankClassify

Licence: other
Simple example of using a Naive Bayesian classification to classify entries in bank statements

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to BankClassify

Scrape-Finance-Data
My code for scraping financial data in Vietnam
Stars: ✭ 13 (-88.29%)
Mutual labels:  finance
scan
DeFi Scan, everything one-stop location for DeFi Blockchain. Powered by jellyfish & ocean network.
Stars: ✭ 31 (-72.07%)
Mutual labels:  finance
fhub
Python client for Finnhub API
Stars: ✭ 31 (-72.07%)
Mutual labels:  finance
nubank-dotnet
Unofficial Nubank Api client for .Net
Stars: ✭ 23 (-79.28%)
Mutual labels:  finance
budget-manager
Easy-to-use, lightweight and self-hosted solution to track your finances
Stars: ✭ 20 (-81.98%)
Mutual labels:  finance
pyEX
Python interface to IEX and IEX cloud APIs
Stars: ✭ 407 (+266.67%)
Mutual labels:  finance
salaryconverter
Equivalent salary converter using PPP
Stars: ✭ 42 (-62.16%)
Mutual labels:  finance
DeltaTrader
极简版Python量化交易工具
Stars: ✭ 174 (+56.76%)
Mutual labels:  finance
Mida
The open-source and cross-platform trading framework
Stars: ✭ 263 (+136.94%)
Mutual labels:  finance
ScoreCardModel
Score card model for Credit Scoring System.
Stars: ✭ 105 (-5.41%)
Mutual labels:  finance
Multifractal-Model-of-Asset-Returns-MMAR-for-Thesis
I wrote a Master's in Finance thesis on Monte Carlo simulation of the Multifractal Model of Asset Returns. This is a model developed in the late 1990's by Benoît Mandelbrot and his two students, Laurent Calvet and Adlai Fisher. I had never programmed before and this was my first big coding project — so sorry if the code sucks! I did what I could :)
Stars: ✭ 29 (-73.87%)
Mutual labels:  finance
market risk gan tensorflow
Using Bidirectional Generative Adversarial Networks to estimate Value-at-Risk for Market Risk Management using TensorFlow.
Stars: ✭ 63 (-43.24%)
Mutual labels:  finance
wolf
🐺 Binance trading bot for node.js
Stars: ✭ 76 (-31.53%)
Mutual labels:  finance
moolah-old
The source code for the original version of Moolah
Stars: ✭ 32 (-71.17%)
Mutual labels:  finance
numereval
A small library to locally calculate the scores on numer.ai tournament's diagnostics dashboard.
Stars: ✭ 31 (-72.07%)
Mutual labels:  finance
Block Codes
This depository uses SEC EDGAR data in Schedule 13D and Schedule 13G data to find all positions above 5% in all US stocks between 1994 and 2018.
Stars: ✭ 55 (-50.45%)
Mutual labels:  finance
fundamentos
Download Bovespa Stock Market fundamentals with Python.
Stars: ✭ 80 (-27.93%)
Mutual labels:  finance
hurtrade
An Open Source Forex Trading Platform
Stars: ✭ 22 (-80.18%)
Mutual labels:  finance
rb3
A bunch of downloaders and parsers for data delivered from B3
Stars: ✭ 52 (-53.15%)
Mutual labels:  finance
Fynance
Python and Cython scripts of machine learning, econometrics and statistical tools designed for finance.
Stars: ✭ 20 (-81.98%)
Mutual labels:  finance

BankClassify - automatically classify your bank statement entries

Note: This is not 'finished' software. I use it for dealing with my bank statements, but it is not 'production-ready' and may crash or do strange things. It is also set up for my particular usage, so may not work for you. However, I hope it will be a useful resource.

This code will classify each entry in your bank statement into categories such as 'Supermarket', 'Petrol', 'Eating Out' etc. It learns from previously classified data, and corrections you make when it guesses a category incorrectly, and improves its performance over time.

How to use

  1. Install the required libraries: pip install -r requirements.txt

  2. Run the code in example.py as a demonstration. This will interactively classify the example bank statement data in Statement_Example.txt and save the results in AllData.csv. In the interactive classification you will be presented with a list of categories (with ID numbers), the details of a transaction, and a guessed category. You have three choices:

    • To accept the guessed category, just press Enter
    • To correct the classifier to a category that is in the list shown, enter the ID number of the category and press Enter
    • To add a new category, type the name of the category and press Enter
  3. Examine the output in AllData.csv manually, or run bc._prep_for_analysis() and look at bc.in and bc.out for incomings and outgoings respectively. You will see there is a cat column with the category in it.

To use it with your own data:

  • If you use Santander UK as your bank: just run bc.add_data(filename) with the filename of your downloaded statement file. Delete AllData.py first though, or the example data will be used as part of the training data.
  • If you use another bank: Write your own function to read in your statement data from your bank. It must return a pandas dataframe with columns of date, desc and amount. Add this to the BankClassify class and call it instead of _read_santander_file.

Known issues

For Barclays bank sometimes the CSV file contains multiple commas within the 'memo' (transaction description) column. You can either manually patch your data before you run the tool or be aware that due to the work-around implemented we could potentially be losing valuable information beyond the comma.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].