DB_normlizer / clean_database.py
Cherryblade29's picture
Upload 4 files
615c11f verified
import sqlite3
import pandas as pd
# Suppression des doublons
def remove_duplicates(df):
df = df.drop_duplicates()
df = df.loc[:, ~df.columns.duplicated()]
return df
# 🚀 Fonction unique appelée depuis le script principal
def clean_database(db_path: str):
"""
Nettoie une base SQLite sur place : lit les données, les nettoie, puis écrase le fichier.
"""
conn = sqlite3.connect(db_path)
tables = pd.read_sql("SELECT name FROM sqlite_master WHERE type='table';", conn)
cleaned_data = {}
for table in tables['name']:
print(f"🧽 Nettoyage de la table : {table}")
df = pd.read_sql(f"SELECT * FROM {table};", conn)
df = remove_duplicates(df)
cleaned_data[table] = df
conn.close()
# On écrase le fichier d'origine avec la version nettoyée
conn = sqlite3.connect(db_path)
for table, df in cleaned_data.items():
df.to_sql(table, conn, if_exists='replace', index=False)
conn.close()