Construire un suivi de finance personnelle avec une catégorisation automatique des dépenses nécessite la connaissance de Python, la maîtrise des bibliothèques nécessaires comme Pandas, SQLite et le Machine Learning ainsi que les bases du développement web pour la visualisation (HTML, CSS, JavaScript).
Dans ce guide, nous utiliserons une simple application Flask et SQLite comme base de données. Utiliserons un fichier CSV pour simuler des transactions bancaires pour une entrée manuelle.
Voici un guide étape par étape pour y parvenir.
Ask your specific question in Mate AI
In Mate you can connect your project, ask questions about your repository, and use AI Agent to solve programming tasks
Étape 1 : Importation des bibliothèques requises
Nous utiliserons Flask pour notre application Web, SQLite pour la gestion de la base de données, Pandas pour la manipulation des données et sklearn pour regrouper nos transactions.
from flask import Flask, render_template, request, make_response
import sqlite3
import pandas as pd
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.cluster import KMeans
Étape 2 : Création de la base de données
Création d'une base de données SQLite pour stocker les transactions.
# Créer une connexion à la base de données
conn = sqlite3.connect('transactions.db')
# Créer un curseur
cursor = conn.cursor()
# Créer la table des transactions
cursor.execute('''CREATE TABLE transactions
(Date TEXT,
Description TEXT,
Amount REAL,
Category TEXT);''')
conn.commit()
conn.close()
Étape 3 : Importation de données à partir d'un CSV
À des fins de démonstration, utilisez un fichier CSV pour simuler des transactions bancaires. Importez ce fichier dans un DataFrame Pandas, puis convertissez-le en une base de données SQLite.
# Se connecter à la base de données SQLite
conn = sqlite3.connect('transactions.db')
df = pd.read_csv('Transactions.csv')
df.to_sql('transactions', conn, if_exists='replace', index = False)
# Fermer la connexion à la base de données
conn.close()
Étape 4 : Regroupement des transactions
Ici, nous utilisons un simple algorithme de regroupement K Means de sklearn pour regrouper des transactions similaires.
# charger les transactions dans csv
df = pd.read_csv('transactions.csv')
# Initialiser le Count Vectorizer
cv = CountVectorizer()
# Adapter et transformer les titres traités
vector = cv.fit_transform(df['Description'].values.astype('U'))
kmeans = KMeans(n_clusters = 6, init = 'k-means++', max_iter = 300, n_init = 10, random_state = 0)
y_kmeans = kmeans.fit_predict(vector)
df['Category'] = y_kmeans
Étape 5 : Construction de l'application Flask
Dans l'application Flask, nous aurons deux routes - une pour afficher les transactions et une pour ajouter des transactions.
app = Flask(__name__)
@app.route('/')
def view_transactions():
conn = sqlite3.connect('transactions.db')
df = pd.read_sql_query("SELECT * FROM transactions", conn)
conn.close()
return render_template("index.html", tables=[df.to_html(classes='data')], titles=df.columns.values)
@app.route('/add', methods = ['POST'])
def add_transaction():
conn = sqlite3.connect('transactions.db')
cursor = conn.cursor()
cursor.execute("INSERT INTO transactions (Date, Description, Amount, Category) VALUES (?,?,?,?)", (request.form['Date'], request.form['Description'], request.form['Amount'], request.form['Category']))
conn.commit()
conn.close()
return make_response('Success', 200)
if __name__ == '__main__':
app.run()
Note : Il faut utiliser des fichiers de modèles HTML pour créer des formulaires pour entrer les données et afficher les données dans un tableau.
C'est la structure de base pour construire un suivi de finance personnelle en utilisant Python et SQLite avec la catégorisation automatique des transactions. Vous pouvez étendre cette configuration pour accueillir des scénarios plus complexes et une catégorisation plus détaillée. Vous pouvez également travailler sur l'aspect de visualisation de cette application en utilisant des plateformes comme ChartJS pour créer des graphiques.
Gardez à l'esprit que c'est un exemple seulement et ne devrait pas être utilisé tel quel pour le suivi financier, c'est simplement une preuve de concept. Il y a beaucoup d'autres facteurs à considérer comme la sécurité, la validation des données, la gestion des erreurs, etc. Vous devriez consulter un professionnel avant de développer et déployer de telles applications.
AI agent for developers
Boost your productivity with Mate:
easily connect your project, generate code, and debug smarter - all powered by AI.
Do you want to solve problems like this faster? Download now for free.